This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> 2012-11-03 02:51:26 UTC ---
This patch:

[hjl@gnu-tools-1 tmp]$ cat /tmp/x
diff --git a/gcc/expr.c b/gcc/expr.c
index 3e8e004..da35488 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8115,7 +8115,7 @@ expand_expr_real_2 (sepops ops, rtx target, enum
machine_mode tmode,
      And force_operand won't know whether to sign-extend or
      zero-extend.  */
       if ((modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER)
-      || mode != ptr_mode)
+      || mode != Pmode)
     {
       expand_operands (treeop0, treeop1,
                subtarget, &op0, &op1, EXPAND_NORMAL);
[hjl@gnu-tools-1 tmp]$ 

removes most of glibc failures. Does it make any senses?  If it
does, there is another place in expand_expr_real_2:

[hjl@gnu-tools-1 tmp]$ cat /tmp/y
diff --git a/gcc/expr.c b/gcc/expr.c
index 3e8e004..816fdb8 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8157,7 +8157,7 @@ expand_expr_real_2 (sepops ops, rtx target, enum
machine_mode tmode,
      And force_operand won't know whether to sign-extend or
      zero-extend.  */
       if ((modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER)
-      || mode != ptr_mode)
+      || mode != Pmode)
     goto binop;

       expand_operands (treeop0, treeop1,
[hjl@gnu-tools-1 tmp]$


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]