https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81306
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> --- And I wonder if that's what this comment in dump_location_info talks about: 1187 for (unsigned int i = 0; i < MACRO_MAP_NUM_MACRO_TOKENS (map); i++) 1188 { 1189 source_location x = MACRO_MAP_LOCATIONS (map)[2 * i]; 1190 source_location y = MACRO_MAP_LOCATIONS (map)[(2 * i) + 1]; 1191 1192 /* linemap_add_macro_token encodes token numbers in an expansion 1193 by putting them after MAP_START_LOCATION. */ 1194 1195 /* I'm typically seeing 4 uninitialized entries at the end of 1196 0xafafafaf. 1197 This appears to be due to macro.c:replace_args 1198 adding 2 extra args for padding tokens; presumably there may 1199 be a leading and/or trailing padding token injected, 1200 each for 2 more location slots. 1201 This would explain there being up to 4 source_locations slots 1202 that may be uninitialized. */