- #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