GCC_DIAG_IGNORE() only with >= 4.6

The new GCC_DIAG_IGNORE() pragma I added a few commits ago was only
supposed to be enabled on gcc 4.6+; my code inadvertently did it on
4.2+