From f23dee540811ddbf5255dbfbd9f58d4bbd4332bb Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Tue, 15 Sep 2015 23:06:17 +0000 Subject: [PATCH] [ASan] Add test for .preinit_array/.init_array/.fini_array sections. llvm-svn: 247737 --- .../TestCases/Linux/init_fini_sections.cc | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 compiler-rt/test/asan/TestCases/Linux/init_fini_sections.cc diff --git a/compiler-rt/test/asan/TestCases/Linux/init_fini_sections.cc b/compiler-rt/test/asan/TestCases/Linux/init_fini_sections.cc new file mode 100644 index 000000000000..c7234eeeac2c --- /dev/null +++ b/compiler-rt/test/asan/TestCases/Linux/init_fini_sections.cc @@ -0,0 +1,24 @@ +// RUN: %clangxx_asan %s -o %t && %run %t | FileCheck %s + +#include + +static void foo() { + printf("foo\n"); +} + +int main() { + return 0; +} + +__attribute__((section(".preinit_array"))) +void (*call_foo)(void) = &foo; + +__attribute__((section(".init_array"))) +void (*call_foo_2)(void) = &foo; + +__attribute__((section(".fini_array"))) +void (*call_foo_3)(void) = &foo; + +// CHECK: foo +// CHECK: foo +// CHECK: foo