On Sun, Aug 16, 2009 at 02:05:33PM +0300, Pekka Enberg wrote: > Of course. Here's the final patch. *fingers crossed* Looks good to me. Acked-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > From: Pekka Enberg <penberg@xxxxxxxxxxxxxx> > Date: Sat, 15 Aug 2009 23:22:24 +0300 > Subject: [PATCH] Define GCC builtin defines for limits.h > > Sparse produces a bunch of warnings like this when compiling against > glibc: > > /usr/lib/gcc/i486-linux-gnu/4.3.2//include-fixed/limits.h:33:22: warning: undefined preprocessor identifier '__INT_MAX__' > /usr/lib/gcc/i486-linux-gnu/4.3.2//include-fixed/limits.h:64:5: warning: undefined preprocessor identifier '__SHRT_MAX__' > /usr/lib/gcc/i486-linux-gnu/4.3.2//include-fixed/limits.h:64:21: warning: undefined preprocessor identifier '__INT_MAX__' > /usr/include/bits/xopen_lim.h:95:6: warning: undefined preprocessor identifier '__INT_MAX__' > /usr/include/bits/xopen_lim.h:98:7: warning: undefined preprocessor identifier '__INT_MAX__' > > Fix that up by adding some add_pre_buffer() calls to > create_builtin_define(). For future reference, GCC defines the builtins > in the c_cpp_builtins() function in gcc/c-cppbuiltin.c. > > Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx> > --- > lib.c | 8 ++++++++ > lib.h | 3 +++ > 2 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/lib.c b/lib.c > index 42affcd..fb7e9bc 100644 > --- a/lib.c > +++ b/lib.c > @@ -788,6 +788,14 @@ void create_builtin_stream(void) > add_pre_buffer("#define __OPTIMIZE__ 1\n"); > if (optimize_size) > add_pre_buffer("#define __OPTIMIZE_SIZE__ 1\n"); > + > + /* GCC defines these for limits.h */ > + add_pre_buffer("#weak_define __SHRT_MAX__ " STRINGIFY(__SHRT_MAX__) "\n"); > + add_pre_buffer("#weak_define __SCHAR_MAX__ " STRINGIFY(__SCHAR_MAX__) "\n"); > + add_pre_buffer("#weak_define __INT_MAX__ " STRINGIFY(__INT_MAX__) "\n"); > + add_pre_buffer("#weak_define __LONG_MAX__ " STRINGIFY(__LONG_MAX__) "\n"); > + add_pre_buffer("#weak_define __LONG_LONG_MAX__ " STRINGIFY(__LONG_LONG_MAX__) "\n"); > + add_pre_buffer("#weak_define __WCHAR_MAX__ " STRINGIFY(__WCHAR_MAX__) "\n"); > } > > static struct symbol_list *sparse_tokenstream(struct token *token) > diff --git a/lib.h b/lib.h > index b22fa93..25abb80 100644 > --- a/lib.h > +++ b/lib.h > @@ -17,6 +17,9 @@ > #include "compat.h" > #include "ptrlist.h" > > +#define DO_STRINGIFY(x) #x > +#define STRINGIFY(x) DO_STRINGIFY(x) > + > extern int verbose, optimize, optimize_size, preprocessing; > extern int die_if_error; > extern int repeat_phase, merge_phi_sources; -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html