// RUN: %clangxx_asan %s -o %t && %run %t | FileCheck %s | |
#include <stdio.h> | |
int c = 0; | |
static void foo() { | |
++c; | |
} | |
static void fini() { | |
printf("fini\n"); | |
} | |
int main() { | |
printf("c=%d\n", c); | |
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) = &fini; | |
// CHECK: c=2 | |
// CHECK: fini |