https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44652
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- where = linemap_included_from (map); map = linemap_included_from_linemap (line_table, map); bool is_module = MAP_MODULE_P (map); s.file = LINEMAP_FILE (map); s.line = SOURCE_LINE (map, where); int col = -1; if (first && context->show_column) { s.column = SOURCE_COLUMN (map, where); col = diagnostic_converted_column (context, s); } first is true so the column info must be missing from the preprocessor.