From: Dodji Seketeli Date: Tue, 25 Oct 2011 08:59:07 +0000 (+0000) Subject: Fix lookup of macro maps X-Git-Tag: releases/gcc-4.7.0~2835 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3bb0c8dbb0e99451b8520360310e62ce849df6ca;p=thirdparty%2Fgcc.git Fix lookup of macro maps * line-map.c (linemap_macro_map_lookup): Fix logic. From-SVN: r180427 --- diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index d7fb84f576b9..918b8af1dadd 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,7 @@ +2011-10-24 Dodji Seketeli + + * line-map.c (linemap_macro_map_lookup): Fix logic. + 2011-10-24 Dodji Seketeli * include/line-map.h (linemap_expand_location): Take a line table diff --git a/libcpp/line-map.c b/libcpp/line-map.c index 7a1decc7501e..23a0347cb5fb 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -588,14 +588,14 @@ linemap_macro_map_lookup (struct line_maps *set, source_location line) mn = 0; } - do + while (mn < mx) { md = (mx + mn) / 2; if (MAP_START_LOCATION (LINEMAPS_MACRO_MAP_AT (set, md)) > line) - mn = md; + mn = md + 1; else mx = md; - } while (mx - mn > 1); + } LINEMAPS_MACRO_CACHE (set) = mx; result = LINEMAPS_MACRO_MAP_AT (set, LINEMAPS_MACRO_CACHE (set));