[Bug middle-end/55597] [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Dec 5 17:56:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55597

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> 2012-12-05 17:55:51 UTC ---
Does this patch

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index a24e407..b496490 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -12802,6 +12802,8 @@ legitimize_tls_address (rtx x, enum tls_model model,
bool for_mov)
           end_sequence ();

           RTL_CONST_CALL_P (insns) = 1;
+          if (GET_MODE (x) != Pmode)
+        x = gen_rtx_ZERO_EXTEND (Pmode, x);
           emit_libcall_block (insns, dest, rax, x);
         }
       else

make any senses?



More information about the Gcc-bugs mailing list