1 | #include <stdint.h> |
2 | #include <stdio.h> |
3 | |
4 | #define AL 4096 |
5 | struct foo |
6 | { |
7 | int i; |
8 | } __attribute ((aligned (AL))); |
9 | |
10 | static __thread struct foo f; |
11 | static struct foo g; |
12 | |
13 | |
14 | #ifndef FCT |
15 | # define FCT in_dso1 |
16 | #endif |
17 | |
18 | |
19 | int |
20 | FCT (void) |
21 | { |
22 | puts (s: __func__); |
23 | |
24 | int result = 0; |
25 | |
26 | int fail = (((uintptr_t) &f) & (AL - 1)) != 0; |
27 | printf (format: "&f = %p %s\n" , &f, fail ? "FAIL" : "OK" ); |
28 | result |= fail; |
29 | |
30 | fail = (((uintptr_t) &g) & (AL - 1)) != 0; |
31 | printf (format: "&g = %p %s\n" , &g, fail ? "FAIL" : "OK" ); |
32 | result |= fail; |
33 | |
34 | return result; |
35 | } |
36 | |