1// RUN: pp-trace -callbacks '*,-FileChanged,-MacroDefined' %s -- -x cl -cl-no-stdinc | FileCheck --strict-whitespace %s
2
3#pragma OPENCL EXTENSION all : disable
4#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
5#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
6
7// CHECK: ---
8// CHECK-NEXT: - Callback: PragmaDirective
9// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:3:1"
10// CHECK-NEXT: Introducer: PIK_HashPragma
11// CHECK-NEXT: - Callback: PragmaOpenCLExtension
12// CHECK-NEXT: NameLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:3:26"
13// CHECK-NEXT: Name: all
14// CHECK-NEXT: StateLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:3:32"
15// CHECK-NEXT: State: 0
16// CHECK-NEXT: - Callback: PragmaDirective
17// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:4:1"
18// CHECK-NEXT: Introducer: PIK_HashPragma
19// CHECK-NEXT: - Callback: PragmaOpenCLExtension
20// CHECK-NEXT: NameLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:4:26"
21// CHECK-NEXT: Name: cl_khr_int64_base_atomics
22// CHECK-NEXT: StateLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:4:54"
23// CHECK-NEXT: State: 0
24// CHECK-NEXT: - Callback: PragmaDirective
25// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:5:1"
26// CHECK-NEXT: Introducer: PIK_HashPragma
27// CHECK-NEXT: - Callback: PragmaOpenCLExtension
28// CHECK-NEXT: NameLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:5:26"
29// CHECK-NEXT: Name: cl_khr_int64_base_atomics
30// CHECK-NEXT: StateLoc: "{{.*}}{{[/\\]}}pp-trace-pragma-opencl.cpp:5:54"
31// CHECK-NEXT: State: 1
32// CHECK-NEXT: - Callback: EndOfMainFile
33// CHECK-NEXT: ...
34

source code of clang-tools-extra/test/pp-trace/pp-trace-pragma-opencl.cpp