Author: Vitaly Buka Date: 2022-12-04T19:10:17-08:00 New Revision: 262d6d495c692678c100fc4565a519b4ed070f28
URL: https://github.com/llvm/llvm-project/commit/262d6d495c692678c100fc4565a519b4ed070f28 DIFF: https://github.com/llvm/llvm-project/commit/262d6d495c692678c100fc4565a519b4ed070f28.diff LOG: [test][CodeGen] Check noundef for return value Added: clang/test/CodeGen/msan-param-retval.cpp Modified: clang/test/CodeGen/msan-param-retval.c Removed: ################################################################################ diff --git a/clang/test/CodeGen/msan-param-retval.c b/clang/test/CodeGen/msan-param-retval.c index fffb6cb01409..e0aae2d90fdc 100644 --- a/clang/test/CodeGen/msan-param-retval.c +++ b/clang/test/CodeGen/msan-param-retval.c @@ -1,13 +1,13 @@ // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -no-enable-noundef-analysis -o - %s | \ -// RUN: FileCheck %s --check-prefix=CLEAN +// RUN: FileCheck %s --check-prefixes=CLEAN,CHECK // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -fno-sanitize-memory-param-retval -o - %s | \ -// RUN: FileCheck %s --check-prefixes=NOUNDEF,NOUNDEF_ONLY +// RUN: FileCheck %s --check-prefixes=NOUNDEF,NOUNDEF_ONLY,CHECK // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -mllvm -msan-eager-checks -o - %s | \ -// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER +// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER,CHECK // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -no-enable-noundef-analysis -fsanitize-memory-param-retval -o - %s | \ -// RUN: FileCheck %s --check-prefixes=CLEAN +// RUN: FileCheck %s --check-prefixes=CLEAN,CHECK // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -o - %s | \ -// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER +// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER,CHECK void bar(int x) { } @@ -16,4 +16,13 @@ void bar(int x) { // NOUNDEF: define dso_local void @bar(i32 noundef %x) #0 { // CLEAN: @__msan_param_tls // NOUNDEF_ONLY: @__msan_param_tls -// EAGER-NOT: @__msan_param_tls \ No newline at end of file +// EAGER-NOT: @__msan_param_tls +// CHECK: } + +int foo() { + return 1; +} + +// CHECK: define dso_local i32 @foo() #0 { +// CHECK: @__msan_retval_tls +// CHECK: } \ No newline at end of file diff --git a/clang/test/CodeGen/msan-param-retval.cpp b/clang/test/CodeGen/msan-param-retval.cpp new file mode 100644 index 000000000000..6926cce1080e --- /dev/null +++ b/clang/test/CodeGen/msan-param-retval.cpp @@ -0,0 +1,31 @@ +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -no-enable-noundef-analysis -o - %s | \ +// RUN: FileCheck %s --check-prefixes=CLEAN,CHECK +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -fno-sanitize-memory-param-retval -o - %s | \ +// RUN: FileCheck %s --check-prefixes=NOUNDEF,NOUNDEF_ONLY,CHECK +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -mllvm -msan-eager-checks -o - %s | \ +// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER,CHECK +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -no-enable-noundef-analysis -fsanitize-memory-param-retval -o - %s | \ +// RUN: FileCheck %s --check-prefixes=CLEAN,CHECK +// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm -fsanitize=memory -o - %s | \ +// RUN: FileCheck %s --check-prefixes=NOUNDEF,EAGER,CHECK + +void bar(int x) { +} + +// CLEAN: define dso_local void @_Z3bari(i32 %x) #0 { +// NOUNDEF: define dso_local void @_Z3bari(i32 noundef %x) #0 { +// CLEAN: @__msan_param_tls +// NOUNDEF_ONLY: @__msan_param_tls +// EAGER-NOT: @__msan_param_tls +// CHECK: } + +int foo() { + return 1; +} + +// CLEAN: define dso_local i32 @_Z3foov() #0 { +// NOUNDEF: define dso_local noundef i32 @_Z3foov() #0 { +// CLEAN: @__msan_retval_tls +// NOUNDEF_ONLY: @__msan_retval_tls +// EAGER-NOT: @__msan_retval_tls +// CHECK: } \ No newline at end of file _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits