xref: /llvm-project/clang/test/AST/pragma-multiple-attributes.cpp (revision 7c1d9b15eee3a34678addab2bab66f3020ac0753)
1*7c1d9b15SFangrui Song // RUN: %clang_cc1 -ast-dump %s | FileCheck %s
233a9eac6SEgor Zhdan 
333a9eac6SEgor Zhdan #pragma clang attribute push (__attribute__((disable_sanitizer_instrumentation, annotate("test1"))), apply_to=variable(is_global))
433a9eac6SEgor Zhdan int var1;
533a9eac6SEgor Zhdan #pragma clang attribute pop
633a9eac6SEgor Zhdan // CHECK: VarDecl {{.*}} var1
733a9eac6SEgor Zhdan // CHECK-NEXT: DisableSanitizerInstrumentationAttr {{.*}}
833a9eac6SEgor Zhdan // CHECK-NEXT: AnnotateAttr {{.*}} "test1"
933a9eac6SEgor Zhdan 
1033a9eac6SEgor Zhdan #pragma clang attribute push ([[clang::disable_sanitizer_instrumentation, clang::annotate("test2")]], apply_to=variable(is_global))
1133a9eac6SEgor Zhdan int var2;
1233a9eac6SEgor Zhdan #pragma clang attribute pop
1333a9eac6SEgor Zhdan // CHECK: VarDecl {{.*}} var2
1433a9eac6SEgor Zhdan // CHECK-NEXT: DisableSanitizerInstrumentationAttr {{.*}}
1533a9eac6SEgor Zhdan // CHECK-NEXT: AnnotateAttr {{.*}} "test2"
16