This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][libcpp] New deferred output pragma
- From: Tom Tromey <tromey at redhat dot com>
- To: "David Stubbs" <stubbs at IceraSemi dot com>
- Cc: <gcc-patches at gcc dot gnu dot org>, "sdkteam-gnu" <sdkteam-gnu at IceraSemi dot com>
- Date: Fri, 09 Apr 2010 17:00:41 -0600
- Subject: Re: [PATCH][libcpp] New deferred output pragma
- References: <4D60B0700D1DB54A8C0C6E9BE69163700E33D908@EXCHANGEVS.IceraSemi.local>
- Reply-to: tromey at redhat dot com
>>>>> "David" == David Stubbs <stubbs@IceraSemi.com> writes:
David> This patch adds a new deferred_output pragma to the preprocessor.
A new extension requires some justification, not just a description.
The current rule, I think, is that the justification be extraordinary.
So, I'm afraid my inclination is to reject this idea even in principle.
That said, I am not extremely active in GCC and I am open to being
convinced, or dissenting opinions, or being overruled.
David> #define EMIT_AT_EOF(name,body) void name() {body}
David> #pragma GCC deferred_output EMIT_AT_EOF
I'm not overly fond of this design, but I confess I don't have a better
idea.
@@ -649,7 +650,7 @@ struct GTY(()) cpp_hashnode {
Otherwise, a NODE_OPERATOR. */
unsigned char rid_code; /* Rid code - for front ends. */
ENUM_BITFIELD(node_type) type : 6; /* CPP node type. */
- unsigned int flags : 10; /* CPP flags. */
+ unsigned int flags : 11; /* CPP flags. */
This particular hunk is not ok. cpp_hashnode is space sensitive and is
laid out not to have holes, at least on a 32-bit box.
Maybe you could steal a bit from the type field -- I am not positive.
Tom