Index: compiler-rt/test/asan/TestCases/Linux/odr_c_test.c =================================================================== --- compiler-rt/test/asan/TestCases/Linux/odr_c_test.c +++ compiler-rt/test/asan/TestCases/Linux/odr_c_test.c @@ -1,9 +1,9 @@ // Test that we can properly report an ODR violation // between an instrumented global and a non-instrumented global. -// RUN: %clang_asan %s -fPIC -shared -o %dynamiclib1 -DFILE1 -// RUN: %clang_asan %s -fPIC -shared -o %dynamiclib2 -DFILE2 -// RUN: %clang_asan %s -fPIE %ld_flags_rpath_exe1 %ld_flags_rpath_exe2 -o %t +// RUN: %clang_asan -fcommon %s -fPIC -shared -o %dynamiclib1 -DFILE1 +// RUN: %clang_asan -fcommon %s -fPIC -shared -o %dynamiclib2 -DFILE2 +// RUN: %clang_asan -fcommon %s -fPIE %ld_flags_rpath_exe1 %ld_flags_rpath_exe2 -o %t // RUN: not %run %t 2>&1 | FileCheck %s // // CHECK: The following global variable is not properly aligned. Index: compiler-rt/test/asan/TestCases/set_shadow_test.c =================================================================== --- compiler-rt/test/asan/TestCases/set_shadow_test.c +++ compiler-rt/test/asan/TestCases/set_shadow_test.c @@ -21,13 +21,13 @@ void __asan_set_shadow_f5(size_t addr, size_t size); void __asan_set_shadow_f8(size_t addr, size_t size); -char a __attribute__((aligned(8))); +char* a; void f(long arg) { size_t shadow_offset; size_t shadow_scale; __asan_get_shadow_mapping(&shadow_scale, &shadow_offset); - size_t addr = (((size_t)&a) >> shadow_scale) + shadow_offset; + size_t addr = (((size_t)a) >> shadow_scale) + shadow_offset; switch (arg) { // X00-NOT: AddressSanitizer @@ -61,9 +61,10 @@ int main(int argc, char **argv) { assert(argc > 1); + a = malloc(8); long arg = strtol(argv[1], 0, 16); f(arg); - a = 1; + *a = 1; printf("PASS\n"); return 0; }