https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69126
--- Comment #9 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Running with gcc-4.8.3, it appears that the strange-looking location of the "ignore" is pre-existing behavior, and that the change in r226234 of where the diagnostic occurs has simply exposed it. Breakpoint 18, linemap_compare_locations (set=0x7ffff7ffb000, pre=7092, post=post@entry=7209) at ../../libcpp/line-map.c:1023 (gdb) call inform (7092, "pre, the location of the ignore") /tmp/test.cc: In function ‘int g()’: /tmp/test.cc:17:24: note: pre, the location of the ignore MACRO; ^ (gdb) call inform (7209, "post, the location of the diagnostic") /tmp/test.cc:18:13: note: post, the location of the diagnostic return 0; ^