brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · f51fb79 Raw
35 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s | FileCheck -check-prefix=WITHOUT %s2// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s -fsanitize=numerical | FileCheck -check-prefix=NSAN %s3// RUN: echo "src:%s" | sed -e 's/\\/\\\\/g' > %t4// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s -fsanitize=numerical -fsanitize-ignorelist=%t | FileCheck -check-prefix=BL %s5 6// WITHOUT:  NoNSAN3{{.*}}) [[NOATTR:#[0-9]+]]7// BL:  NoNSAN3{{.*}}) [[NOATTR:#[0-9]+]]8// NSAN:  NoNSAN3{{.*}}) [[NOATTR:#[0-9]+]]9__attribute__((no_sanitize("numerical")))10int NoNSAN3(int *a) { return *a; }11 12// WITHOUT:  NSANOk{{.*}}) [[NOATTR]]13// BL:  NSANOk{{.*}}) [[NOATTR]]14// NSAN: NSANOk{{.*}}) [[WITH:#[0-9]+]]15int NSANOk(int *a) { return *a; }16 17// WITHOUT:  TemplateNSANOk{{.*}}) [[NOATTR]]18// BL:  TemplateNSANOk{{.*}}) [[NOATTR]]19// NSAN: TemplateNSANOk{{.*}}) [[WITH]]20template<int i>21int TemplateNSANOk() { return i; }22 23// WITHOUT:  TemplateNoNSAN{{.*}}) [[NOATTR]]24// BL:  TemplateNoNSAN{{.*}}) [[NOATTR]]25// NSAN: TemplateNoNSAN{{.*}}) [[NOATTR]]26template<int i>27__attribute__((no_sanitize("numerical")))28int TemplateNoNSAN() { return i; }29 30int force_instance = TemplateNSANOk<42>() + TemplateNoNSAN<42>();31 32// WITHOUT: attributes [[NOATTR]] = { mustprogress noinline nounwind{{.*}} }33// BL: attributes [[NOATTR]] = { mustprogress noinline nounwind{{.*}} }34// NSAN: attributes [[WITH]] = { mustprogress noinline nounwind optnone sanitize_numerical_stability{{.*}} }35