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"

Reply via email to