blob: 954e6e59647737c9db6db8cee4df04d1e29ab1ee [file] [log] [blame]
// Test AllocToken respects ignorelist for functions and files.
//
// RUN: %clang_cc1 -fsanitize=alloc-token -triple x86_64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-ALLOW
//
// RUN: echo "fun:excluded_by_all" > %t.func.ignorelist
// RUN: %clang_cc1 -fsanitize=alloc-token -fsanitize-ignorelist=%t.func.ignorelist -triple x86_64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-FUN
//
// RUN: echo "src:%s" | sed -e 's/\\/\\\\/g' > %t.file.ignorelist
// RUN: %clang_cc1 -fsanitize=alloc-token -fsanitize-ignorelist=%t.file.ignorelist -triple x86_64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SRC
extern void* malloc(unsigned long size);
// CHECK-LABEL: define{{.*}} @excluded_by_all(
void* excluded_by_all(unsigned long size) {
// CHECK-ALLOW: call ptr @__alloc_token_malloc(
// CHECK-FUN: call ptr @malloc(
// CHECK-SRC: call ptr @malloc(
return malloc(size);
}
// CHECK-LABEL: define{{.*}} @excluded_by_src(
void* excluded_by_src(unsigned long size) {
// CHECK-ALLOW: call ptr @__alloc_token_malloc(
// CHECK-FUN: call ptr @__alloc_token_malloc(
// CHECK-SRC: call ptr @malloc(
return malloc(size);
}