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