1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #define CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__) #define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__ #define IIF(c) PRIMITIVE_CAT(IIF_, c) #define IIF_0(t, ...) __VA_ARGS__ #define IIF_1(t, ...) t #define PROBE(x) x, 1 #define CHECK(...) CHECK_N(__VA_ARGS__, 0) #define CHECK_N(x, n, ...) n #define ENABLE_USER_gwiazdorrr () // gwiazdorrr is now enabled #define ENABLE_USER_foo () // foo is also enabled // #define ENABLE_USER_bar () // bar is NOT enabled #define USER_ENABLED_PROBE(user) USER_ENABLED_PROBE_PROXY( ENABLE_USER_##user ) // concatenate prefix with user name #define USER_ENABLED_PROBE_PROXY(...) USER_ENABLED_PROBE_PRIMIVIE(__VA_ARGS__) // expand arguments #define USER_ENABLED_PROBE_PRIMIVIE(x) USER_ENABLED_PROBE_COMBINE_ x // merge #define USER_ENABLED_PROBE_COMBINE_(...) PROBE(~) // if merge successful, expand to probe #define IS_USER_ENABLED(user) CHECK(USER_ENABLED_PROBE(user)) #define TURN_OPTIMISATION_OFF(user) IIF( IS_USER_ENABLED(user) ) \ (\ _Pragma ("GCC optimize \"0\""),\ /* nothing */ \ ) TURN_OPTIMISATION_OFF(gwiazdorrr) // expands into __pragma optimize("", off) TURN_OPTIMISATION_OFF(foo) // expands into __pragma optimize("", off) TURN_OPTIMISATION_OFF(bar) // nothing emitted int main() { return 0; } |
I2RlZmluZSBDQVQoYSwgLi4uKSBQUklNSVRJVkVfQ0FUKGEsIF9fVkFfQVJHU19fKQojZGVmaW5lIFBSSU1JVElWRV9DQVQoYSwgLi4uKSBhICMjIF9fVkFfQVJHU19fCgojZGVmaW5lIElJRihjKSBQUklNSVRJVkVfQ0FUKElJRl8sIGMpCiNkZWZpbmUgSUlGXzAodCwgLi4uKSBfX1ZBX0FSR1NfXwojZGVmaW5lIElJRl8xKHQsIC4uLikgdAoKI2RlZmluZSBQUk9CRSh4KSB4LCAxIAoKI2RlZmluZSBDSEVDSyguLi4pIENIRUNLX04oX19WQV9BUkdTX18sIDApCiNkZWZpbmUgQ0hFQ0tfTih4LCBuLCAuLi4pIG4KCiNkZWZpbmUgRU5BQkxFX1VTRVJfZ3dpYXpkb3JyciAoKSAvLyBnd2lhemRvcnJyIGlzIG5vdyBlbmFibGVkCiNkZWZpbmUgRU5BQkxFX1VTRVJfZm9vICgpICAgICAgICAvLyBmb28gaXMgYWxzbyBlbmFibGVkCi8vICNkZWZpbmUgRU5BQkxFX1VTRVJfYmFyICgpICAgICAvLyBiYXIgaXMgTk9UIGVuYWJsZWQKCiNkZWZpbmUgVVNFUl9FTkFCTEVEX1BST0JFKHVzZXIpICAgICAgICAgICAgVVNFUl9FTkFCTEVEX1BST0JFX1BST1hZKCBFTkFCTEVfVVNFUl8jI3VzZXIgKSAvLyBjb25jYXRlbmF0ZSBwcmVmaXggd2l0aCB1c2VyIG5hbWUKI2RlZmluZSBVU0VSX0VOQUJMRURfUFJPQkVfUFJPWFkoLi4uKSAgICAgICBVU0VSX0VOQUJMRURfUFJPQkVfUFJJTUlWSUUoX19WQV9BUkdTX18pICAgICAgIC8vIGV4cGFuZCBhcmd1bWVudHMKI2RlZmluZSBVU0VSX0VOQUJMRURfUFJPQkVfUFJJTUlWSUUoeCkgICAgICBVU0VSX0VOQUJMRURfUFJPQkVfQ09NQklORV8geCAgICAgICAgICAgICAgICAgIC8vIG1lcmdlCiNkZWZpbmUgVVNFUl9FTkFCTEVEX1BST0JFX0NPTUJJTkVfKC4uLikgICAgUFJPQkUofikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBtZXJnZSBzdWNjZXNzZnVsLCBleHBhbmQgdG8gcHJvYmUKCiNkZWZpbmUgSVNfVVNFUl9FTkFCTEVEKHVzZXIpIENIRUNLKFVTRVJfRU5BQkxFRF9QUk9CRSh1c2VyKSkKCgojZGVmaW5lIFRVUk5fT1BUSU1JU0FUSU9OX09GRih1c2VyKSBJSUYoIElTX1VTRVJfRU5BQkxFRCh1c2VyKSApIFwKICAgIChcCiAgICAgICAgX1ByYWdtYSAoIkdDQyBvcHRpbWl6ZSBcIjBcIiIpLFwKICAgICAgICAvKiBub3RoaW5nICovIFwKICAgICkKClRVUk5fT1BUSU1JU0FUSU9OX09GRihnd2lhemRvcnJyKSAvLyBleHBhbmRzIGludG8gX19wcmFnbWEgb3B0aW1pemUoIiIsIG9mZikKVFVSTl9PUFRJTUlTQVRJT05fT0ZGKGZvbykgICAgICAgIC8vIGV4cGFuZHMgaW50byBfX3ByYWdtYSBvcHRpbWl6ZSgiIiwgb2ZmKQpUVVJOX09QVElNSVNBVElPTl9PRkYoYmFyKSAgICAgICAgLy8gbm90aGluZyBlbWl0dGVkCgppbnQgbWFpbigpCnsKCXJldHVybiAwOwp9
-
upload with new input
-
result: Success time: 0.02s memory: 2720 kB returned value: 0


