diff options
Diffstat (limited to 'clang/test/Frontend/plugin-annotate-functions.c')
-rw-r--r-- | clang/test/Frontend/plugin-annotate-functions.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/clang/test/Frontend/plugin-annotate-functions.c b/clang/test/Frontend/plugin-annotate-functions.c index 1d7b79bf6ee..b8baf7ce77e 100644 --- a/clang/test/Frontend/plugin-annotate-functions.c +++ b/clang/test/Frontend/plugin-annotate-functions.c @@ -1,7 +1,25 @@ -// RUN: %clang -fplugin=%llvmshlibdir/AnnotateFunctions%pluginext -emit-llvm -S %s -o - | FileCheck %s +// RUN: %clang -fplugin=%llvmshlibdir/AnnotateFunctions%pluginext -emit-llvm -DPRAGMA_ON -S %s -o - | FileCheck %s --check-prefix=PRAGMA +// RUN: %clang -fplugin=%llvmshlibdir/AnnotateFunctions%pluginext -emit-llvm -S %s -o - | FileCheck %s --check-prefix=NOPRAGMA +// RUN: not %clang -fplugin=%llvmshlibdir/AnnotateFunctions%pluginext -emit-llvm -DBAD_PRAGMA -S %s -o - 2>&1 | FileCheck %s --check-prefix=BADPRAGMA // REQUIRES: plugins, examples -// CHECK: [[STR_VAR:@.+]] = private unnamed_addr constant [19 x i8] c"example_annotation\00" -// CHECK: @llvm.global.annotations = {{.*}}@fn1{{.*}}[[STR_VAR]]{{.*}}@fn2{{.*}}[[STR_VAR]] +#ifdef PRAGMA_ON +#pragma enable_annotate +#endif + +// BADPRAGMA: warning: extra tokens at end of #pragma directive +#ifdef BAD_PRAGMA +#pragma enable_annotate something +#endif + +// PRAGMA: [[STR_VAR:@.+]] = private unnamed_addr constant [19 x i8] c"example_annotation\00" +// PRAGMA: @llvm.global.annotations = {{.*}}@fn1{{.*}}[[STR_VAR]]{{.*}}@fn2{{.*}}[[STR_VAR]] +// NOPRAGMA-NOT: [[STR_VAR:@.+]] = private unnamed_addr constant [19 x i8] c"example_annotation\00" +// NOPRAGMA-NOT: @llvm.global.annotations = {{.*}}@fn1{{.*}}[[STR_VAR]]{{.*}}@fn2{{.*}}[[STR_VAR]] void fn1() { } void fn2() { } + +// BADPRAGMA: error: #pragma enable_annotate not allowed after declarations +#ifdef BAD_PRAGMA +#pragma enable_annotate +#endif |