]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Remove -fshort-double
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Feb 2016 15:36:16 +0000 (15:36 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Feb 2016 15:36:16 +0000 (15:36 +0000)
PR target/60410
* tree.c (build_common_tree_nodes): Remove short_double argument.
All callers changed.
* tree.h (build_common_tree_nodes): Adjust declaration.
* doc/invoke.texi (-fshort-double): Remove documentation.
* config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
* lto-wrapper.c (merge_and_complain, append_compiler_options,
append_linker_options): Don't handle OPT_fshort_double.

c-family/
PR target/60410
* c.opt (fshort-double): Remove.

testsuite/
PR target/60410
* gcc.dg/lto/pr55113_0.c: Remove test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233218 138bc75d-0d04-0410-961f-82ee72b054a4

16 files changed:
gcc/ChangeLog
gcc/ada/gcc-interface/misc.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c.opt
gcc/config/mips/t-img-elf
gcc/doc/invoke.texi
gcc/fortran/f95-lang.c
gcc/go/go-lang.c
gcc/java/decl.c
gcc/lto-wrapper.c
gcc/lto/lto-lang.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/lto/pr55113_0.c [deleted file]
gcc/tree.c
gcc/tree.h

index eef961c89638156d0848c4e8198e3e583c409ce0..e5e85f3ce94dfd808d48223e4fc113acf1ad3558 100644 (file)
 
 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
 
+       PR target/60410
+       * tree.c (build_common_tree_nodes): Remove short_double argument.
+       All callers changed.
+       * tree.h (build_common_tree_nodes): Adjust declaration.
+       * doc/invoke.texi (-fshort-double): Remove documentation.
+       * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+       MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
+       * lto-wrapper.c (merge_and_complain, append_compiler_options)
+       (append_linker_options): Don't handle OPT_fshort_double.
+
        PR rtl-optimization/68730
        * lra-remat.c (insn_to_cand_activation): New static variable.
        (lra_remat): Allocate and free it.
index 992ac0a3aa2ea5f9df309ae39bbfb13835b343ab..75e467bf7422f8bf697ed19675ca65e3212054ef 100644 (file)
@@ -355,7 +355,7 @@ gnat_init (void)
 {
   /* Do little here, most of the standard declarations are set up after the
      front-end has been run.  Use the same `char' as C for Interfaces.C.  */
-  build_common_tree_nodes (flag_signed_char, false);
+  build_common_tree_nodes (flag_signed_char);
 
   /* In Ada, we use an unsigned 8-bit type for the default boolean type.  */
   boolean_type_node = make_unsigned_type (8);
index c4f6bc42a7ca01f85c9148fc66da6486f263b639..745ce8e6c3236cf3a1b61b5fa4e25de0b31c219d 100644 (file)
@@ -1,3 +1,8 @@
+2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR target/60410
+       * c.opt (fshort-double): Remove.
+
 2016-02-05  Martin Sebor  <msebor@redhat.com>
 
        PR c++/69662
index 378afaec6b5b0b4ad4b32982afad2cf109caa3d7..3d84316cd12d46a1c63d99fc686f96ca801464e9 100644 (file)
@@ -5237,7 +5237,7 @@ c_common_nodes_and_builtins (void)
   tree va_list_arg_type_node;
   int i;
 
-  build_common_tree_nodes (flag_signed_char, flag_short_double);
+  build_common_tree_nodes (flag_signed_char);
 
   /* Define `int' and `char' first so that dbx will output them first.  */
   record_builtin_type (RID_INT, NULL, integer_type_node);
index 04dec78eb8e11b883c661f388cee74916e16fb8a..b4ec3b8c0564c9c99f3acc5d6256366a9e5674c5 100644 (file)
@@ -1439,10 +1439,6 @@ frtti
 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
 Generate run time type descriptor information.
 
-fshort-double
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
-Use the same size for double as for float.
-
 fshort-enums
 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
 Use the narrowest integer type possible for enumeration types.
index eca0a2e64da456f19f9216a326bb11adb624e96a..8c2285330e472e56299e774b62d0aa7539002cd8 100644 (file)
 # A multilib for mips32r6+LE
 # A multilib for mips64r6
 # A multilib for mips64r6+LE
-# A multilib for mips32r6+LE+singlefloat+shortdouble
 
-MULTILIB_OPTIONS = mips64r6 mabi=64 EL msoft-float/msingle-float fshort-double
-MULTILIB_DIRNAMES = mips64r6 64 el sof sgl short
+MULTILIB_OPTIONS = mips64r6 mabi=64 EL msoft-float/msingle-float
+MULTILIB_DIRNAMES = mips64r6 64 el sof sgl
 MULTILIB_MATCHES = EL=mel EB=meb
 
 # Don't build 64r6 with single-float
 MULTILIB_EXCEPTIONS += mips64r6/*msingle-float*
-MULTILIB_EXCEPTIONS += mips64r6/*fshort-double*
 
 MULTILIB_EXCEPTIONS += mabi=64*
 MULTILIB_EXCEPTIONS += msingle-float*
 MULTILIB_EXCEPTIONS += *msingle-float
-MULTILIB_EXCEPTIONS += fshort-double
-MULTILIB_EXCEPTIONS += EL/fshort-double
-MULTILIB_EXCEPTIONS += *msoft-float/fshort-double
index 0a2a6f45d7cf916a84dc48b6885cf04d43b12d8a..666d976f7c4474e4b601834cea4e76bf5ad19b7e 100644 (file)
@@ -489,8 +489,7 @@ Objective-C and Objective-C++ Dialects}.
 -fpcc-struct-return  -fpic  -fPIC -fpie -fPIE -fno-plt @gol
 -fno-jump-tables @gol
 -frecord-gcc-switches @gol
--freg-struct-return  -fshort-enums @gol
--fshort-double  -fshort-wchar @gol
+-freg-struct-return  -fshort-enums  -fshort-wchar @gol
 -fverbose-asm  -fpack-struct[=@var{n}]  @gol
 -fleading-underscore  -ftls-model=@var{model} @gol
 -fstack-reuse=@var{reuse_level} @gol
@@ -11109,14 +11108,6 @@ is equivalent to the smallest integer type that has enough room.
 code that is not binary compatible with code generated without that switch.
 Use it to conform to a non-default application binary interface.
 
-@item -fshort-double
-@opindex fshort-double
-Use the same size for @code{double} as for @code{float}.
-
-@strong{Warning:} the @option{-fshort-double} switch causes GCC to generate
-code that is not binary compatible with code generated without that switch.
-Use it to conform to a non-default application binary interface.
-
 @item -fshort-wchar
 @opindex fshort-wchar
 Override the underlying type for @code{wchar_t} to be @code{short
index 9c3a311fbc7f2ebc009fd9419eed3ba2a3cb3f27..b89a291e7615c6b5b576a6fbd2a7fe518b226186 100644 (file)
@@ -491,9 +491,8 @@ gfc_init_decl_processing (void)
   global_binding_level = current_binding_level;
 
   /* Build common tree nodes. char_type_node is unsigned because we
-     only use it for actual characters, not for INTEGER(1). Also, we
-     want double_type_node to actually have double precision.  */
-  build_common_tree_nodes (false, false);
+     only use it for actual characters, not for INTEGER(1).  */
+  build_common_tree_nodes (false);
 
   void_list_node = build_tree_list (NULL_TREE, void_type_node);
 
index 9f21424af6dfda55cf56c1176dee64fadd8a51c6..9c95c8e0bb16462a314f9bad7a1c34229858cdb7 100644 (file)
@@ -89,7 +89,7 @@ static const char *go_relative_import_path = NULL;
 static bool
 go_langhook_init (void)
 {
-  build_common_tree_nodes (false, false);
+  build_common_tree_nodes (false);
 
   /* I don't know why this has to be done explicitly.  */
   void_list_node = build_tree_list (NULL_TREE, void_type_node);
index 472b1990f199b3daec7ac2ed00e9437f3f3f9210..93304daea0076ffc05a88ace09b03087d8866928 100644 (file)
@@ -565,7 +565,7 @@ java_init_decl_processing (void)
   global_binding_level = current_binding_level;
 
   /* Build common tree nodes, Java has an unsigned char.  */
-  build_common_tree_nodes (false, false);
+  build_common_tree_nodes (false);
 
   /* ???  Now we continue and override some of the built types again
      with Java specific types.  As the above generated types are
index ced6f2f9cfffb4f692323e5c32e9aed41af8558a..6a337a030e03a936f07723dc4491f7713900c0d7 100644 (file)
@@ -308,7 +308,6 @@ 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;
@@ -511,7 +510,6 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts,
        case OPT_fgnu_tm:
        case OPT_freg_struct_return:
        case OPT_fpcc_struct_return:
-       case OPT_fshort_double:
        case OPT_ffp_contract_:
        case OPT_fmath_errno:
        case OPT_fsigned_zeros:
@@ -569,7 +567,6 @@ append_linker_options (obstack *argv_obstack, struct cl_decoded_option *opts,
 
        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;
index ec4db44e277e0a6ee1d8dad0a2ef909a95049085..691e9e2090521a3a1d7ff0ec750cb85d4c673fd5 100644 (file)
@@ -1246,7 +1246,7 @@ lto_init (void)
   flag_generate_lto = (flag_wpa != NULL);
 
   /* Create the basic integer types.  */
-  build_common_tree_nodes (flag_signed_char, flag_short_double);
+  build_common_tree_nodes (flag_signed_char);
 
   /* The global tree for the main identifier is filled in by
      language-specific front-end initialization that is not run in the
index f39a510f3adf66e6b277b7c9a10878e0659077b4..be3f5ec54070c5068c3ae37046524a08703bffd0 100644 (file)
@@ -1,3 +1,8 @@
+2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR target/60410
+       * gcc.dg/lto/pr55113_0.c: Remove test.
+
 2016-02-08  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/69719
diff --git a/gcc/testsuite/gcc.dg/lto/pr55113_0.c b/gcc/testsuite/gcc.dg/lto/pr55113_0.c
deleted file mode 100644 (file)
index 59e944c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* PR 55113 */
-/* { dg-lto-do link } */
-/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/
-/* { dg-skip-if "PR60410" { i?86-*-* x86_64-*-* } } */
-
-int 
-main(void)
-{
-  float a = 1.0;
-  float b = 2.0;
-  double f = a + b * 1e-12;
-  return (int)f - 1;
-}
index 07cb9d9765ca91806d5e987527fb1a3bd38b77bc..1d14583a9583eea8bbb94d5c786ad4493871c1f0 100644 (file)
@@ -10036,12 +10036,10 @@ build_atomic_base (tree type, unsigned int align)
 }
 
 /* Create nodes for all integer types (and error_mark_node) using the sizes
-   of C datatypes.  SIGNED_CHAR specifies whether char is signed,
-   SHORT_DOUBLE specifies whether double should be of the same precision
-   as float.  */
+   of C datatypes.  SIGNED_CHAR specifies whether char is signed.  */
 
 void
-build_common_tree_nodes (bool signed_char, bool short_double)
+build_common_tree_nodes (bool signed_char)
 {
   int i;
 
@@ -10202,10 +10200,7 @@ build_common_tree_nodes (bool signed_char, bool short_double)
   layout_type (float_type_node);
 
   double_type_node = make_node (REAL_TYPE);
-  if (short_double)
-    TYPE_PRECISION (double_type_node) = FLOAT_TYPE_SIZE;
-  else
-    TYPE_PRECISION (double_type_node) = DOUBLE_TYPE_SIZE;
+  TYPE_PRECISION (double_type_node) = DOUBLE_TYPE_SIZE;
   layout_type (double_type_node);
 
   long_double_type_node = make_node (REAL_TYPE);
index 191f21b34ba32baaf6e544276838e14a69dbb2c0..544a6a163dfc146e631e7734e673b5dd60750593 100644 (file)
@@ -4763,7 +4763,7 @@ extern tree reconstruct_complex_type (tree, tree);
 extern int real_onep (const_tree);
 extern int real_minus_onep (const_tree);
 extern void init_ttree (void);
-extern void build_common_tree_nodes (bool, bool);
+extern void build_common_tree_nodes (bool);
 extern void build_common_builtin_nodes (void);
 extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int);
 extern tree build_nonstandard_boolean_type (unsigned HOST_WIDE_INT);