]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/52425 (ICE when compiling file from audacious with -fPIC -g)
authorEric Botcazou <ebotcazou@adacore.com>
Sat, 3 Mar 2012 13:44:52 +0000 (13:44 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 3 Mar 2012 13:44:52 +0000 (13:44 +0000)
PR target/52425
Backport from mainline
2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>

* config/sparc/sparc.c (sparc_delegitimize_address): Handle
UNSPEC_MOVE_PIC pattern.

From-SVN: r184855

gcc/ChangeLog
gcc/config/sparc/sparc.c

index 9648450c7186e353457bb86e3e4d4254ec5d2fce..79f1bce53d59ead13cb05dfbec9f4e70f189dc7d 100644 (file)
@@ -1,3 +1,12 @@
+2012-03-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/52425
+       Backport from mainline
+       2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (sparc_delegitimize_address): Handle
+       UNSPEC_MOVE_PIC pattern.
+
 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
 
        Backport from mainline
index c93c25bbd0a6f75635207a88938b0e2fd489a379..f1c5ecd83e533e9b63f99445fdd8dbcba84ac83e 100644 (file)
@@ -3658,13 +3658,17 @@ sparc_delegitimize_address (rtx x)
 {
   x = delegitimize_mem_from_attrs (x);
 
-  if (GET_CODE (x) == LO_SUM
-      && GET_CODE (XEXP (x, 1)) == UNSPEC
-      && XINT (XEXP (x, 1), 1) == UNSPEC_TLSLE)
-    {
-      x = XVECEXP (XEXP (x, 1), 0, 0);
-      gcc_assert (GET_CODE (x) == SYMBOL_REF);
-    }
+  if (GET_CODE (x) == LO_SUM && GET_CODE (XEXP (x, 1)) == UNSPEC)
+    switch (XINT (XEXP (x, 1), 1))
+      {
+      case UNSPEC_MOVE_PIC:
+      case UNSPEC_TLSLE:
+       x = XVECEXP (XEXP (x, 1), 0, 0);
+       gcc_assert (GET_CODE (x) == SYMBOL_REF);
+       break;
+      default:
+       break;
+      }
 
   return x;
 }