From: Richard Biener Date: Thu, 6 Mar 2014 11:19:13 +0000 (+0000) Subject: re PR middle-end/60445 (473.astar miscompares with -Ofast) X-Git-Tag: releases/gcc-4.9.0~557 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a74158c7f261a02fb5d0b7c7f7dc16be298d0772;p=thirdparty%2Fgcc.git re PR middle-end/60445 (473.astar miscompares with -Ofast) 2014-03-06 Richard Biener PR middle-end/60445 PR lto/60424 PR lto/60427 Revert 2014-03-04 Paulo Matos * tree-streamer.c (record_common_node): Assert we don't record nodes with type double. (preload_common_node): Skip type double, complex double and double pointer since it is now frontend dependent due to fshort-double option. * gcc.dg/lto/pr55113_0.c: New testcase. From-SVN: r208379 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a5b0069ea2d..7754668f62fe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2014-03-06 Richard Biener + + PR middle-end/60445 + PR lto/60424 + PR lto/60427 + Revert + 2014-03-04 Paulo Matos + + * tree-streamer.c (record_common_node): Assert we don't record + nodes with type double. + (preload_common_node): Skip type double, complex double and + double pointer since it is now frontend dependent due to + fshort-double option. + 2014-03-06 Richard Biener * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d0b1e70facf6..82d19e8aebd0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2014-03-06 Richard Biener + + PR middle-end/60445 + PR lto/60424 + PR lto/60427 + Revert + 2014-03-04 Paulo Matos + + * gcc.dg/lto/pr55113_0.c: New testcase. + 2014-03-05 Jakub Jelinek PR testsuite/59308 diff --git a/gcc/testsuite/gcc.dg/lto/pr55113_0.c b/gcc/testsuite/gcc.dg/lto/pr55113_0.c deleted file mode 100644 index 8ef11dc47f3b..000000000000 --- a/gcc/testsuite/gcc.dg/lto/pr55113_0.c +++ /dev/null @@ -1,13 +0,0 @@ -/* PR 55113 */ -/* { dg-lto-do link } */ -/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/ -/* { dg-skip-if "PR60410" { { x86_64-*-* i?86-*-* } && lp64 } } */ - -int -main(void) -{ - float a = 1.0; - float b = 2.0; - double f = a + b * 1e-12; - return (int)f - 1; -} diff --git a/gcc/tree-streamer.c b/gcc/tree-streamer.c index 4b3e3e4cd5a0..af9461e77106 100644 --- a/gcc/tree-streamer.c +++ b/gcc/tree-streamer.c @@ -264,8 +264,7 @@ record_common_node (struct streamer_tree_cache_d *cache, tree node) gcc_checking_assert (node != boolean_type_node && node != boolean_true_node - && node != boolean_false_node - && node != double_type_node); + && node != boolean_false_node); /* We have to make sure to fill exactly the same number of elements for all frontends. That can include NULL trees. @@ -316,14 +315,10 @@ preload_common_nodes (struct streamer_tree_cache_d *cache) record_common_node (cache, sizetype_tab[i]); for (i = 0; i < TI_MAX; i++) - /* Skip boolean type and constants. They are frontend dependent. - Skip double type, frontend dependent due to -fshort-double. */ + /* Skip boolean type and constants, they are frontend dependent. */ if (i != TI_BOOLEAN_TYPE && i != TI_BOOLEAN_FALSE - && i != TI_BOOLEAN_TRUE - && i != TI_DOUBLE_TYPE - && i != TI_COMPLEX_DOUBLE_TYPE - && i != TI_DOUBLE_PTR_TYPE) + && i != TI_BOOLEAN_TRUE) record_common_node (cache, global_trees[i]); }