[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
--- Comment #5 from mmitchel at gcc dot gnu dot org 2006-06-16 02:33 --- Subject: Bug 27666 Author: mmitchel Date: Fri Jun 16 02:33:35 2006 New Revision: 114702 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114702 Log: PR c++/27666 * call.c (build_conditional_expr): Robustify. PR c++/27666 * g++.dg/expr/cond9.C: New test. Added: trunk/gcc/testsuite/g++.dg/expr/cond9.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
--- Comment #2 from mmitchel at gcc dot gnu dot org 2006-06-06 22:04 --- The code is indeed invalid. (There's no copy constructor for A that accepts a volatile A as input, but the conceptual expression is an rvalue, so we have to (conceptually) create a temporary.) -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |mark at codesourcery dot com |dot org | Status|NEW |ASSIGNED Keywords|ice-on-valid-code |ice-on-invalid-code http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
--- Comment #3 from reichelt at gcc dot gnu dot org 2006-06-06 22:12 --- The following code is accepted. Shouldn't it be rejected then? === struct A { A(int); }; void foo(volatile A a) { 1 ? a : a; } === -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
--- Comment #4 from mark at codesourcery dot com 2006-06-06 22:35 --- Subject: Re: [4.0/4.1/4.2 regression] ICE with volatile in conditional expression reichelt at gcc dot gnu dot org wrote: --- Comment #3 from reichelt at gcc dot gnu dot org 2006-06-06 22:12 --- The following code is accepted. Shouldn't it be rejected then? === struct A { A(int); }; void foo(volatile A a) { 1 ? a : a; } === No, in that case the expression is an lvalue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-05-21 21:26 --- Confirmed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-05-21 21:26:34 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666
[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.0.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27666