diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 4969b4a9630..317d1bdd208 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,9 @@ +2019-05-14 Martin Liska + + PR preprocessor/90382 + * line-map.c (first_map_in_common_1): Handle ADHOC + locations. + 2019-05-14 Martin Liska PR preprocessor/90382 diff --git a/libcpp/line-map.c b/libcpp/line-map.c index e1fc0e9faf4..31439f4aba3 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -1251,8 +1251,13 @@ first_map_in_common_1 (struct line_maps *set, location_t *loc1) { location_t l0 = *loc0, l1 = *loc1; - const struct line_map *map0 = linemap_lookup (set, l0), - *map1 = linemap_lookup (set, l1); + const struct line_map *map0 = linemap_lookup (set, l0); + if (IS_ADHOC_LOC (l0)) + l0 = get_location_from_adhoc_loc (set, l0); + + const struct line_map *map1 = linemap_lookup (set, l1); + if (IS_ADHOC_LOC (l1)) + l1 = get_location_from_adhoc_loc (set, l1); while (linemap_macro_expansion_map_p (map0) && linemap_macro_expansion_map_p (map1)