From: Richard Biener Date: Tue, 5 Jun 2018 13:42:57 +0000 (+0000) Subject: lto.c (cmp_type_location): Expand locations only once. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f115c9b536ee5e88ca72c94762974459e8d1cc06;p=gcc.git lto.c (cmp_type_location): Expand locations only once. 2018-06-05 Richard Biener * lto.c (cmp_type_location): Expand locations only once. From-SVN: r261201 --- diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 5e1e0a9d8ee..f77634aae6a 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,7 @@ +2018-06-05 Richard Biener + + * lto.c (cmp_type_location): Expand locations only once. + 2018-05-30 Jan Hubicka * lang.opt (lto_linker_output): Add nolto-rel. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 86f3fe49a68..17634797c6e 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1707,23 +1707,19 @@ cmp_type_location (const void *p1_, const void *p2_) tree tname1 = TYPE_NAME (*p1); tree tname2 = TYPE_NAME (*p2); + expanded_location xloc1 = expand_location (DECL_SOURCE_LOCATION (tname1)); + expanded_location xloc2 = expand_location (DECL_SOURCE_LOCATION (tname2)); - const char *f1 = DECL_SOURCE_FILE (tname1); - const char *f2 = DECL_SOURCE_FILE (tname2); - + const char *f1 = lbasename (xloc1.file); + const char *f2 = lbasename (xloc2.file); int r = strcmp (f1, f2); if (r == 0) { - int l1 = DECL_SOURCE_LINE (tname1); - int l2 = DECL_SOURCE_LINE (tname2); - if (l1 == l2) - { - int l1 = DECL_SOURCE_COLUMN (tname1); - int l2 = DECL_SOURCE_COLUMN (tname2); - return l1 - l2; - } - else - return l1 - l2; + int l1 = xloc1.line; + int l2 = xloc2.line; + if (l1 != l2) + return l1 - l2; + return xloc1.column - xloc2.column; } else return r;