This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][libcpp] New deferred output pragma

>>>>> "David" == David Stubbs <> 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

@@ -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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]