mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-14 03:29:57 +00:00
456a7e5231
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
20 lines
785 B
C
20 lines
785 B
C
// 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: }
|