1// Verify ubsan doesn't emit checks for blacklisted functions and files 2// RUN: echo "fun:hash" > %t-func.blacklist 3// RUN: echo "src:%s" > %t-file.blacklist 4// RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -emit-llvm %s -o - | FileCheck %s --check-prefix=DEFAULT 5// RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -fsanitize-blacklist=%t-func.blacklist -emit-llvm %s -o - | FileCheck %s --check-prefix=FUNC 6// RUN: %clang_cc1 -fsanitize=unsigned-integer-overflow -fsanitize-blacklist=%t-file.blacklist -emit-llvm %s -o - | FileCheck %s --check-prefix=FILE 7 8// FIXME: %t-file.blacklist contains DOSish paths. 9// REQUIRES: shell 10 11unsigned i; 12 13// DEFAULT: @hash 14// FUNC: @hash 15// FILE: @hash 16unsigned hash() { 17// DEFAULT: call void @__ubsan 18// FUNC-NOT: call void @__ubsan 19// FILE-NOT: call void @__ubsan 20 return i * 37; 21} 22 23// DEFAULT: @add 24// FUNC: @add 25// FILE: @add 26unsigned add() { 27// DEFAULT: call void @__ubsan 28// FUNC: call void @__ubsan 29// FILE-NOT: call void @__ubsan 30 return i + 1; 31} 32