parent
653f94df53
commit
0fe43695e5
|
@ -3,10 +3,15 @@
|
|||
|
||||
// REQUIRES: lto
|
||||
|
||||
// RUN: %clangxx_asan -DPART=0 -c %s -o %t-1.o -flto
|
||||
// RUN: %clangxx_asan -DPART=1 -c %s -o %t-2.o -flto
|
||||
// RUN: %clangxx_asan %t-1.o %t-2.o -o %t -flto
|
||||
// RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-ODR
|
||||
|
||||
// RUN: %clangxx_asan -DPART=0 -c %s -o %t-1.o -flto -mllvm -asan-use-private-alias
|
||||
// RUN: %clangxx_asan -DPART=1 -c %s -o %t-2.o -flto -mllvm -asan-use-private-alias
|
||||
// RUN: %clangxx_asan %t-1.o %t-2.o -o %t -flto
|
||||
// RUN: %env_asan_opts=use_odr_indicator=1 %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_asan_opts=use_odr_indicator=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ODR
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -35,5 +40,6 @@ void putstest()
|
|||
|
||||
#endif // PART == 1
|
||||
|
||||
// CHECK-NOT: ERROR: AddressSanitizer: odr-violation
|
||||
// CHECK: Done.
|
||||
// CHECK-ODR: ERROR: AddressSanitizer: odr-violation
|
||||
// CHECK-NO-ODR-NOT: ERROR: AddressSanitizer: odr-violation
|
||||
// CHECK-NO-ODR: Done.
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
// RUN: %clangxx_asan -O3 -flto %s -o %t
|
||||
// RUN: %run %t 2>&1
|
||||
|
||||
// REQUIRES: lto
|
||||
|
||||
int main(int argc, const char * argv[]) {
|
||||
struct { long width, height; } a = {16, 16};
|
||||
struct { long width, height; } b = {16, 16};
|
||||
|
||||
// Just to make sure 'a' and 'b' don't get optimized out.
|
||||
asm volatile ("" : : "r" (&a), "r" (&b) );
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue