[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: preprocessor/8524: _Pragma within macros is improperly expanded



Neil Booth wrote:-

> I think this fixes it for good.  I'm applying this to 3.3, and 3.2.2
> when it arrives.
> 
> Neil.
> 
> 	PR preprocessor/8524
> 	* cpplib.c (run_directive): Remove previous kludge to _Pragma.
> 	Add a new one in its place, which hopefully works.
> 	(skip_rest_of_line): Change test for bottom-of-context-stack.
> testsuite:
> 	* gcc.dg/cpp/_Pragma5.c: New test.

Oops, the test got lost waiting for CVS.

Neil.

Index: testsuite/gcc.dg/cpp/_Pragma5.c
===================================================================
RCS file: testsuite/gcc.dg/cpp/_Pragma5.c
diff -N testsuite/gcc.dg/cpp/_Pragma5.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/gcc.dg/cpp/_Pragma5.c	18 Nov 2002 20:40:43 -0000
@@ -0,0 +1,14 @@
+/* { dg-do preprocess } */
+
+/* Based on Debian GNATS PR 8524.  17 Nov 2002.  */
+
+#define ALPHA(A) alpha_ ## A
+#define BETA(B) beta_ ## B
+#define GAMMA(C) _Pragma("moose") ALPHA(C) BETA(C)
+GAMMA(baz);
+
+/*
+   { dg-final { if ![file exists _Pragma5.i] { return }                   } }
+   { dg-final { if { [grep _Pragma5.i "alpha_baz beta_baz;"] != "" } { return }  } }
+   { dg-final { fail "_Pragma5.c: _Pragma in macro"                       } }
+*/



Reply to: