preprocessor/8524: _Pragma within macros is improperly expanded

Neil Booth neil@daikokuya.co.uk
Sun Nov 24 03:25:00 GMT 2002


The following reply was made to PR preprocessor/8524; it has been noted by GNATS.

From: Neil Booth <neil@daikokuya.co.uk>
To: 157416@bugs.debian.org, Andrew Suffield <asuffield@debian.org>
Cc: gcc-gnats@gcc.gnu.org, debian-gcc@lists.debian.org,
	Zack Weinberg <zack@codesourcery.com>, gcc-patches@gcc.gnu.org
Subject: Re: preprocessor/8524: _Pragma within macros is improperly expanded
Date: Mon, 18 Nov 2002 20:43:38 +0000

 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"                       } }
 +*/



More information about the Gcc-prs mailing list