[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-07 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2006-02-07 10:07 ---
Ho humm, so I propose to revert the patch (that I didn't like very much
anyway).  Can I do so without approval?


-- 


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



[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-07 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2006-02-07 14:46 ---
(In reply to comment #5)
 Ho humm, so I propose to revert the patch (that I didn't like very much
 anyway).  Can I do so without approval?

Yes but what about fixing the C++ front-end so that it does not place the
TARGET_EXPR in the wrong spot?


-- 


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



[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-07 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2006-02-07 15:36 ---
Subject: Bug 26140

Author: rguenth
Date: Tue Feb  7 15:36:44 2006
New Revision: 110699

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=110699
Log:
2006-02-07  Richard Guenther  [EMAIL PROTECTED]

PR c++/26140
Revert
2006-01-30  Richard Guenther  [EMAIL PROTECTED]
PR c++/23372
* gimplify.c (gimplify_target_expr): Handle easy cases
without creating a temporary.

Revert
2006-01-30  Richard Guenther  [EMAIL PROTECTED]
PR c++/23372
* gcc.dg/pr23372-1.C: New testcase.

* g++.dg/tree-ssa/pr26140.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/pr26140.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/pr23372-1.c


-- 


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



[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-07 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2006-02-07 15:39 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-02-06 23:39 ---
It worked with 4.2.0 20051217.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   GCC host triplet|x86_64-suse-gnu |
 GCC target triplet||x86_64-suse-gnu
   Keywords||ice-on-valid-code
Summary|ice on valid C++ code   |[4.2 Regression] ice on
   ||valid C++ code
   Target Milestone|--- |4.2.0


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



[Bug c++/26140] [4.2 Regression] ice on valid C++ code

2006-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-02-07 00:35 ---
Reduced testcase:
struct Pitch
{
  int notename_;
};
struct Audio_note
{
  Audio_note (Pitch p);
};
void create_audio_elements ()
{
  Pitch *pit;
  new Audio_note (*pit);
}

Looks like this is caused by:
2006-01-30  Richard Guenther  [EMAIL PROTECTED]

PR c++/23372
* gimplify.c (gimplify_target_expr): Handle easy cases
without creating a temporary.
--
The reason I said this patch is because the IR looks like:
  (void) (TARGET_EXPR D.2018, *(struct Pitch ) (struct Pitch *)
NON_LVALUE_EXPR pit;, TARGET_EXPR D.1993, (struct Audio_note *) operator
new (1);, try
{
  __comp_ctor  (NON_LVALUE_EXPR D.1993, D.2018);
}
  catch
{
  operator delete ((void *) D.1993);
}, D.1993) 
;
So we reduce the TARGET_EXPR to *pit but we reference  D.2018 in the other
expression.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-02-07 00:35:43
   date||


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