Skip to content

Commit

Permalink
[clang][asan] Add test for ensuring PR52382 is fixed
Browse files Browse the repository at this point in the history
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
  • Loading branch information
PiJoules committed Nov 5, 2021
1 parent a5cd278 commit 456a7e5
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions clang/test/CodeGen/pr52382.c
Original file line number Diff line number Diff line change
@@ -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: }

0 comments on commit 456a7e5

Please sign in to comment.