X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fcompiler.h;h=07b36b8e24d0eb9266c7dfbdc82f6bf6b69f61d0;hb=feba48309a227fe40feb3a87cbe900015021ac73;hp=b7df277540574ba6021c8d1363309a88c7071958;hpb=be3e711eabe58c0b0a6ef47a1618198e7a2372cf;p=pspp diff --git a/src/libpspp/compiler.h b/src/libpspp/compiler.h index b7df277540..07b36b8e24 100644 --- a/src/libpspp/compiler.h +++ b/src/libpspp/compiler.h @@ -1,21 +1,18 @@ -/* PSPP - computes sample statistics. - Copyright (C) 2006 Free Software Foundation, Inc. - Written by Ben Pfaff . +/* PSPP - a program for statistical analysis. + 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 the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef COMPILER_H #define COMPILER_H 1 @@ -41,14 +38,14 @@ /* 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. */ -#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (printf, FMT, FIRST))) -#define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (scanf, FMT, FIRST))) +#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__printf__, FMT, FIRST))) +#define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__scanf__, FMT, FIRST))) /* Tells the compiler that a function may be treated as if any 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 @@ -61,8 +58,8 @@ #endif /* This attribute indicates that the function does not examine - any values except its arguments, and have no effects except - the return value. A function that has pointer arguments and + any values except its arguments, and has no effects except the + return value. A function that has pointer arguments and examines the data pointed to must _not_ be declared `const'. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5) @@ -80,4 +77,25 @@ #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 + + +/* 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__ > 3 +#define OPTIMIZE(LEVEL) ATTRIBUTE ((optimize(LEVEL))) +#else +#define OPTIMIZE(LEVEL) +#endif + + #endif /* compiler.h */