From: Josh Triplett <josh@joshtriplett.org>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Christopher Li <sparse@chrisli.org>,
linux-sparse@vger.kernel.org, torvalds@linux-foundation.org
Subject: Re: [PATCH] sparse: Add GCC pre-defined macros for user-space
Date: Sun, 16 Aug 2009 03:51:14 -0700 [thread overview]
Message-ID: <20090816105114.GA6489@feather> (raw)
In-Reply-To: <1250406233.32343.9.camel@penberg-laptop>
On Sun, Aug 16, 2009 at 10:03:53AM +0300, Pekka Enberg wrote:
> On Sat, 2009-08-15 at 15:36 -0700, Josh Triplett wrote:
> > These defines need to have the right type suffixes. GCC defines
> > __LONG_LONG_MAX__ with an LL suffix, and __LONG_MAX__ with an L suffix.
> > You could either add the appropriate suffixes, or better yet, stringize
> > the constants and print them as strings.
>
> Right. Is there a macro in sparse to do the stringification? I didn't
> find one and the best I could come up is this.
[...]
> --- 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..62f7433 100644
> --- a/lib.h
> +++ b/lib.h
> @@ -17,6 +17,9 @@
> #include "compat.h"
> #include "ptrlist.h"
>
> +#define __STRINGIFY(x) #x
> +#define STRINGIFY(x) __STRINGIFY(x)
> +
This looks fine, with one minor nit: s/__STRINGIFY/STRINGIFY2/g or
similar. The C language reserves identifiers containing "__" (C99
"7.1.3 Reserved identifiers").
- Josh Triplett
next prev parent reply other threads:[~2009-08-16 10:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-15 14:57 [PATCH] sparse: Add GCC pre-defined macros for user-space Pekka Enberg
2009-08-15 19:36 ` Christopher Li
2009-08-15 20:26 ` Pekka Enberg
2009-08-15 22:36 ` Josh Triplett
2009-08-16 7:03 ` Pekka Enberg
2009-08-16 10:51 ` Josh Triplett [this message]
2009-08-16 11:05 ` Pekka Enberg
2009-08-16 12:41 ` Josh Triplett
2009-08-16 17:50 ` Christopher Li
2009-08-16 18:56 ` Josh Triplett
2009-08-16 19:34 ` Johannes Berg
2009-08-16 20:00 ` Josh Triplett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090816105114.GA6489@feather \
--to=josh@joshtriplett.org \
--cc=linux-sparse@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
--cc=sparse@chrisli.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).