Hi,

gcc crashes during cross-build of libiberty due to a bad handling of 
promote_function_mode.
This patch fixes that.

Committed on trunk.

Tristan.

2011-03-28  Tristan Gingold  <ging...@adacore.com>

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

Index: gcc/config/ia64/ia64.c
===================================================================
--- gcc/config/ia64/ia64.c      (revision 171607)
+++ gcc/config/ia64/ia64.c      (working copy)
@@ -11001,7 +11001,7 @@
      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)
     {

Reply via email to