i Know how to use attribute deprecated to deprecate a function like this:
int old_fn () __attribute__ ((deprecated));
But
Nice, elegant solution, however depending on C99 being enabled (works with gcc 4.8.2 or later, not tested on earlier versions):
#define DEPRECATED_MACRO1 _Pragma ("GCC warning \"'DEPRECATED_MACRO1' macro is deprecated\"") 7
#define DEPRECATED_MACRO2(...) _Pragma ("GCC warning \"'DEPRECATED_MACRO2' macro is deprecated\"") printf(__VA_ARGS__)
int main(int argc, char*argv[])
{
int n = DEPRECATED_MACRO1;
DEPRECATED_MACRO2("%d\n", n);
return 0;
}