[PATCH] D113143: [clang][asan] Add test for ensuring PR52382 is fixed
Leonard Chan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 3 14:15:13 PDT 2021
leonardchan created this revision.
leonardchan added reviewers: aeubanks, vitalybuka.
leonardchan added a project: Sanitizers.
leonardchan requested review of this revision.
Herald added a project: clang.
The fix for PR52382 was already introduced in D112732 <https://reviews.llvm.org/D112732> which ensures that module instrumentation always runs after function instrumentation. This adds a test that ensures the PR is addressed and prevent regression.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D113143
Files:
clang/test/CodeGen/pr52382.c
Index: clang/test/CodeGen/pr52382.c
===================================================================
--- /dev/null
+++ clang/test/CodeGen/pr52382.c
@@ -0,0 +1,19 @@
+// RUN: %clang -target x86_64-unknown-linux-gnu -S -emit-llvm -o - -fsanitize=address %s | FileCheck %s
+
+// Ensure that ASan properly instruments a load into a global where the index
+// happens to be within the padding after the global which is used for the
+// redzone.
+
+// This global is 400 bytes long, but gets padded with 112 bytes for redzones,
+// rounding the total size after instrumentation to 512.
+int global_array[100] = {-1};
+
+// This access is 412 bytes after the start of the global: past the end of the
+// uninstrumented array, but within the bounds of the extended instrumented
+// array. We should ensure this is still instrumented.
+int main(void) { return global_array[103]; }
+
+// CHECK: @main
+// CHECK-NEXT: entry:
+// CHECK: call void @__asan_report_load4
+// CHECK: }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113143.384580.patch
Type: text/x-patch
Size: 972 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211103/e73e2179/attachment.bin>
More information about the cfe-commits
mailing list