http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48532
Summary: Wrong location of namespaced pragma involing macros Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: do...@gcc.gnu.org ReportedBy: do...@gcc.gnu.org Consider this test case taken from gcc/testsuite/gcc.dg/gomp/preprocess-1.c: [dodji@adjoa prtests]$ cat -n test.c 1 void foo (void) 2 { 3 int i1, j1, k1; 4 #define p parallel 5 #define P(x) private (x##1) 6 #define S(x) shared (x##1) 7 #define F(x) firstprivate (x##1) 8 #pragma omp p P(i) \ 9 S(j) \ 10 F(k) 11 ; 12 } [dodji@adjoa prtests]$ And now consider its preprocessed output: [dodji@adjoa prtests]$ cc1 -quiet -E -fopenmp ./test.c # 1 "./test.c" # 1 "<interne>" # 1 "<command-line>" # 1 "./test.c" void foo (void) { int i1, j1, k1; # 33554432 "./test.c" # 8 "./test.c" #pragma omp parallel private (i1) shared (j1) firstprivate (k1) ; } [dodji@adjoa prtests]$ This line in the output is wrong, and should not be present: # 33554432 "./test.c"