brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 407eea1 Raw
58 lines · cpp
1// RUN: %clang_cc1 -triple aarch64-linux-android34 \2// RUN:   -include %S/Inputs/sanitizer-extra-source.cpp \3// RUN:   -fsanitize-ignorelist=%S/Inputs/sanitizer-ignorelist-global.txt \4// RUN:   -fsanitize=memtag-globals -emit-llvm -o - %s | FileCheck %s5 6// RUN: %clang_cc1 -triple aarch64-linux-android34 \7// RUN:    -include %S/Inputs/sanitizer-extra-source.cpp \8// RUN:   -fsanitize-ignorelist=%S/Inputs/sanitizer-ignorelist-src.txt \9// RUN:   -fsanitize=memtag-globals -emit-llvm -o - %s | \10// RUN:   FileCheck %s --check-prefix=IGNORELIST11 12int global;13int __attribute__((__section__("my_section"))) section_global;14int __attribute__((no_sanitize("memtag"))) attributed_global;15int __attribute__((disable_sanitizer_instrumentation)) disable_instrumentation_global;16int ignorelisted_global;17extern int external_global;18 19void func() {20  static int static_var = 0;21  const char *literal = "Hello, world!";22  external_global = 1;23}24 25// CHECK: @{{.*}}extra_global{{.*}} ={{.*}} sanitize_memtag26// CHECK: @{{.*}}global{{.*}} ={{.*}} sanitize_memtag27 28// This DOES NOT mean we are instrumenting the section global,29// but we are ignoring it in AsmPrinter rather than in clang.30// CHECK:     @{{.*}}section_global{{.*}} ={{.*}} sanitize_memtag31// CHECK:     @{{.*}}attributed_global{{.*}} =32// CHECK-NOT: sanitize_memtag33// CHECK:     @{{.*}}disable_instrumentation_global{{.*}} =34// CHECK-NOT: sanitize_memtag35// CHECK:     @{{.*}}ignorelisted_global{{.*}} =36// CHECK-NOT: sanitize_memtag37 38// CHECK: @{{.*}}static_var{{.*}} ={{.*}} sanitize_memtag39// CHECK: @{{.*}} = {{.*}} c"Hello, world!\00"{{.*}} sanitize_memtag40// CHECK: @{{.*}}external_global{{.*}} ={{.*}} sanitize_memtag41 42// IGNORELIST: @{{.*}}extra_global{{.*}} ={{.*}} sanitize_memtag43 44// IGNORELIST:     @{{.*}}global{{.*}} =45// IGNORELIST-NOT: sanitize_memtag46// IGNORELIST:     @{{.*}}attributed_global{{.*}} =47// IGNORELIST-NOT: sanitize_memtag48// IGNORELIST:     @{{.*}}disable_instrumentation_global{{.*}} =49// IGNORELIST-NOT: sanitize_memtag50// IGNORELIST:     @{{.*}}ignorelisted_globa{{.*}} =51// IGNORELIST-NOT: sanitize_memtag52// IGNORELIST:     @{{.*}}static_var{{.*}} =53// IGNORELIST-NOT: sanitize_memtag54// IGNORELIST:     @{{.*}} = {{.*}} c"Hello, world!\00"{{.*}}55// IGNORELIST-NOT: sanitize_memtag56// IGNORELIST:     @{{.*}}external_global{{.*}} =57// IGNORELIST-NOT: sanitize_memtag58