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