ia64.c (ia64_promote_function_mode): Fix promotion when for_return is 2.
authorTristan Gingold <gingold@adacore.com>
Mon, 28 Mar 2011 15:46:44 +0000 (15:46 +0000)
committerTristan Gingold <gingold@gcc.gnu.org>
Mon, 28 Mar 2011 15:46:44 +0000 (15:46 +0000)
2011-03-28  Tristan Gingold  <gingold@adacore.com>

* config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
when for_return is 2.

From-SVN: r171608

gcc/ChangeLog
gcc/config/ia64/ia64.c

index ac86016629ecbd7a92181042f800844ed387ef85..70b6506cf95910e3b7cfefb86c0e397e84e6fc2a 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-28  Tristan Gingold  <gingold@adacore.com>
+
+       * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
+       when for_return is 2.
+
 2011-03-28  Jeff Law  <law@redhat.com>
 
        * var-tracking.c (canonicalize_values_mark): Delete unused
index b86c4d8985792fb5a1da7aaa9fdef09c7e1cff55..5f22b17ef67ddf7c65d2981406ccd3dfd303d4a9 100644 (file)
@@ -11001,7 +11001,7 @@ ia64_promote_function_mode (const_tree type,
      For all other types passed in the general registers, unused bits are
      undefined."  */
 
-  if (!AGGREGATE_TYPE_P (type)
+  if (for_return != 2
       && GET_MODE_CLASS (mode) == MODE_INT
       && GET_MODE_SIZE (mode) < UNITS_PER_WORD)
     {