[clang] 456a7e5 - [clang][asan] Add test for ensuring PR52382 is fixed

Leonard Chan via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 5 14:10:43 PDT 2021


Author: Leonard Chan
Date: 2021-11-05T14:10:34-07:00
New Revision: 456a7e52310d632be4e41a4b7c4853e910648621

URL: https://github.com/llvm/llvm-project/commit/456a7e52310d632be4e41a4b7c4853e910648621
DIFF: https://github.com/llvm/llvm-project/commit/456a7e52310d632be4e41a4b7c4853e910648621.diff

LOG: [clang][asan] Add test for ensuring PR52382 is fixed

The fix for PR52382 was already introduced in D112732 which ensures that module
instrumentation always runs after function instrumentation. This adds a test
that ensures the PR is addressed and prevent regression.

Differential Revision: https://reviews.llvm.org/D113143

Added: 
    clang/test/CodeGen/pr52382.c

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/clang/test/CodeGen/pr52382.c b/clang/test/CodeGen/pr52382.c
new file mode 100644
index 0000000000000..6150c936f6bbd
--- /dev/null
+++ b/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: }


        


More information about the cfe-commits mailing list