]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/43299 (Subversion id 157264 breaks powerpc 64-bit bootstraps)
authorJakub Jelinek <jakub@redhat.com>
Tue, 9 Mar 2010 18:54:25 +0000 (19:54 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 9 Mar 2010 18:54:25 +0000 (19:54 +0100)
PR debug/43299
* dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.

From-SVN: r157317

gcc/ChangeLog
gcc/dwarf2out.c

index 105d366691bf6308ad1c576b8ed40e2bb0f6b789..dddf99091eb6a1b8d5ff57b795875f95328342d5 100644 (file)
@@ -1,5 +1,8 @@
 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
 
+       PR debug/43299
+       * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
+
        PR debug/43299
        * var-tracking.c (adjust_sets): New function.
        (count_with_sets, add_with_sets): Use it.
index 25951194f5760d150dd8a823927c437466803687..5aa9df4417cd35d5491df97cbaec7ba0d24ad268 100644 (file)
@@ -12826,6 +12826,22 @@ const_ok_for_output_1 (rtx *rtlp, void *data ATTRIBUTE_UNUSED)
 {
   rtx rtl = *rtlp;
 
+  if (GET_CODE (rtl) == UNSPEC)
+    {
+      /* If delegitimize_address couldn't do anything with the UNSPEC, assume
+        we can't express it in the debug info.  */
+#ifdef ENABLE_CHECKING
+      inform (current_function_decl
+             ? DECL_SOURCE_LOCATION (current_function_decl)
+             : UNKNOWN_LOCATION,
+             "non-delegitimized UNSPEC %d found in variable location",
+             XINT (rtl, 1));
+#endif
+      expansion_failed (NULL_TREE, rtl,
+                       "UNSPEC hasn't been delegitimized.\n");
+      return 1;
+    }
+
   if (GET_CODE (rtl) != SYMBOL_REF)
     return 0;