deal with different versions of gcc/clang handling pragmas inconsistently