xref: /llvm-project/clang/test/CodeGen/sanitizer-module-constructor.c (revision 3402a1a4d2d4c7ead69156c3d741fc9ae9c4d399)
1 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=address -O3 -emit-llvm -fdebug-pass-manager -o - %s 2>&1 | FileCheck %s
2 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=thread -O3 -emit-llvm -fdebug-pass-manager -o - %s 2>&1 | FileCheck %s
3 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=memory -O3 -emit-llvm -fdebug-pass-manager -o - %s 2>&1 | FileCheck %s
4 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=numerical -O3 -emit-llvm -fdebug-pass-manager -o - %s 2>&1 | FileCheck %s
5 
6 // This is regression test for PR42877
7 
8 typedef struct a *b;
9 struct a {
10   int c;
11 };
12 int d;
13 b e;
f(b g)14 static void f(b g) {
15   for (d = g->c;;)
16     ;
17 }
h(void)18 void h(void) { f(e); }
19 
20 // CHECK: Running pass: {{.*}}SanitizerPass
21 // CHECK-NOT: Running pass: LoopSimplifyPass on {{.*}}san.module_ctor
22 // CHECK: Running analysis: TargetLibraryAnalysis on {{.*}}san.module_ctor
23