public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile
@ 2006-03-06 8:06 reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` [Bug c++/26577] " reichelt at gcc dot gnu dot org
` (26 more replies)
0 siblings, 27 replies; 28+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2006-03-06 8:06 UTC (permalink / raw)
To: gcc-bugs
As reported here:
http://gcc.gnu.org/ml/gcc-bugs/2006-03/msg00589.html
Confirmed. Fails since GCC 4.0.0.
However, this has nothing to do with templates or inline asm as the
reduced testcase shows:
==================================
struct A
{
A(const A&);
A& operator=(const A&);
static void bar();
void foo() volatile {}
void baz() volatile;
};
void A::baz() volatile
{
foo();
bar();
}
==================================
--
Summary: [4.0/4.1/4.2 regression] ICE in cp_expr_size with
volatile
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, monitored
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` [Bug c++/26577] " reichelt at gcc dot gnu dot org
@ 2006-03-06 8:07 ` reichelt at gcc dot gnu dot org
2006-03-06 10:39 ` rguenth at gcc dot gnu dot org
` (24 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2006-03-06 8:07 UTC (permalink / raw)
To: gcc-bugs
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2006-03-06 08:06:57
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
@ 2006-03-06 8:07 ` reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` reichelt at gcc dot gnu dot org
` (25 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2006-03-06 8:07 UTC (permalink / raw)
To: gcc-bugs
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.0.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` [Bug c++/26577] " reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` reichelt at gcc dot gnu dot org
@ 2006-03-06 10:39 ` rguenth at gcc dot gnu dot org
2006-03-06 12:42 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static pinskia at gcc dot gnu dot org
` (23 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-06 10:39 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from rguenth at gcc dot gnu dot org 2006-03-06 10:39 -------
gcc_assert (!TYPE_HAS_COMPLEX_INIT_REF (type)
|| !TYPE_HAS_COMPLEX_ASSIGN_REF (type)
/* But storing a CONSTRUCTOR isn't a copy. */
|| TREE_CODE (exp) == CONSTRUCTOR
/* And, the gimplifier will sometimes make a copy of
an aggregate. In particular, for a case like:
struct S { S(); };
struct X { int a; S s; };
X x = { 0 };
the gimplifier will create a temporary with
static storage duration, perform static
initialization of the temporary, and then copy
the result. Since the "s" subobject is never
constructed, this is a valid transformation. */
|| CP_AGGREGATE_TYPE_P (type));
(gdb) call debug_tree(0x40247958)
<record_type 0x40247958 A addressable volatile needs-constructing type_1
type_5 BLK
size <integer_cst 0x4018d1e0 type <integer_type 0x4019e05c bit_size_type>
constant invariant 8>
unit size <integer_cst 0x4018d1f8 type <integer_type 0x4019e000 unsigned
int> constant invariant 1>
align 8 symtab 0 alias set -1
fields <type_decl 0x402149c0 A
type <record_type 0x40247450 A addressable needs-constructing type_1
type_5 BLK size <integer_cst 0x4018d1e0 8> unit size <integer_cst 0x4018d1f8 1>
align 8 symtab 0 alias set -1 fields <type_decl 0x402149c0 A>
needs-constructor X(constX&) this=(X&) n_parents=0 use_template=0
interface-unknown
pointer_to_this <pointer_type 0x4024761c> reference_to_this
<reference_type 0x402476d4> chain <type_decl 0x40214958 A>>
nonlocal decl_4 VOID file /tmp/t.C line 2
align 1 context <record_type 0x40247450 A>
>
needs-constructor X(constX&) this=(X&) n_parents=0 use_template=0
interface-unknown
pointer_to_this <pointer_type 0x40247a10>>
(gdb) call debug_tree(exp)
<indirect_ref 0x4020eb00
...
arg 0 <parm_decl 0x40196c30 this
type <pointer_type 0x40247a6c type <record_type 0x40247958 A>
readonly unsigned SI
size <integer_cst 0x4018d3d8 constant invariant 32>
unit size <integer_cst 0x4018d168 constant invariant 4>
align 32 symtab 0 alias set -1>
readonly used unsigned SI file /tmp/t.C line 10 size <integer_cst
0x4018d3d8 32> unit size <integer_cst 0x4018d168 4>
align 32 context <function_decl 0x40245d80 baz> initial <pointer_type
0x40247a6c>
(mem/f/c/i:SI (reg/f:SI 53 virtual-incoming-args) [0 this+0 S4 A32])
arg-type <pointer_type 0x40247a6c>
incoming-rtl (mem/f/c/i:SI (reg/f:SI 53 virtual-incoming-args) [0
this+0 S4 A32])>>
The last conditional should probably apply here:
CP_AGGREGATE_TYPE_P (type)
but it doesn't due to CLASSTYPE_NON_AGGREGATE (TYPE)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (2 preceding siblings ...)
2006-03-06 10:39 ` rguenth at gcc dot gnu dot org
@ 2006-03-06 12:42 ` pinskia at gcc dot gnu dot org
2006-03-06 12:45 ` pinskia at gcc dot gnu dot org
` (22 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-06 12:42 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from pinskia at gcc dot gnu dot org 2006-03-06 12:42 -------
Reduced testcase which shows the real issue:
struct A
{
A(const A&);
A& operator=(const A&);
static void bar();
void baz() volatile;
};
void A::baz() volatile
{
bar();
}
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.0/4.1/4.2 regression] ICE|[4.0/4.1/4.2 regression] ICE
|in cp_expr_size with |in cp_expr_size with
|volatile |volatile and call to static
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (3 preceding siblings ...)
2006-03-06 12:42 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static pinskia at gcc dot gnu dot org
@ 2006-03-06 12:45 ` pinskia at gcc dot gnu dot org
2006-03-06 12:47 ` pinskia at gcc dot gnu dot org
` (21 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-06 12:45 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from pinskia at gcc dot gnu dot org 2006-03-06 12:45 -------
Related to PR 23167.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
BugsThisDependsOn| |23167
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (4 preceding siblings ...)
2006-03-06 12:45 ` pinskia at gcc dot gnu dot org
@ 2006-03-06 12:47 ` pinskia at gcc dot gnu dot org
2006-03-07 12:26 ` reichelt at gcc dot gnu dot org
` (20 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-06 12:47 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from pinskia at gcc dot gnu dot org 2006-03-06 12:47 -------
(In reply to comment #3)
> Related to PR 23167.
One more comment about this, the fix for that PR moved the ICE from
create_tmp_var to cp_expr_size.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (5 preceding siblings ...)
2006-03-06 12:47 ` pinskia at gcc dot gnu dot org
@ 2006-03-07 12:26 ` reichelt at gcc dot gnu dot org
2006-03-11 3:22 ` mmitchel at gcc dot gnu dot org
` (19 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2006-03-07 12:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from reichelt at gcc dot gnu dot org 2006-03-07 12:26 -------
*** Bug 26592 has been marked as a duplicate of this bug. ***
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |cjh at managesoft dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (6 preceding siblings ...)
2006-03-07 12:26 ` reichelt at gcc dot gnu dot org
@ 2006-03-11 3:22 ` mmitchel at gcc dot gnu dot org
2006-06-04 18:03 ` mmitchel at gcc dot gnu dot org
` (18 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-03-11 3:22 UTC (permalink / raw)
To: gcc-bugs
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.0.3 |4.0.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (7 preceding siblings ...)
2006-03-11 3:22 ` mmitchel at gcc dot gnu dot org
@ 2006-06-04 18:03 ` mmitchel at gcc dot gnu dot org
2006-06-05 22:39 ` mmitchel at gcc dot gnu dot org
` (17 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-06-04 18:03 UTC (permalink / raw)
To: gcc-bugs
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (8 preceding siblings ...)
2006-06-04 18:03 ` mmitchel at gcc dot gnu dot org
@ 2006-06-05 22:39 ` mmitchel at gcc dot gnu dot org
2006-06-12 12:16 ` dnovillo at redhat dot com
` (16 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-06-05 22:39 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from mmitchel at gcc dot gnu dot org 2006-06-05 22:37 -------
An even smaller test case is:
==
struct A
{
A(const A&);
A& operator=(const A&);
void baz() volatile;
};
void A::baz() volatile
{
*this;
}
==
The problem is that the middle-end is creating a copy of an object of type A --
and C++ front-end has an assert designed to prevent exactly that, since copies
are supposed to be done by the copy constructor.
The code in the middle-end is in fact unsafe (and so we cannot just remove the
C++ assert) because for:
struct B { ... };
struct D : virtual public B { ... };
void f(volatile D* p) {
*p;
}
the type of "*p" will be "D" -- but we cannot safely read sizeof (D) bytes from
*p, as sizeof (D) includes the size of the virtual base, and the virtual base
may be located elsewhere. (If X derives from D virtually, then the B part of X
may be located in memory below the D part of X.) If the C++ front end said
that "p" points only to a D-as-base (as agreed elsewhere would be a good idea),
then the middle end would still do the wrong thing, as it would touch only part
of *p.
Therefore, for a TREE_ADDRESSABLE type, I don't think the middle-end can or
should do anything for a volatile access. It should just ignore the
volatility.
Diego, what say you?
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dnovillo at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (9 preceding siblings ...)
2006-06-05 22:39 ` mmitchel at gcc dot gnu dot org
@ 2006-06-12 12:16 ` dnovillo at redhat dot com
2006-06-14 2:40 ` mmitchel at gcc dot gnu dot org
` (15 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: dnovillo at redhat dot com @ 2006-06-12 12:16 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from dnovillo at redhat dot com 2006-06-12 12:12 -------
Subject: Re: [4.0/4.1/4.2 regression] ICE in cp_expr_size
with volatile and call to static
mmitchel at gcc dot gnu dot org wrote on 06/05/06 18:37:
> Diego, what say you?
>
Shouldn't COMPLETE_TYPE_P imply that we can compute the size of the
type? That's the requisite we need in this case to emit the load from
the volatile reference. Otherwise, we have no other choice but to throw
it away.
ISTM that if COMPLETE_TYPE_P had the right sizeof semantics, we wouldn't
need the workaround added for 23167.
The only thing the gimplifier can do in this case is throw the reference
out, but
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (10 preceding siblings ...)
2006-06-12 12:16 ` dnovillo at redhat dot com
@ 2006-06-14 2:40 ` mmitchel at gcc dot gnu dot org
2006-06-30 19:46 ` [Bug middle-end/26577] " jason at gcc dot gnu dot org
` (14 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-06-14 2:40 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from mmitchel at gcc dot gnu dot org 2006-06-14 02:16 -------
Diego --
Your last comment was cut off.
However, no, COMPLETE_TYPE_P does not imply that we know the size of the type,
and it can't ever imply that, in C++. For a type with virtual bases, we don't
know what the size of the object will be; in fact, we don't know wehther the
object will be located in a contiguous block of memory.
So, no front end change will avoid this problem.
-- Mark
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mark at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug middle-end/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (11 preceding siblings ...)
2006-06-14 2:40 ` mmitchel at gcc dot gnu dot org
@ 2006-06-30 19:46 ` jason at gcc dot gnu dot org
2006-06-30 20:07 ` [Bug c++/26577] " jason at gcc dot gnu dot org
` (13 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-06-30 19:46 UTC (permalink / raw)
To: gcc-bugs
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
Last reconfirmed|2006-03-06 08:06:57 |2006-06-30 19:29:43
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (12 preceding siblings ...)
2006-06-30 19:46 ` [Bug middle-end/26577] " jason at gcc dot gnu dot org
@ 2006-06-30 20:07 ` jason at gcc dot gnu dot org
2006-06-30 21:13 ` jason at gcc dot gnu dot org
` (12 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-06-30 20:07 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from jason at gcc dot gnu dot org 2006-06-30 19:49 -------
Actually, this is a frontend issue: we shouldn't be asking for the access in
the first place. Patch soon.
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|middle-end |c++
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (13 preceding siblings ...)
2006-06-30 20:07 ` [Bug c++/26577] " jason at gcc dot gnu dot org
@ 2006-06-30 21:13 ` jason at gcc dot gnu dot org
2006-06-30 21:24 ` jason at gcc dot gnu dot org
` (11 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-06-30 21:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from jason at gcc dot gnu dot org 2006-06-30 20:48 -------
Subject: Bug 26577
Author: jason
Date: Fri Jun 30 20:48:42 2006
New Revision: 115105
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115105
Log:
PR c++/26577
* call.c (build_new_method_call): Force evaluation of the
instance pointer, not the object.
Added:
trunk/gcc/testsuite/g++.dg/init/volatile1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (14 preceding siblings ...)
2006-06-30 21:13 ` jason at gcc dot gnu dot org
@ 2006-06-30 21:24 ` jason at gcc dot gnu dot org
2006-06-30 21:30 ` jason at gcc dot gnu dot org
` (10 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-06-30 21:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from jason at gcc dot gnu dot org 2006-06-30 21:23 -------
Subject: Bug 26577
Author: jason
Date: Fri Jun 30 21:23:45 2006
New Revision: 115106
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115106
Log:
PR c++/26577
* call.c (build_new_method_call): Force evaluation of the
instance pointer, not the object.
Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/init/volatile1.C
- copied unchanged from r115105,
trunk/gcc/testsuite/g++.dg/init/volatile1.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/call.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (15 preceding siblings ...)
2006-06-30 21:24 ` jason at gcc dot gnu dot org
@ 2006-06-30 21:30 ` jason at gcc dot gnu dot org
2006-07-03 18:28 ` reichelt at gcc dot gnu dot org
` (9 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-06-30 21:30 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from jason at gcc dot gnu dot org 2006-06-30 21:25 -------
Subject: Bug 26577
Author: jason
Date: Fri Jun 30 21:25:21 2006
New Revision: 115107
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115107
Log:
PR c++/26577
* call.c (build_new_method_call): Force evaluation of the
instance pointer, not the object.
Added:
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/init/volatile1.C
- copied unchanged from r115105,
trunk/gcc/testsuite/g++.dg/init/volatile1.C
Modified:
branches/gcc-4_0-branch/gcc/cp/ChangeLog
branches/gcc-4_0-branch/gcc/cp/call.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (16 preceding siblings ...)
2006-06-30 21:30 ` jason at gcc dot gnu dot org
@ 2006-07-03 18:28 ` reichelt at gcc dot gnu dot org
2006-07-05 0:46 ` jason at gcc dot gnu dot org
` (8 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2006-07-03 18:28 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from reichelt at gcc dot gnu dot org 2006-07-03 18:28 -------
Marks's testcase from comment #6 still ICEs.
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (17 preceding siblings ...)
2006-07-03 18:28 ` reichelt at gcc dot gnu dot org
@ 2006-07-05 0:46 ` jason at gcc dot gnu dot org
2006-07-17 3:17 ` mmitchel at gcc dot gnu dot org
` (7 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-07-05 0:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from jason at gcc dot gnu dot org 2006-07-05 00:46 -------
(In reply to comment #14)
> Marks's testcase from comment #6 still ICEs.
True, but it's a contrived testcase; I doubt anyone deliberately tries to force
a load of a non-POD object for its own sake.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (18 preceding siblings ...)
2006-07-05 0:46 ` jason at gcc dot gnu dot org
@ 2006-07-17 3:17 ` mmitchel at gcc dot gnu dot org
2006-07-17 15:10 ` jason at redhat dot com
` (6 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-17 3:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #16 from mmitchel at gcc dot gnu dot org 2006-07-17 03:17 -------
Contrived, or not, what should we do?
I stand by my position that the middle end should not try to load a
TREE_ADDRESSABLE type from memory in this way.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (19 preceding siblings ...)
2006-07-17 3:17 ` mmitchel at gcc dot gnu dot org
@ 2006-07-17 15:10 ` jason at redhat dot com
2006-08-28 3:05 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and non POD pinskia at gcc dot gnu dot org
` (5 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at redhat dot com @ 2006-07-17 15:10 UTC (permalink / raw)
To: gcc-bugs
------- Comment #17 from jason at redhat dot com 2006-07-17 15:10 -------
Subject: Re: [4.0/4.1/4.2 regression] ICE in cp_expr_size
with volatile and call to static
Agreed; if we try to explicitly force a load of a volatile non-POD we
should call force_rvalue on it.
Jason
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (20 preceding siblings ...)
2006-07-17 15:10 ` jason at redhat dot com
@ 2006-08-28 3:05 ` pinskia at gcc dot gnu dot org
2006-08-29 6:55 ` jason at gcc dot gnu dot org
` (4 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-28 3:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #18 from pinskia at gcc dot gnu dot org 2006-08-28 03:04 -------
(In reply to comment #6)
> An even smaller test case without a member function is:
Even smaller:
struct A
{
A(const A&);
A& operator=(const A&);
};
void f(volatile A *a) { *a; }
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (21 preceding siblings ...)
2006-08-28 3:05 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and non POD pinskia at gcc dot gnu dot org
@ 2006-08-29 6:55 ` jason at gcc dot gnu dot org
2006-08-29 18:15 ` [Bug c++/26577] [4.0/4.1 " jason at gcc dot gnu dot org
` (3 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-08-29 6:55 UTC (permalink / raw)
To: gcc-bugs
------- Comment #19 from jason at gcc dot gnu dot org 2006-08-29 06:55 -------
Subject: Bug 26577
Author: jason
Date: Tue Aug 29 06:55:03 2006
New Revision: 116554
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116554
Log:
PR c++/26577
* cvt.c (convert_to_void): Don't automatically load from volatiles
of TREE_ADDRESSABLE type.
Added:
trunk/gcc/testsuite/g++.dg/warn/volatile1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cvt.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (22 preceding siblings ...)
2006-08-29 6:55 ` jason at gcc dot gnu dot org
@ 2006-08-29 18:15 ` jason at gcc dot gnu dot org
2006-08-30 2:59 ` jason at gcc dot gnu dot org
` (2 subsequent siblings)
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-08-29 18:15 UTC (permalink / raw)
To: gcc-bugs
------- Comment #20 from jason at gcc dot gnu dot org 2006-08-29 18:15 -------
Subject: Bug 26577
Author: jason
Date: Tue Aug 29 18:15:20 2006
New Revision: 116568
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116568
Log:
PR c++/26577
* cvt.c (convert_to_void): Don't automatically load from volatiles
of TREE_ADDRESSABLE type.
Added:
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/warn/volatile1.C
- copied unchanged from r116555,
trunk/gcc/testsuite/g++.dg/warn/volatile1.C
Modified:
branches/gcc-4_0-branch/gcc/cp/ChangeLog
branches/gcc-4_0-branch/gcc/cp/cvt.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (23 preceding siblings ...)
2006-08-29 18:15 ` [Bug c++/26577] [4.0/4.1 " jason at gcc dot gnu dot org
@ 2006-08-30 2:59 ` jason at gcc dot gnu dot org
2006-08-30 3:42 ` pinskia at gcc dot gnu dot org
2006-09-21 14:54 ` pinskia at gcc dot gnu dot org
26 siblings, 0 replies; 28+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-08-30 2:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #21 from jason at gcc dot gnu dot org 2006-08-30 02:59 -------
Subject: Bug 26577
Author: jason
Date: Wed Aug 30 02:59:14 2006
New Revision: 116576
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116576
Log:
PR c++/26577
* cvt.c (convert_to_void): Don't automatically load from volatiles
of TREE_ADDRESSABLE type.
Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/warn/volatile1.C
- copied unchanged from r116568,
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/warn/volatile1.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/cvt.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (24 preceding siblings ...)
2006-08-30 2:59 ` jason at gcc dot gnu dot org
@ 2006-08-30 3:42 ` pinskia at gcc dot gnu dot org
2006-09-21 14:54 ` pinskia at gcc dot gnu dot org
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-30 3:42 UTC (permalink / raw)
To: gcc-bugs
------- Comment #22 from pinskia at gcc dot gnu dot org 2006-08-30 03:42 -------
Fixed.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
* [Bug c++/26577] [4.0/4.1 regression] ICE in cp_expr_size with volatile and non POD
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
` (25 preceding siblings ...)
2006-08-30 3:42 ` pinskia at gcc dot gnu dot org
@ 2006-09-21 14:54 ` pinskia at gcc dot gnu dot org
26 siblings, 0 replies; 28+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-09-21 14:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #23 from pinskia at gcc dot gnu dot org 2006-09-21 14:54 -------
*** Bug 29168 has been marked as a duplicate of this bug. ***
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |Ed dot Ralston at jhuapl dot
| |edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2006-09-21 14:54 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-06 8:06 [Bug c++/26577] New: [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` [Bug c++/26577] " reichelt at gcc dot gnu dot org
2006-03-06 8:07 ` reichelt at gcc dot gnu dot org
2006-03-06 10:39 ` rguenth at gcc dot gnu dot org
2006-03-06 12:42 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static pinskia at gcc dot gnu dot org
2006-03-06 12:45 ` pinskia at gcc dot gnu dot org
2006-03-06 12:47 ` pinskia at gcc dot gnu dot org
2006-03-07 12:26 ` reichelt at gcc dot gnu dot org
2006-03-11 3:22 ` mmitchel at gcc dot gnu dot org
2006-06-04 18:03 ` mmitchel at gcc dot gnu dot org
2006-06-05 22:39 ` mmitchel at gcc dot gnu dot org
2006-06-12 12:16 ` dnovillo at redhat dot com
2006-06-14 2:40 ` mmitchel at gcc dot gnu dot org
2006-06-30 19:46 ` [Bug middle-end/26577] " jason at gcc dot gnu dot org
2006-06-30 20:07 ` [Bug c++/26577] " jason at gcc dot gnu dot org
2006-06-30 21:13 ` jason at gcc dot gnu dot org
2006-06-30 21:24 ` jason at gcc dot gnu dot org
2006-06-30 21:30 ` jason at gcc dot gnu dot org
2006-07-03 18:28 ` reichelt at gcc dot gnu dot org
2006-07-05 0:46 ` jason at gcc dot gnu dot org
2006-07-17 3:17 ` mmitchel at gcc dot gnu dot org
2006-07-17 15:10 ` jason at redhat dot com
2006-08-28 3:05 ` [Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and non POD pinskia at gcc dot gnu dot org
2006-08-29 6:55 ` jason at gcc dot gnu dot org
2006-08-29 18:15 ` [Bug c++/26577] [4.0/4.1 " jason at gcc dot gnu dot org
2006-08-30 2:59 ` jason at gcc dot gnu dot org
2006-08-30 3:42 ` pinskia at gcc dot gnu dot org
2006-09-21 14:54 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).