Guard use of push_macro & pop_macro from gcc < 4.3

Fixes #17