Commit f42c637e by Paulo Matos Committed by Paulo Matos

lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used consistently accross all TUs.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
	    Richard Biener  <rguenther@suse.de>

	* lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
	consistently accross all TUs.
	(run_gcc): Enable -fshort-double automatically at link at link-time
	and disallow override.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>

    * c.opt: Enable LTO FE for fshort-double.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>

    * gcc.dg/lto/pr55113_0.c: New testcase.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>

    * lto-lang.c (lto_init): Pass flag_short_double to
    build_common_tree_nodes.


Co-Authored-By: Richard Biener <rguenther@suse.de>

From-SVN: r208428
parent 1c74dc2a
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
Richard Biener <rguenther@suse.de>
* lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
consistently accross all TUs.
(run_gcc): Enable -fshort-double automatically at link at link-time
and disallow override.
2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
PR target/58271
......
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* c.opt: Enable LTO FE for fshort-double.
2014-03-07 Jason Merrill <jason@redhat.com>
* c.opt: Add -std=c++14.
......
......@@ -1141,7 +1141,7 @@ C++ ObjC++ Optimization Var(flag_rtti) Init(1)
Generate run time type descriptor information
fshort-double
C ObjC C++ ObjC++ Optimization Var(flag_short_double)
C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
Use the same size for double as for float
fshort-enums
......
......@@ -452,6 +452,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
case OPT_fshort_double:
for (j = 0; j < *decoded_options_count; ++j)
if ((*decoded_options)[j].opt_index == foption->opt_index)
break;
......@@ -677,6 +678,7 @@ run_gcc (unsigned argc, char *argv[])
case OPT_fgnu_tm:
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
case OPT_fshort_double:
case OPT_ffp_contract_:
case OPT_fwrapv:
case OPT_ftrapv:
......@@ -748,6 +750,7 @@ run_gcc (unsigned argc, char *argv[])
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
case OPT_fshort_double:
/* Ignore these, they are determined by the input files.
??? We fail to diagnose a possible mismatch here. */
continue;
......
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* lto-lang.c (lto_init): Pass flag_short_double to
build_common_tree_nodes.
2014-02-14 Jan Hubicka <hubicka@ucw.cz>
PR lto/60295
......
......@@ -1158,7 +1158,7 @@ lto_init (void)
flag_generate_lto = (flag_wpa != NULL);
/* Create the basic integer types. */
build_common_tree_nodes (flag_signed_char, /*short_double=*/false);
build_common_tree_nodes (flag_signed_char, flag_short_double);
/* The global tree for the main identifier is filled in by
language-specific front-end initialization that is not run in the
......
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
* gcc.dg/lto/pr55113_0.c: New testcase.
2014-03-08 Adam Butcher <adam@jessamine.co.uk>
PR c++/60033
......
/* 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment