re PR c/35649 (Incorrect printf warning: expect double has float)
authorJoern Rennecke <joern.rennecke@embecosm.com>
Mon, 26 Aug 2013 16:52:19 +0000 (16:52 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Mon, 26 Aug 2013 16:52:19 +0000 (17:52 +0100)
2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
            Joseph Myers  <joseph@codesourcery.com>

        c/35649
        * c-typeck.c (c_common_type): Prefer double_type_node over
        other REAL_TYPE types with the same precision.
        (convert_arguments): Likewise.

Amend patch as suggested:
From:   "Joseph S. Myers" <joseph@codesourcery.com>
In convert_arguments I think you should be comparing TYPE_MAIN_VARIANT
(valtype) against double_type_node and long_double_type_node, rather than
just valtype.

This is PR c/35649 (so include that number in your ChangeLog entry and
close that bug as fixed).

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r202006

gcc/c/ChangeLog
gcc/c/c-typeck.c

index 4d32d6dce3db62ccac4aaa35383a9e794db1d1ac..0d9ff67a7be70fb8ca36623fe4394eb7d3e31168 100644 (file)
@@ -1,5 +1,7 @@
 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
+           Joseph Myers  <joseph@codesourcery.com>
 
+       c/35649
        * c-typeck.c (c_common_type): Prefer double_type_node over
        other REAL_TYPE types with the same precision.
        (convert_arguments): Likewise.
index 5daae23d14169a06c505bf2b8002e451ff0222d5..8b3e3d92f15d86afc9e90d8ea1e7541f5f9e33dd 100644 (file)
@@ -3164,8 +3164,8 @@ convert_arguments (tree typelist, vec<tree, va_gc> *values,
       else if (TREE_CODE (valtype) == REAL_TYPE
               && (TYPE_PRECISION (valtype)
                   <= TYPE_PRECISION (double_type_node))
-              && valtype != double_type_node
-              && valtype != long_double_type_node
+              && TYPE_MAIN_VARIANT (valtype) != double_type_node
+              && TYPE_MAIN_VARIANT (valtype) != long_double_type_node
               && !DECIMAL_FLOAT_MODE_P (TYPE_MODE (valtype)))
         {
          if (type_generic)