1 | namespace enable_if_attrs { |
2 | constexpr int fn1() __attribute__((enable_if(0, ""))) { return 0; } |
3 | constexpr int fn1() { return 1; } |
4 | |
5 | constexpr int fn2() { return 1; } |
6 | constexpr int fn2() __attribute__((enable_if(0, ""))) { return 0; } |
7 | |
8 | constexpr int fn3(int i) __attribute__((enable_if(!i, ""))) { return 0; } |
9 | constexpr int fn3(int i) __attribute__((enable_if(i, ""))) { return 1; } |
10 | |
11 | constexpr int fn4(int i) { return 0; } |
12 | constexpr int fn4(int i) __attribute__((enable_if(i, ""))) { return 1; } |
13 | |
14 | constexpr int fn5(int i) __attribute__((enable_if(i, ""))) { return 1; } |
15 | constexpr int fn5(int i) { return 0; } |
16 | } |
17 | |
18 | namespace pass_object_size_attrs { |
19 | constexpr int fn1(void *const a __attribute__((pass_object_size(0)))) { |
20 | return 1; |
21 | } |
22 | constexpr int fn1(void *const a) { return 0; } |
23 | |
24 | constexpr int fn2(void *const a) { return 0; } |
25 | constexpr int fn2(void *const a __attribute__((pass_object_size(0)))) { |
26 | return 1; |
27 | } |
28 | } |
29 | |