1  /* 
       2     { dg-options "-fopenmp" }
       3     { dg-do preprocess }
       4     { dg-require-effective-target fopenmp }
       5   */
       6  
       7  void foo (void)
       8  {
       9    int i1, j1, k1;
      10  #define p parallel
      11  #define P(x) private (x##1)
      12  #define S(x) shared (x##1)
      13  #define F(x) firstprivate (x##1)
      14  #pragma omp \
      15    p \
      16    P(i) \
      17    S(j) \
      18    F(k)
      19    ;
      20  }
      21  
      22  /* 
      23     The bug here was that we had a line like:
      24         # 33554432 "../../gcc/testsuite/gcc.dg/cpp/pragma-3.c"
      25     
      26     Before line:
      27  
      28         #pragma omp parallel private (i1) shared (j1) firstprivate (k1)
      29  
      30     Note the very big integer there.  Normally we should just have
      31     this:
      32     
      33         # 13 "../../gcc/testsuite/gcc.dg/cpp/pragma-3.c"
      34         #pragma omp parallel private (i1) shared (j1) firstprivate (k1)
      35  
      36     So let's check that we have no line with a number of 3 or more
      37     digit after #:
      38  
      39     { dg-final { scan-file-not pragma-3.i "# \[0-9\]{3} \[^\n\r\]*pragma-3.c" } }
      40  */