#include <stdio.h>
#define I_HATE_MACRO2(a, b) a ## b
#define I_HATE_MACRO(a, b) I_HATE_MACRO2(a, b)
#define ASSERT_ARRAY(a) \
typedef struct { \
int I_HATE_MACRO(must_be_an_array_,__LINE__) : ((void*)&(a) == (void*)(a)); \
} I_HATE_MACRO(must_be_an_array_,__LINE__)
int main( ) {
int test[ ] = { 1 , 2 , 3 } ;
int test2;
int * test3;
ASSERT_ARRAY( test) ;
ASSERT_ARRAY( test2) ;
ASSERT_ARRAY( test3) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIElfSEFURV9NQUNSTzIoYSwgYikgYSAjIyBiCiNkZWZpbmUgSV9IQVRFX01BQ1JPKGEsIGIpIElfSEFURV9NQUNSTzIoYSwgYikKI2RlZmluZSBBU1NFUlRfQVJSQVkoYSkgXAogICAgdHlwZWRlZiBzdHJ1Y3QgeyBcCiAgICAgICAgaW50IElfSEFURV9NQUNSTyhtdXN0X2JlX2FuX2FycmF5XyxfX0xJTkVfXykgOiAoKHZvaWQqKSYoYSkgPT0gKHZvaWQqKShhKSk7IFwKICAgIH0gSV9IQVRFX01BQ1JPKG11c3RfYmVfYW5fYXJyYXlfLF9fTElORV9fKQoKaW50IG1haW4oKSB7CiAgICBpbnQgdGVzdFtdID0gezEsMiwzfTsKICAgIGludCB0ZXN0MjsKICAgIGludCAqdGVzdDM7CgogICAgQVNTRVJUX0FSUkFZKHRlc3QpOwogICAgQVNTRVJUX0FSUkFZKHRlc3QyKTsKICAgIEFTU0VSVF9BUlJBWSh0ZXN0Myk7CgogICAgcmV0dXJuIDA7Cn0=