compiler: Fix SENTINEL macro in non-GCC case.
[pspp-builds.git] / src / libpspp / compiler.h
index 563cc59b1e85b8a6d7d44bdba3e9414e4d17603d..a7e91bfec1f805b35c8f2c6d15608fcf556bbc68 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@
    non-`NULL' pointer it returns cannot alias any other pointer
    valid when the function returns. */
 #if __GNUC__ > 2
-#define MALLOC_LIKE ATTRIBUTE ((malloc))
+#define MALLOC_LIKE ATTRIBUTE ((__malloc__))
 #else
 #define MALLOC_LIKE
 #endif
 #define PURE_FUNCTION
 #endif
 
+/* This attribute indicates that the argument with the given
+   IDX must be a null pointer.  IDX counts backward in the
+   argument list, so that 0 is the last argument, 1 is the
+   second-from-last argument, and so on. */
+#if __GNUC__ > 3
+#define SENTINEL(IDX) ATTRIBUTE ((sentinel(IDX)))
+#else
+#define SENTINEL(IDX)
+#endif
+
 #endif /* compiler.h */