This adds support for multiple attributes in `#pragma clang attribute push`, for example: ``` ``` or ``` ``` Related attributes can now be applied with a single pragma, which makes it harder for developers to make an accidental error later when editing the code. rdar://78269653 Differential Revision: https://reviews.llvm.org/D121283
16 lines
664 B
C++
16 lines
664 B
C++
// RUN: %clang_cc1 -fsyntax-only -ast-dump %s | FileCheck %s
|
|
|
|
#pragma clang attribute push (__attribute__((disable_sanitizer_instrumentation, annotate("test1"))), apply_to=variable(is_global))
|
|
int var1;
|
|
#pragma clang attribute pop
|
|
// CHECK: VarDecl {{.*}} var1
|
|
// CHECK-NEXT: DisableSanitizerInstrumentationAttr {{.*}}
|
|
// CHECK-NEXT: AnnotateAttr {{.*}} "test1"
|
|
|
|
#pragma clang attribute push ([[clang::disable_sanitizer_instrumentation, clang::annotate("test2")]], apply_to=variable(is_global))
|
|
int var2;
|
|
#pragma clang attribute pop
|
|
// CHECK: VarDecl {{.*}} var2
|
|
// CHECK-NEXT: DisableSanitizerInstrumentationAttr {{.*}}
|
|
// CHECK-NEXT: AnnotateAttr {{.*}} "test2"
|