re PR target/28490 (ICE in ia64_expand_move, at config/ia64/ia64.c:1088)
authorSteve Ellcey <sje@cup.hp.com>
Tue, 19 Sep 2006 16:09:48 +0000 (16:09 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 19 Sep 2006 16:09:48 +0000 (16:09 +0000)
PR 28490
* config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
pointers as legitimate constants.

From-SVN: r117057

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

index 030f172..5d8aeff 100644 (file)
@@ -1,3 +1,9 @@
+2006-09-19  Steve Ellcey  <sje@cup.hp.com>
+
+       PR  28490
+       * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
+       pointers as legitimate constants.
+
 2006-09-19  Paul Brook  <paul@codesourcery.com>
 
        PR target/28516
index 71953e2..8a98b24 100644 (file)
@@ -831,8 +831,9 @@ ia64_legitimate_constant_p (rtx x)
              op = XEXP (XEXP (op, 0), 0);
            }
 
-         if (any_offset_symbol_operand (op, GET_MODE (op)))
-           return true;
+          if (any_offset_symbol_operand (op, GET_MODE (op))
+              || function_operand (op, GET_MODE (op)))
+            return true;
          if (aligned_offset_symbol_operand (op, GET_MODE (op)))
            return (addend & 0x3fff) == 0;
          return false;