Skip to content

Commit 2b840ed

Browse files
authored
[DeviceASAN] skip instrument dynamic alloca (#19285)
DASAN cannot handle dynamic alloca(llvm-spirv does not support the llvm.get.dynamic.area.offset.i64 intrinsic). Regression test is added internally.
1 parent 9220695 commit 2b840ed

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,6 +1297,8 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
12971297
CmdArgs.push_back("-asan-stack-dynamic-alloca=0");
12981298
CmdArgs.push_back("-mllvm");
12991299
CmdArgs.push_back("-asan-use-after-return=never");
1300+
CmdArgs.push_back("-mllvm");
1301+
CmdArgs.push_back("-asan-instrument-dynamic-allocas=0");
13001302

13011303
if (!RecoverableSanitizers.empty())
13021304
CmdArgs.push_back(Args.MakeArgString("-fsanitize-recover=" +

clang/test/Driver/sycl-device-sanitizer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
// SYCL-ASAN-SAME: "-mllvm" "-asan-globals=0"
1919
// SYCL-ASAN-SAME: "-mllvm" "-asan-stack-dynamic-alloca=0"
2020
// SYCL-ASAN-SAME: "-mllvm" "-asan-use-after-return=never"
21+
// SYCL-ASAN-SAME: "-mllvm" "-asan-instrument-dynamic-allocas=0"
2122
// SYCL-ASAN-SAME: "-mllvm" "-asan-mapping-scale=4"
2223

2324
// RUN: %clangxx -fsycl -Xarch_device -fsanitize=address -c %s -### 2>&1 \

0 commit comments

Comments
 (0)