[Bug c++/26140] [4.2 Regression] ice on valid C++ code
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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