public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/39509]  New: bad optimization(?) pure virtual function call with -O2
@ 2009-03-20  3:02 eric dot niebler at gmail dot com
  2009-03-20  3:03 ` [Bug c++/39509] " eric dot niebler at gmail dot com
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: eric dot niebler at gmail dot com @ 2009-03-20  3:02 UTC (permalink / raw)
  To: gcc-bugs

When attached code is compiled with "g++ -01 -x c++ main.i" the result executes
file. When compiled with -O2 it segfaults with "pure virtual function call".
This may be a case of an overeager optimization.


-- 
           Summary: bad optimization(?) pure virtual function call with -O2
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: eric dot niebler at gmail dot com


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug c++/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
@ 2009-03-20  3:03 ` eric dot niebler at gmail dot com
  2009-03-20  4:04 ` eric dot niebler at gmail dot com
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: eric dot niebler at gmail dot com @ 2009-03-20  3:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from eric dot niebler at gmail dot com  2009-03-20 03:03 -------
Created an attachment (id=17501)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17501&action=view)
tarred, gzipped preprocessed c++ source file


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug c++/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
  2009-03-20  3:03 ` [Bug c++/39509] " eric dot niebler at gmail dot com
@ 2009-03-20  4:04 ` eric dot niebler at gmail dot com
  2009-04-16 20:55 ` [Bug middle-end/39509] " pinskia at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: eric dot niebler at gmail dot com @ 2009-03-20  4:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from eric dot niebler at gmail dot com  2009-03-20 04:04 -------
Additional information: adding "__attribute__((noinline))" to the constructor
for xpression_adaptor (line 82452) makes the problem go away. Definitely looks
like an optimization problem to me.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
  2009-03-20  3:03 ` [Bug c++/39509] " eric dot niebler at gmail dot com
  2009-03-20  4:04 ` eric dot niebler at gmail dot com
@ 2009-04-16 20:55 ` pinskia at gcc dot gnu dot org
  2009-04-21  1:11 ` eric dot niebler at gmail dot com
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2009-04-16 20:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2009-04-16 20:54 -------
What target are you compiling on?   I could not link this on i686-darwin:
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::reserve(unsigned int)
___assert_fail


Can you give the output of gcc -v ?


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
          Component|c++                         |middle-end
           Keywords|                            |wrong-code


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (2 preceding siblings ...)
  2009-04-16 20:55 ` [Bug middle-end/39509] " pinskia at gcc dot gnu dot org
@ 2009-04-21  1:11 ` eric dot niebler at gmail dot com
  2009-05-11 11:16 ` jwakely dot gcc at gmail dot com
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: eric dot niebler at gmail dot com @ 2009-04-21  1:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from eric dot niebler at gmail dot com  2009-04-21 01:10 -------
I'm sorry to say that I no longer have access to the Linux machine on which I
gcc-4.3 installed. I have only my windows laptop now, and I can't for the life
of me get gcc-4.3 working under cygwin. I can, however, refer you to the
original bug report, filed against a library in Boost:

https://svn.boost.org/trac/boost/ticket/2655

For reference, here is the source code (requires Boost to be in the path, but
uses the header-only parts of Boost and so does not require you to build or
link to any part of Boost).

{{{
#include <string> 
#include <boost/xpressive/xpressive_static.hpp> 
using std::string; 
namespace xpr = boost::xpressive;

int main()
{
    string text = "at";

    xpr::sregex r1 = xpr::as_xpr('a');
    xpr::sregex r2 = 'b' >> r1;
    xpr::sregex r3 = r2 | r1;

    xpr::regex_replace(text, r3, string(""));
    return 0;
}
}}}


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (3 preceding siblings ...)
  2009-04-21  1:11 ` eric dot niebler at gmail dot com
@ 2009-05-11 11:16 ` jwakely dot gcc at gmail dot com
  2009-05-11 11:23 ` jwakely dot gcc at gmail dot com
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jwakely dot gcc at gmail dot com @ 2009-05-11 11:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jwakely dot gcc at gmail dot com  2009-05-11 11:15 -------
I can reproduce this on x86_64-unknown-linux-gnu at -O2 with 4.3.2 and
4.5-20090402 snapshot, and at -O3 with 4.2.2

I can't reproduce it with 4.1.2


-- 

jwakely dot gcc at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jwakely dot gcc at gmail dot
                   |                            |com


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (4 preceding siblings ...)
  2009-05-11 11:16 ` jwakely dot gcc at gmail dot com
@ 2009-05-11 11:23 ` jwakely dot gcc at gmail dot com
  2009-05-11 12:03 ` rguenth at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jwakely dot gcc at gmail dot com @ 2009-05-11 11:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jwakely dot gcc at gmail dot com  2009-05-11 11:23 -------
I was using Boost 1.37.0 with:

Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.5-20090402/configure
--prefix=/dev/shm/wakelyjo/insroot/4.5-20090402 --enable-languages=c,c++
--disable-bootstrap --disable-checking --with-gmp=/dev/shm/wakelyjo/stage
--with-mpfr=/dev/shm/wakelyjo/stage
Thread model: posix
gcc version 4.5.0 20090402 (experimental) (GCC)

and

Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.3.2/configure --prefix=/opt/gcc/32-bit/4.3.2
--enable-languages=c,c++,fortran,objc,obj-c++ --with-gnu-as
--with-as=/opt/binutils/32-bit/2.18/bin/as --with-gnu-ld
--with-ld=/opt/binutils/32-bit/2.18/bin/ld --with-gmp=/var/tmp/stage
--with-mpfr=/var/tmp/stage --build=i686-pc-linux-gnu --with-arch=pentium4
--enable-shared --enable-threads=posix --enable-nls --enable-libstdcxx-debug
--enable-__cxa_atexit
Thread model: posix
gcc version 4.3.2 (GCC)


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (5 preceding siblings ...)
  2009-05-11 11:23 ` jwakely dot gcc at gmail dot com
@ 2009-05-11 12:03 ` rguenth at gcc dot gnu dot org
  2009-05-11 12:04 ` rguenth at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-11 12:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2009-05-11 12:03 -------
Created an attachment (id=17852)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17852&action=view)
unincluded testcase


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (6 preceding siblings ...)
  2009-05-11 12:03 ` rguenth at gcc dot gnu dot org
@ 2009-05-11 12:04 ` rguenth at gcc dot gnu dot org
  2009-05-11 12:42 ` jwakely dot gcc at gmail dot com
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-11 12:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2009-05-11 12:04 -------
4.1 and 4.2 cannot compile the testcase.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
     Ever Confirmed|0                           |1
      Known to fail|                            |4.3.3
   Last reconfirmed|0000-00-00 00:00:00         |2009-05-11 12:04:41
               date|                            |


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (7 preceding siblings ...)
  2009-05-11 12:04 ` rguenth at gcc dot gnu dot org
@ 2009-05-11 12:42 ` jwakely dot gcc at gmail dot com
  2009-05-11 12:45 ` rguenther at suse dot de
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jwakely dot gcc at gmail dot com @ 2009-05-11 12:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from jwakely dot gcc at gmail dot com  2009-05-11 12:42 -------
The testcase will have included lots of code from Boost headers conditionally
based on __GNUC__ etc. so it's not surprising it doesn't compile with 4.1 or
4.2

If wanted I can produce an unincluded version using 4.1 and 4.2, but I assume
there's no point as those branches are closed.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (8 preceding siblings ...)
  2009-05-11 12:42 ` jwakely dot gcc at gmail dot com
@ 2009-05-11 12:45 ` rguenther at suse dot de
  2009-05-11 13:09 ` jwakely dot gcc at gmail dot com
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenther at suse dot de @ 2009-05-11 12:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from rguenther at suse dot de  2009-05-11 12:44 -------
Subject: Re:  bad optimization(?) pure virtual function
 call with -O2

On Mon, 11 May 2009, jwakely dot gcc at gmail dot com wrote:

> ------- Comment #9 from jwakely dot gcc at gmail dot com  2009-05-11 12:42 -------
> The testcase will have included lots of code from Boost headers conditionally
> based on __GNUC__ etc. so it's not surprising it doesn't compile with 4.1 or
> 4.2
> 
> If wanted I can produce an unincluded version using 4.1 and 4.2, but I assume
> there's no point as those branches are closed.

Right.  I was trying to check if this is a regression or not.

Richard.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (9 preceding siblings ...)
  2009-05-11 12:45 ` rguenther at suse dot de
@ 2009-05-11 13:09 ` jwakely dot gcc at gmail dot com
  2009-05-11 13:11 ` rguenther at suse dot de
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jwakely dot gcc at gmail dot com @ 2009-05-11 13:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jwakely dot gcc at gmail dot com  2009-05-11 13:09 -------
It does seem to be a regression.  I preprocessed the program in comment 4 with
GCC version 4.1.2 20071124 (Red Hat 4.1.2-42), then ran uninclude to produce a
standalone testcase and compiled it with different versions of GCC

GCC 4.1.1 (FSF) at -O3 doesn't call the pure virtual.
GCC 4.1.2 (Red Hat) at -O3 doesn't call the pure virtual.
GCC 4.2.2 (FSF) at -O3 calls the pure virtual.
GCC 4.3.2 (FSF) can't compile the program (again, due to Boost's heavy use of
preprocessor checks)

Do you want that unincluded testcase attached?


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (11 preceding siblings ...)
  2009-05-11 13:11 ` rguenther at suse dot de
@ 2009-05-11 13:11 ` rguenth at gcc dot gnu dot org
  2009-05-12 18:56 ` jakub at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-11 13:11 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|4.3.3                       |4.2.4 4.3.3 4.4.0
      Known to work|                            |4.1.1
            Summary|bad optimization(?) pure    |[4.3/4.4/4.5 Regression] bad
                   |virtual function call with -|optimization(?) pure virtual
                   |O2                          |function call with -O2
   Target Milestone|---                         |4.3.4


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (10 preceding siblings ...)
  2009-05-11 13:09 ` jwakely dot gcc at gmail dot com
@ 2009-05-11 13:11 ` rguenther at suse dot de
  2009-05-11 13:11 ` [Bug middle-end/39509] [4.3/4.4/4.5 Regression] " rguenth at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenther at suse dot de @ 2009-05-11 13:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from rguenther at suse dot de  2009-05-11 13:10 -------
Subject: Re:  bad optimization(?) pure virtual function
 call with -O2

On Mon, 11 May 2009, jwakely dot gcc at gmail dot com wrote:

> ------- Comment #11 from jwakely dot gcc at gmail dot com  2009-05-11 13:09 -------
> It does seem to be a regression.  I preprocessed the program in comment 4 with
> GCC version 4.1.2 20071124 (Red Hat 4.1.2-42), then ran uninclude to produce a
> standalone testcase and compiled it with different versions of GCC
> 
> GCC 4.1.1 (FSF) at -O3 doesn't call the pure virtual.
> GCC 4.1.2 (Red Hat) at -O3 doesn't call the pure virtual.
> GCC 4.2.2 (FSF) at -O3 calls the pure virtual.
> GCC 4.3.2 (FSF) can't compile the program (again, due to Boost's heavy use of
> preprocessor checks)
> 
> Do you want that unincluded testcase attached?

No, that's enough info.

Richard.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (12 preceding siblings ...)
  2009-05-11 13:11 ` [Bug middle-end/39509] [4.3/4.4/4.5 Regression] " rguenth at gcc dot gnu dot org
@ 2009-05-12 18:56 ` jakub at gcc dot gnu dot org
  2009-05-12 19:06 ` jakub at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-05-12 18:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jakub at gcc dot gnu dot org  2009-05-12 18:56 -------
In 4.4.0/x86_64-linux at -O2 at least the problem seems to be that in:
_ZNK5boost9xpressive6detail17xpression_adaptorINS1_16static_xpressionINS1_17alternate_matcherINS1_15alternates_listINS3_INS1_13regex_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEEEENS3_INS1_21alternate_end_matcherENS1_7no_nextEEEEENS5_ISG_NS_6fusion3nilEEEEENS0_16cpp_regex_traitsIcEEEENS3_INS1_11end_matcherESE_EEEENS1_12matchable_exISB_EEE5matchERNS1_11match_stateISB_EE
adaptor is destructed before the push_context_match call. In *.optimized dump
we have:
<bb 9>:
  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail17xpression_adaptorINS_17reference_wrapperIKNS1_17stacked_xpressionINS1
_16static_xpressionINS1_11end_matcherENS1_7no_nextEEENS5_INS1_21alternate_end_matcherES7_EEEEEENS1_9matchableIN9__gnu_cxx17__normal_itera
torIPKcSsEEEEEE[2];
  adaptor.xpr_.t_ = (const struct stacked_xpression *) (const struct
stacked_xpression &) &this->xpr_.D.142582.alternates_.D.142415.cdr.D
.142229.car.next_;
  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail9matchableIN9__gnu_cxx17__normal_iteratorIPKcSsEEEE[2];
  D.187198 = push_context_match
(&this->xpr_.D.142582.alternates_.D.142415.cdr.D.142229.car.D.142156.impl_,
state, &adaptor.D.166953);
  goto <bb 11>;


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (13 preceding siblings ...)
  2009-05-12 18:56 ` jakub at gcc dot gnu dot org
@ 2009-05-12 19:06 ` jakub at gcc dot gnu dot org
  2009-05-12 19:34 ` jakub at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-05-12 19:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from jakub at gcc dot gnu dot org  2009-05-12 19:06 -------
In *.pre it still looks correct:
  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail17xpression_adaptorINS_17reference_wrapperIKNS1_17stacked_xpressionINS1
_16static_xpressionINS1_11end_matcherENS1_7no_nextEEENS5_INS1_21alternate_end_matcherES7_EEEEEENS1_9matchableIN9__gnu_cxx17__normal_itera
torIPKcSsEEEEEE[2];
  adaptor.xpr_.t_ = D.187226_39;
  D.187223_40 =
&this_1(D)->xpr_.D.142582.alternates_.D.142415.cdr.D.142229.car.D.142156.impl_;
  D.187198_41 = push_context_match (D.187223_40, state_4(D),
&adaptor.D.166953);

and

  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail17xpression_adaptorINS_17reference_wrapperIKNS1_17stacked_xpressionINS1
_16static_xpressionINS1_11end_matcherENS1_7no_nextEEENS5_INS1_21alternate_end_matcherES7_EEEEEENS1_9matchableIN9__gnu_cxx17__normal_itera
torIPKcSsEEEEEE[2];
  adaptor.xpr_.t_ = D.187218_33;
  D.187221_34 =
&this_1(D)->xpr_.D.142582.alternates_.D.142415.car.D.142156.impl_;
  D.187216_35 = push_context_match (D.187221_34, state_4(D),
&adaptor.D.166953);

but *.sink already breaks the first push_context_match call:

  D.187227_38 =
&this_1(D)->xpr_.D.142582.alternates_.D.142415.cdr.D.142229.car.next_;
  D.187226_39 = (const struct stacked_xpression &) D.187227_38;
  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail17xpression_adaptorINS_17reference_wrapperIKNS1_17stacked_xpressionINS1
_16static_xpressionINS1_11end_matcherENS1_7no_nextEEENS5_INS1_21alternate_end_matcherES7_EEEEEENS1_9matchableIN9__gnu_cxx17__normal_itera
torIPKcSsEEEEEE[2];
  adaptor.xpr_.t_ = D.187226_39;
  D.187223_40 =
&this_1(D)->xpr_.D.142582.alternates_.D.142415.cdr.D.142229.car.D.142156.impl_;
  adaptor.D.166953._vptr.matchable =
&_ZTVN5boost9xpressive6detail9matchableIN9__gnu_cxx17__normal_iteratorIPKcSsEEEE[2];
  D.187198_41 = push_context_match (D.187223_40, state_4(D),
&adaptor.D.166953);


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (14 preceding siblings ...)
  2009-05-12 19:06 ` jakub at gcc dot gnu dot org
@ 2009-05-12 19:34 ` jakub at gcc dot gnu dot org
  2009-05-21 10:36 ` rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-05-12 19:34 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from jakub at gcc dot gnu dot org  2009-05-12 19:34 -------
Ah, there are two different adaptor variables after inlining, so this might as
well be a dup of PR39604.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (15 preceding siblings ...)
  2009-05-12 19:34 ` jakub at gcc dot gnu dot org
@ 2009-05-21 10:36 ` rguenth at gcc dot gnu dot org
  2009-08-04 12:48 ` rguenth at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-21 10:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from rguenth at gcc dot gnu dot org  2009-05-21 10:35 -------
Which means it should work with -fno-tree-sink.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |39604
           Priority|P3                          |P2


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (16 preceding siblings ...)
  2009-05-21 10:36 ` rguenth at gcc dot gnu dot org
@ 2009-08-04 12:48 ` rguenth at gcc dot gnu dot org
  2009-12-16 20:19 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-08-04 12:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from rguenth at gcc dot gnu dot org  2009-08-04 12:29 -------
GCC 4.3.4 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.4                       |4.3.5


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (17 preceding siblings ...)
  2009-08-04 12:48 ` rguenth at gcc dot gnu dot org
@ 2009-12-16 20:19 ` rguenth at gcc dot gnu dot org
  2009-12-16 20:20 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-12-16 20:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from rguenth at gcc dot gnu dot org  2009-12-16 20:18 -------
*** Bug 42394 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Troy dot Runkel at mathworks
                   |                            |dot com


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (18 preceding siblings ...)
  2009-12-16 20:19 ` rguenth at gcc dot gnu dot org
@ 2009-12-16 20:20 ` rguenth at gcc dot gnu dot org
  2010-03-08 22:50 ` pinskia at gcc dot gnu dot org
  2010-05-22 19:00 ` [Bug middle-end/39509] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-12-16 20:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from rguenth at gcc dot gnu dot org  2009-12-16 20:19 -------
PR42394 has a smaller testcase (but it doesn't fail with trunk).  It works
with -fno-tree-sink.


-- 


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (19 preceding siblings ...)
  2009-12-16 20:20 ` rguenth at gcc dot gnu dot org
@ 2010-03-08 22:50 ` pinskia at gcc dot gnu dot org
  2010-05-22 19:00 ` [Bug middle-end/39509] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
  21 siblings, 0 replies; 23+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2010-03-08 22:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from pinskia at gcc dot gnu dot org  2010-03-08 22:50 -------
*** Bug 39604 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sandra at codesourcery dot
                   |                            |com
Bug 39509 depends on bug 39604, which changed state.

Bug 39604 Summary: [4.3/4.4/4.5 Regression] tree-ssa-sink breaks stack layout
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39604

           What    |Old Value                   |New Value
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE

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


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug middle-end/39509] [4.3/4.4/4.5/4.6 Regression] bad optimization(?) pure virtual function call with -O2
  2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
                   ` (20 preceding siblings ...)
  2010-03-08 22:50 ` pinskia at gcc dot gnu dot org
@ 2010-05-22 19:00 ` rguenth at gcc dot gnu dot org
  21 siblings, 0 replies; 23+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-05-22 19:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from rguenth at gcc dot gnu dot org  2010-05-22 18:13 -------
GCC 4.3.5 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.5                       |4.3.6


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


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2010-05-22 18:31 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-20  3:02 [Bug c++/39509] New: bad optimization(?) pure virtual function call with -O2 eric dot niebler at gmail dot com
2009-03-20  3:03 ` [Bug c++/39509] " eric dot niebler at gmail dot com
2009-03-20  4:04 ` eric dot niebler at gmail dot com
2009-04-16 20:55 ` [Bug middle-end/39509] " pinskia at gcc dot gnu dot org
2009-04-21  1:11 ` eric dot niebler at gmail dot com
2009-05-11 11:16 ` jwakely dot gcc at gmail dot com
2009-05-11 11:23 ` jwakely dot gcc at gmail dot com
2009-05-11 12:03 ` rguenth at gcc dot gnu dot org
2009-05-11 12:04 ` rguenth at gcc dot gnu dot org
2009-05-11 12:42 ` jwakely dot gcc at gmail dot com
2009-05-11 12:45 ` rguenther at suse dot de
2009-05-11 13:09 ` jwakely dot gcc at gmail dot com
2009-05-11 13:11 ` rguenther at suse dot de
2009-05-11 13:11 ` [Bug middle-end/39509] [4.3/4.4/4.5 Regression] " rguenth at gcc dot gnu dot org
2009-05-12 18:56 ` jakub at gcc dot gnu dot org
2009-05-12 19:06 ` jakub at gcc dot gnu dot org
2009-05-12 19:34 ` jakub at gcc dot gnu dot org
2009-05-21 10:36 ` rguenth at gcc dot gnu dot org
2009-08-04 12:48 ` rguenth at gcc dot gnu dot org
2009-12-16 20:19 ` rguenth at gcc dot gnu dot org
2009-12-16 20:20 ` rguenth at gcc dot gnu dot org
2010-03-08 22:50 ` pinskia at gcc dot gnu dot org
2010-05-22 19:00 ` [Bug middle-end/39509] [4.3/4.4/4.5/4.6 " rguenth 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).