1 // RUN: %clang_cc1 -fminimize-whitespace -E %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINCOL 2 // RUN: %clang_cc1 -fminimize-whitespace -E -C %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINCCOL 3 // RUN: %clang_cc1 -fminimize-whitespace -E -P %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINWS 4 // RUN: %clang_cc1 -fminimize-whitespace -E -C -P %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINCWS 5 // The follow empty lines ensure that a #line directive is emitted instead of newline padding after the RUN comments. 6 7 8 9 10 11 12 #define NOT_OMP omp something 13 #define HASH # 14 15 int a; /* span-comment */ 16 int b ; // line-comment 17 _Pragma ( "omp barrier" ) x // more line-comments 18 #pragma omp nothing // another comment 19 HASH pragma NOT_OMP 20 int e; // again a line 21 int \ 22 f ; 23 24 25 // MINCOL: {{^}}# 15 "{{.*}}minimize-whitespace.c"{{$}} 26 // MINCOL: {{^}}int a;{{$}} 27 // MINCOL-NEXT: {{^}}int b;{{$}} 28 // MINCOL-NEXT: {{^}}#pragma omp barrier{{$}} 29 // MINCOL-NEXT: # 17 "{{.*}}minimize-whitespace.c" 30 // MINCOL-NEXT: {{^}}x{{$}} 31 // MINCOL-NEXT: {{^}}#pragma omp nothing{{$}} 32 // MINCOL-NEXT: {{^ }}#pragma omp something{{$}} 33 // MINCOL-NEXT: {{^}}int e;{{$}} 34 // MINCOL-NEXT: {{^}}int f;{{$}} 35 36 // FIXME: Comments after pragmas disappear, even without -fminimize-whitespace 37 // MINCCOL: {{^}}# 15 "{{.*}}minimize-whitespace.c"{{$}} 38 // MINCCOL: {{^}}int a;/* span-comment */{{$}} 39 // MINCCOL-NEXT: {{^}}int b;// line-comment{{$}} 40 // MINCCOL-NEXT: {{^}}#pragma omp barrier{{$}} 41 // MINCCOL-NEXT: # 17 "{{.*}}minimize-whitespace.c" 42 // MINCCOL-NEXT: {{^}}x// more line-comments{{$}} 43 // MINCCOL-NEXT: {{^}}#pragma omp nothing{{$}} 44 // MINCCOL-NEXT: {{^ }}#pragma omp something{{$}} 45 // MINCCOL-NEXT: {{^}}int e;// again a line{{$}} 46 // MINCCOL-NEXT: {{^}}int f;{{$}} 47 48 // MINWS: {{^}}int a;int b;{{$}} 49 // MINWS-NEXT: {{^}}#pragma omp barrier{{$}} 50 // MINWS-NEXT: {{^}}x{{$}} 51 // MINWS-NEXT: {{^}}#pragma omp nothing{{$}} 52 // MINWS-NEXT: {{^ }}#pragma omp something int e;int f;{{$}} 53 54 // FIXME: Comments after pragmas disappear, even without -fminimize-whitespace 55 // MINCWS: {{^}}int a;/* span-comment */int b;// line-comment{{$}} 56 // MINCWS-NEXT: {{^}}#pragma omp barrier{{$}} 57 // MINCWS-NEXT: {{^}}x// more line-comments{{$}} 58 // MINCWS-NEXT: {{^}}#pragma omp nothing{{$}} 59 // MINCWS-NEXT: {{^ }}#pragma omp something int e;// again a line{{$}} 60 // MINCWS-NEXT: {{^}}int f; 61 62