[rtsan] Fix RTTI issue, make a better c test (#108720)
Later in a development branch, our c tests were failing, this was due to the lack of RTTI. This follows very similar patterns found in the other sanitizers
This commit is contained in:
parent
c29dfb3346
commit
cb47b45d78
@ -29,6 +29,8 @@ set(RTSAN_LINK_LIBS
|
||||
${COMPILER_RT_UNWINDER_LINK_LIBS}
|
||||
${COMPILER_RT_CXX_LINK_LIBS})
|
||||
|
||||
append_rtti_flag(OFF RTSAN_CFLAGS)
|
||||
|
||||
if(APPLE)
|
||||
add_compiler_rt_object_libraries(RTRtsan
|
||||
OS ${SANITIZER_COMMON_SUPPORTED_OS}
|
||||
|
@ -1,5 +1,4 @@
|
||||
// RUN: %clangxx -fsanitize=realtime %s -o %t
|
||||
// RUN: %clang -fsanitize=realtime %s -o %t
|
||||
// RUN: not %run %t 2>&1 | FileCheck %s
|
||||
// UNSUPPORTED: ios
|
||||
|
||||
|
28
compiler-rt/test/rtsan/sanity_check_pure_c.c
Normal file
28
compiler-rt/test/rtsan/sanity_check_pure_c.c
Normal file
@ -0,0 +1,28 @@
|
||||
// RUN: %clang -fsanitize=realtime %s -o %t
|
||||
// RUN: not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %clang %s -o %t
|
||||
// RUN: %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NO-SANITIZE
|
||||
#ifdef __cplusplus
|
||||
# error "This test must be built in C mode"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
// Check that we can build and run C code.
|
||||
|
||||
void nonblocking_function(void) __attribute__((nonblocking));
|
||||
|
||||
void nonblocking_function(void) __attribute__((nonblocking)) {
|
||||
void *ptr = malloc(2);
|
||||
printf("ptr: %p\n", ptr); // ensure we don't optimize out the malloc
|
||||
}
|
||||
|
||||
int main() {
|
||||
nonblocking_function();
|
||||
printf("Done\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// CHECK: ==ERROR: RealtimeSanitizer
|
||||
// CHECK-NO-SANITIZE: Done
|
Loading…
x
Reference in New Issue
Block a user