[Bug c++/27666] [4.0/4.1/4.2 regression] ICE with volatile in conditional expression

2006-06-15 Thread mmitchel at gcc dot gnu dot org


--- 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

2006-06-06 Thread mmitchel at gcc dot gnu dot org


--- 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

2006-06-06 Thread reichelt at gcc dot gnu dot org


--- 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

2006-06-06 Thread mark at codesourcery dot com


--- 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

2006-06-04 Thread mmitchel at gcc dot gnu dot org


-- 

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

2006-05-21 Thread pinskia at gcc dot gnu dot org


--- 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

2006-05-18 Thread pinskia at gcc dot gnu dot org


-- 

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