prog.cpp: In function ‘int X()’:
prog.cpp:2: warning: no return statement in function returning non-void
prog.cpp: In function ‘int m()’:
prog.cpp:4: warning: control reaches end of non-void function
prog.cpp: In function ‘int X() [with T = int, char* p = ((char*)(& p))]’:
prog.cpp:2: warning: control reaches end of non-void function
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status