/* PSPP - a program for statistical analysis.
- Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009, 2010, 2016 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
/* Mark a function as taking a printf- or scanf-like format
string as its FMT'th argument and that the FIRST'th argument
is the first one to be checked against the format string. */
+#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4)
+#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (gnu_printf, FMT, FIRST)))
+#else
#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__printf__, FMT, FIRST)))
+#endif
#define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__scanf__, FMT, FIRST)))
/* Tells the compiler that a function may be treated as if any
#if __GNUC__ > 3
#define SENTINEL(IDX) ATTRIBUTE ((sentinel(IDX)))
#else
-#define SENTINEL
+#define SENTINEL(IDX)
#endif
+
+/* This attribute indicates that the function should be compiled
+ with the specified LEVEL, regardless of what has been specified
+ on the command line */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR >= 4)
+#define OPTIMIZE(LEVEL) ATTRIBUTE ((optimize(LEVEL)))
+#else
+#define OPTIMIZE(LEVEL)
+#endif
+
+
#endif /* compiler.h */