* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
@ 2012-02-01 9:22 ` rguenth at gcc dot gnu.org
2012-02-01 11:47 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-01 9:22 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-01 09:22:39 UTC ---
I suppose you can provide at least a backtrace and some debug_rtx output?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
2012-02-01 9:22 ` [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734 rguenth at gcc dot gnu.org
@ 2012-02-01 11:47 ` jakub at gcc dot gnu.org
2012-02-01 12:06 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-01 11:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-01 11:47:00 UTC ---
C testcase (-m64 -O2):
struct S { const char *d, *e; } __attribute__((packed));
void
foo (const char **p, struct S *q)
{
*p = "abcdef";
q->d = "ghijk";
}
I'd say the bug is in the section anchor support (and the bug goes away with
-O2 -fno-section-anchors; so I'd expect this is a regression since
-fsection-anchors has been introduced and made default on ppc64), because
expand_normal on ADDR_EXPR of the STRING_CST returns a PLUS (which IMHO should
be ok only for EXPAND_SUM etc. but not EXPAND_NORMAL).
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
2012-02-01 9:22 ` [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734 rguenth at gcc dot gnu.org
2012-02-01 11:47 ` jakub at gcc dot gnu.org
@ 2012-02-01 12:06 ` jakub at gcc dot gnu.org
2012-02-01 20:24 ` doko at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-01 12:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-02-01
AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-01 12:05:29 UTC ---
Created attachment 26541
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26541
gcc47-pr52074.patch
Untested fix.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2012-02-01 12:06 ` jakub at gcc dot gnu.org
@ 2012-02-01 20:24 ` doko at gcc dot gnu.org
2012-02-07 9:24 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 7+ messages in thread
From: doko at gcc dot gnu.org @ 2012-02-01 20:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
--- Comment #4 from Matthias Klose <doko at gcc dot gnu.org> 2012-02-01 20:24:08 UTC ---
libgo builds with this fix.
libgo now fails to run every test (see PR52084).
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2012-02-01 20:24 ` doko at gcc dot gnu.org
@ 2012-02-07 9:24 ` jakub at gcc dot gnu.org
2012-02-07 9:26 ` jakub at gcc dot gnu.org
2012-02-09 17:33 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-07 9:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-07 09:22:55 UTC ---
Author: jakub
Date: Tue Feb 7 09:22:51 2012
New Revision: 183956
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183956
Log:
PR middle-end/52074
* expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
if modifier < EXPAND_SUM call force_operand on the result.
* gcc.c-torture/compile/pr52074.c: New test.
Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr52074.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expr.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2012-02-07 9:24 ` jakub at gcc dot gnu.org
@ 2012-02-07 9:26 ` jakub at gcc dot gnu.org
2012-02-09 17:33 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-07 9:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-07 09:25:45 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/52074] ICE: RTL flag check: MEM_VOLATILE_P used with unexpected rtx code 'plus' in extract_fixed_bit_field, at expmed.c:1734
[not found] <bug-52074-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2012-02-07 9:26 ` jakub at gcc dot gnu.org
@ 2012-02-09 17:33 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-09 17:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52074
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-09 17:28:30 UTC ---
Author: jakub
Date: Thu Feb 9 17:28:22 2012
New Revision: 184060
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184060
Log:
Backported from mainline
2012-02-07 Jakub Jelinek <jakub@redhat.com>
PR middle-end/52074
* expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
if modifier < EXPAND_SUM call force_operand on the result.
* gcc.c-torture/compile/pr52074.c: New test.
Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/compile/pr52074.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/expr.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 7+ messages in thread