public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/19317] New: forgets to deep-copy temporary return value
@ 2005-01-07 19:15 mueller at kde dot org
  2005-01-07 19:16 ` [Bug c++/19317] " mueller at kde dot org
                   ` (46 more replies)
  0 siblings, 47 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-01-07 19:15 UTC (permalink / raw)
  To: gcc-bugs

Mark Mitchel's commit to fix PR c++/16405 introduced a miscompilation 
in Qt. It took me a few weeks to deduce a testcase. testcase is: 
 
=== Cut === 
extern "C" void abort( void ); 
 
struct A 
{ 
    A() { d = d2 = 0; width = -1; } 
    A( int _w ) : d( 0 ), d2( 0 ), width( _w ) {} 
 
    A  b( const A &r ) const; 
    int d; 
    int d2; 
    int width; 
}; 
 
A A::b( const A &r ) const 
{ 
    A tmp; 
    tmp.width = width < r.width ? width : r.width; 
    return tmp; 
} 
 
int main() 
{ 
        A a( 100 ); 
        a = a.b( A( 10 ) ); 
        if ( a.width != 10 ) 
               abort(); 
} 
=== Cut === 
 
The issue is that the result of "a.b(A (10))" is never copied to a, hence 
the if() afterwards fails.

-- 
           Summary: forgets to deep-copy temporary return value
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mueller at kde dot org
                CC: gcc-bugs at gcc dot gnu dot org,mark at codesourcery dot
                    com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug c++/19317] [4.0 Regression] forgets to deep-copy temporary return value
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
  2005-01-07 19:16 ` [Bug c++/19317] " mueller at kde dot org
@ 2005-01-07 19:16 ` pinskia at gcc dot gnu dot org
  2005-01-07 19:26 ` pinskia at gcc dot gnu dot org
                   ` (44 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-07 19:16 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P1
            Summary|forgets to deep-copy        |[4.0 Regression] forgets to
                   |temporary return value      |deep-copy temporary return
                   |                            |value
   Target Milestone|---                         |4.0.0


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


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

* [Bug c++/19317] forgets to deep-copy temporary return value
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
@ 2005-01-07 19:16 ` mueller at kde dot org
  2005-01-07 19:16 ` [Bug c++/19317] [4.0 Regression] " pinskia at gcc dot gnu dot org
                   ` (45 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-01-07 19:16 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code


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


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

* [Bug c++/19317] [4.0 Regression] forgets to deep-copy temporary return value
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
  2005-01-07 19:16 ` [Bug c++/19317] " mueller at kde dot org
  2005-01-07 19:16 ` [Bug c++/19317] [4.0 Regression] " pinskia at gcc dot gnu dot org
@ 2005-01-07 19:26 ` pinskia at gcc dot gnu dot org
  2005-01-07 19:30 ` [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot pinskia at gcc dot gnu dot org
                   ` (43 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-07 19:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-07 19:26 -------
Hmm,
  a = b (&a, &D.1613);

I think the problem is that we cannot remove the tempory return value for this testcase.
Here is another testcase which is related testcase:
extern "C" void abort( void );

struct A
{
    A() { d = d2 = 0; width = -1; }
    A( int _w ) : d( 0 ), d2( 0 ), width( _w ) {}

    A  b( ) const;
    int d;
    int d2;
    int width;
};

A A::b( ) const
{
    A tmp;
    tmp.width = 10+this->width;
    return tmp;
}

int main()
{
        A a( 100 );
        a = a.b();
        if ( a.width != 110 )
               abort();
}

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
      Known to fail|                            |4.0.0
      Known to work|                            |3.4.0
   Last reconfirmed|0000-00-00 00:00:00         |2005-01-07 19:26:28
               date|                            |


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (2 preceding siblings ...)
  2005-01-07 19:26 ` pinskia at gcc dot gnu dot org
@ 2005-01-07 19:30 ` pinskia at gcc dot gnu dot org
  2005-01-10  4:52 ` pinskia at gcc dot gnu dot org
                   ` (42 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-07 19:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-07 19:30 -------
And another one (note on most targets a is passed by reference which is where the problem comes 
from):
extern "C" void abort( void );

struct A
{
    A() { d = d2 = 0; width = -1; }
    A( int _w ) : d( 0 ), d2( 0 ), width( _w ) {}

    A  b( const A &r ) const;
    int d;
    int d2;
    int width;
};

A A::b( const A &r ) const
{
    A tmp;
    tmp.width = width < r.width ? width : r.width;
    return tmp;
}
int main()
{
        A a( 10 );
        A b(100);
        a = b.b( a );
        if ( a.width != 10 )
               abort();
}

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.0 Regression] forgets to |[4.0 Regression] removing a
                   |deep-copy temporary return  |temporary return value when
                   |value                       |we cannot


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (3 preceding siblings ...)
  2005-01-07 19:30 ` [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot pinskia at gcc dot gnu dot org
@ 2005-01-10  4:52 ` pinskia at gcc dot gnu dot org
  2005-01-10  5:03 ` pinskia at gcc dot gnu dot org
                   ` (41 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-10  4:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-10 04:52 -------
Yes this is defind. As 12.2P1 says:
"Temporaries of class types are created in various contexts: ... returning an rvalue (6.6.3) ..."
"Even when the creation of the temporary object is avoided (12.8), all semantic restrictions must be 
respected as if the temporary object was created".

So we have to create a temporary variable for this return value in all three of my examples.  Hmm, the c 
example for all three does the correct thing and create a temporary variable.

-- 


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (4 preceding siblings ...)
  2005-01-10  4:52 ` pinskia at gcc dot gnu dot org
@ 2005-01-10  5:03 ` pinskia at gcc dot gnu dot org
  2005-01-15 12:45 ` steven at gcc dot gnu dot org
                   ` (40 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-10  5:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-10 05:03 -------
Also we only remove the temporary variable if the size is "large" which seems wrong.
Here is another example and the reason why it works with the C front-end is because we don't do NRV 
until late:
extern "C" void abort( void );

typedef struct A
{
    int width;
    int width1;
    int width3;
    int width5;
}A;

A bb( const A*this1, const A *r )
{
    A tmp;
    tmp.width = -1;
    tmp.width += this1->width < r->width ? this1->width : r->width;
    return tmp;
}
int main()
{
        A a;
        a.width = ( 10 );
        A b;
        b.width = (100);
        a = bb( &b, &a );
        if ( a.width != 9 )
               abort();
}

-- 


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (5 preceding siblings ...)
  2005-01-10  5:03 ` pinskia at gcc dot gnu dot org
@ 2005-01-15 12:45 ` steven at gcc dot gnu dot org
  2005-01-24 13:27 ` pinskia at gcc dot gnu dot org
                   ` (39 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: steven at gcc dot gnu dot org @ 2005-01-15 12:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From steven at gcc dot gnu dot org  2005-01-15 12:45 -------
Jason was looking into NRV issues...

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu dot org


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (6 preceding siblings ...)
  2005-01-15 12:45 ` steven at gcc dot gnu dot org
@ 2005-01-24 13:27 ` pinskia at gcc dot gnu dot org
  2005-02-13 21:24 ` mueller at kde dot org
                   ` (38 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-24 13:27 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-24 13:27 -------
*** Bug 19603 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rwgk at yahoo dot com


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (7 preceding siblings ...)
  2005-01-24 13:27 ` pinskia at gcc dot gnu dot org
@ 2005-02-13 21:24 ` mueller at kde dot org
  2005-02-13 21:31 ` pinskia at gcc dot gnu dot org
                   ` (37 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-02-13 21:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-02-13 14:59 -------
bug has been fixed by  
  
2005-02-13  Jason Merrill  <jason@redhat.com>  
  
        PR mudflap/19319  
        * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return  
        slot explicit.  
  
        PR c++/16405  
        * fold-const.c (fold_indirect_ref_1): Split out from...  
        (build_fold_indirect_ref): Here.  
        (fold_indirect_ref): New fn.  
        * tree.h: Declare it.  
        * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.  
        (gimplify_modify_expr_rhs): Likewise.  
        (gimplify_expr): Likewise.  
  
can anyone add the testcase to the regression testsuite please? 
 
it seems to me however the above commit caused another regression, I get 
other miscompilations now.  
 

-- 


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (8 preceding siblings ...)
  2005-02-13 21:24 ` mueller at kde dot org
@ 2005-02-13 21:31 ` pinskia at gcc dot gnu dot org
  2005-02-16  6:51 ` mueller at kde dot org
                   ` (36 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-02-13 21:31 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-13 15:40 -------
(In reply to comment #7)
> it seems to me however the above commit caused another regression, I get 
> other miscompilations now.  

More than just that it causes a bootstrap to fail (I think you must have just did a build and not a full 
bootstrap).

-- 


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


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

* [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (9 preceding siblings ...)
  2005-02-13 21:31 ` pinskia at gcc dot gnu dot org
@ 2005-02-16  6:51 ` mueller at kde dot org
  2005-03-10 23:49 ` [Bug c++/19317] [4.0/4.1 " pluto at pld-linux dot org
                   ` (35 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-02-16  6:51 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-02-16 02:02 -------
bootstrap failure is fixed, and 16405 works too, but this testcase still 
fails.  

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (10 preceding siblings ...)
  2005-02-16  6:51 ` mueller at kde dot org
@ 2005-03-10 23:49 ` pluto at pld-linux dot org
  2005-03-17 17:33 ` mueller at kde dot org
                   ` (34 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-03-10 23:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-03-10 23:49 -------
CC'ed. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pluto at pld-linux dot org


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (11 preceding siblings ...)
  2005-03-10 23:49 ` [Bug c++/19317] [4.0/4.1 " pluto at pld-linux dot org
@ 2005-03-17 17:33 ` mueller at kde dot org
  2005-03-17 18:22 ` pluto at pld-linux dot org
                   ` (33 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-03-17 17:33 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-03-17 17:33 -------
thats the same issue  like the konqueror crash which I couldn't 
find a workaround for in gcc either.  
 
 

-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (12 preceding siblings ...)
  2005-03-17 17:33 ` mueller at kde dot org
@ 2005-03-17 18:22 ` pluto at pld-linux dot org
  2005-03-18  0:34 ` jason at redhat dot com
                   ` (32 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-03-17 18:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-03-17 18:22 -------
so, we have an unaccaptable g++ at this moment :/  

-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (13 preceding siblings ...)
  2005-03-17 18:22 ` pluto at pld-linux dot org
@ 2005-03-18  0:34 ` jason at redhat dot com
  2005-03-24 11:07 ` pluto at pld-linux dot org
                   ` (31 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: jason at redhat dot com @ 2005-03-18  0:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2005-03-18 00:34 -------
Subject: Re:  [4.0/4.1 Regression] removing a temporary
 return value when we cannot

This hack should work around the bug, pending a better fix.

*** calls.c.~1~	2005-02-01 10:53:24.000000000 -0500
--- calls.c	2005-03-17 19:33:38.931587705 -0500
*************** expand_call (tree exp, rtx target, int i
*** 1994,2001 ****
--- 1994,2003 ----
  	    structure_value_addr = expand_expr (return_arg, NULL_RTX,
  						VOIDmode, EXPAND_NORMAL);
  	  }
+ #if 0
  	else if (target && MEM_P (target))
  	  structure_value_addr = XEXP (target, 0);
+ #endif
  	else
  	  {
  	    /* For variable-sized objects, we must be called with a target


-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (14 preceding siblings ...)
  2005-03-18  0:34 ` jason at redhat dot com
@ 2005-03-24 11:07 ` pluto at pld-linux dot org
  2005-03-24 12:46 ` rwgk at yahoo dot com
                   ` (30 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-03-24 11:07 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-03-24 11:07 -------
(In reply to comment #15)
> thats the same issue  like the konqueror crash which I couldn't 
> find a workaround for in gcc either.  
>  
>  

Please looka at the PR19265 testcase (http://dc.selwerd.nl/dlcrash.tar.bz2).

# ./dltest
Segmentation fault

# gcc -v
Reading specs from /usr/lib/gcc/i686-pld-linux/4.0.0/specs
Target: i686-pld-linux
Configured with: ../configure --prefix=/usr --libdir=/usr/lib
--libexecdir=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-languages=c,c++,ada,java --enable-c99 --enable-long-long
--disable-multilib --enable-nls --with-gnu-as --with-gnu-ld
--with-demangler-in-ld --with-system-zlib --with-slibdir=/lib --without-x
--enable-cmath --enable-libgcj --enable-libgcj-multifile
--enable-libgcj-database --enable-gtk-cairo i686-pld-linux
Thread model: posix
gcc version 4.0.0 20050319 (prerelease) (PLD Linux)

-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (15 preceding siblings ...)
  2005-03-24 11:07 ` pluto at pld-linux dot org
@ 2005-03-24 12:46 ` rwgk at yahoo dot com
  2005-03-24 21:04 ` pinskia at gcc dot gnu dot org
                   ` (29 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: rwgk at yahoo dot com @ 2005-03-24 12:46 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rwgk at yahoo dot com  2005-03-24 12:46 -------
Using the latest CVS:

gcc version 4.0.0 20050324 (prerelease)

My reproducer attached to this report

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

is still failing.


-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (16 preceding siblings ...)
  2005-03-24 12:46 ` rwgk at yahoo dot com
@ 2005-03-24 21:04 ` pinskia at gcc dot gnu dot org
  2005-04-05  6:25 ` mmitchel at gcc dot gnu dot org
                   ` (28 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-03-24 21:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-24 21:04 -------
*** Bug 20628 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |codemonkey49 at earthlink
                   |                            |dot net


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (17 preceding siblings ...)
  2005-03-24 21:04 ` pinskia at gcc dot gnu dot org
@ 2005-04-05  6:25 ` mmitchel at gcc dot gnu dot org
  2005-04-05 23:14 ` cvs-commit at gcc dot gnu dot org
                   ` (27 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-04-05  6:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2005-04-05 06:25 -------
Jason --

Please apply the work-around; it's the best we've got at present.

Thanks,

-- Mark


-- 


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


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

* [Bug c++/19317] [4.0/4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (18 preceding siblings ...)
  2005-04-05  6:25 ` mmitchel at gcc dot gnu dot org
@ 2005-04-05 23:14 ` cvs-commit at gcc dot gnu dot org
  2005-04-07 21:01 ` [Bug c++/19317] [4.1 " pinskia at gcc dot gnu dot org
                   ` (26 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-04-05 23:14 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-05 23:14 -------
Subject: Bug 19317

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	jason@gcc.gnu.org	2005-04-05 23:13:35

Modified files:
	gcc            : ChangeLog calls.c 

Log message:
	PR c++/19317
	* calls.c (expand_call): Disable return slot optimization.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.129&r2=2.7592.2.130
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/calls.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.378&r2=1.378.8.1



-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (19 preceding siblings ...)
  2005-04-05 23:14 ` cvs-commit at gcc dot gnu dot org
@ 2005-04-07 21:01 ` pinskia at gcc dot gnu dot org
  2005-04-08 13:33 ` pluto at pld-linux dot org
                   ` (25 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-07 21:01 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-07 21:01 -------
Work around applied to the 4.0 branch so this is only 4.1 regression now

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|4.0.0                       |
      Known to work|3.4.0                       |3.4.0 4.0.0
            Summary|[4.0/4.1 Regression]        |[4.1 Regression] removing a
                   |removing a temporary return |temporary return value when
                   |value when we cannot        |we cannot
   Target Milestone|4.0.0                       |4.1.0


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (20 preceding siblings ...)
  2005-04-07 21:01 ` [Bug c++/19317] [4.1 " pinskia at gcc dot gnu dot org
@ 2005-04-08 13:33 ` pluto at pld-linux dot org
  2005-04-09  2:29 ` pluto at pld-linux dot org
                   ` (24 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-08 13:33 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-08 13:33 -------
(In reply to comment #15)
> thats the same issue  like the konqueror crash which I couldn't 
> find a workaround for in gcc either.  

(gdb) bt
#0  ~QIconSet (this=0x8209614) at qshared.h:50

~QIconSet (this=0x8209614) at qshared.h:50
50          bool deref()        { return !--count; }
(gdb) print this
$1 = (QIconSet * const) 0x8209614
(gdb) print *this
$2 = {_vptr.QIconSet = 0x41048ba8, d = 0x5}

It looks as if "d" was corrupted in toplevel.

#1  0x4068cc51 in ~KGuiItem (this=0xbfffdbe4) at kguiitem.cpp:109
#2  0x400a1ce5 in ~QPair (this=0xbfffdbe4) at konq_mainwindow.cc:3683
#3  0x400727ea in KonqMainWindow::initActions (this=0x812af98)
    at konq_mainwindow.cc:3922

#4  0x4008b330 in KonqMainWindow (this=0x812af98, initialURL=@0xbfffef84,
    openInitialURL=false, name=0x29 <Address 0x29 out of bounds>,
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [*]
    xmluiFile=@0x29) at konq_mainwindow.cc:217
    ^^^^^^^^^^^^^^^^

#5  0x4009099c in KonqMisc::createBrowserWindowFromProfile (path=@0xbffff294,
    filename=@0xbffff26c, url=@0xbffff420, args=@0xbffff3f4,
    forbidUseHTML=false, filesToSelect=@0xbffff3f0, tempFile=false,
    openURL=true) at konq_misc.cc:152
#6  0x40096bae in kdemain (argc=41, argv=0x29) at konq_main.cc:155
#7  0x080486a2 in main (argc=41, argv=0x29) at konqueror.la.cc:2

[*]
KonqMainWindow constructor was called from this context:
(...)
  }
  else
  {
      KConfig cfg( path, true );
      cfg.setDollarExpansion( true );
      cfg.setGroup( "Profile" );
      QString xmluiFile=cfg.readEntry("XMLUIFile","konqueror.rc");

152:  mainWindow = new KonqMainWindow( KURL(), false, 0, xmluiFile );
                                                      ^^^^^^^^^^^^
                                    gcc passed 0x29 inplace of these params.


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (21 preceding siblings ...)
  2005-04-08 13:33 ` pluto at pld-linux dot org
@ 2005-04-09  2:29 ` pluto at pld-linux dot org
  2005-04-11  7:49 ` jason at redhat dot com
                   ` (23 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-09  2:29 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-09 02:29 -------
(In reply to comment #24)
> (In reply to comment #15)

please ignore previous post.
gcc passes params in the right way but something is wrong.

with the original sourcecode gdb shows stack frame with
invalid parameters (name, xmluiFile):

#4  0x4008b10c in KonqMainWindow (this=0x812afc0, initialURL=@0xbfffef5c,
    openInitialURL=false, name=0x2e <Address 0x2e out of bounds>,
    xmluiFile=@0x2e) at konq_mainwindow.cc:218

if I access xmluiFile at the begin of this cstr, eg.
qDebug("name=%p, xmlui=%s", name, xmluiFile.ascii());
gdb will show a stack frame with correct params:

#4  0x4008b130 in KonqMainWindow (this=0x812afc0, initialURL=@0xbfffef5c,
    openInitialURL=false, name=0x0, xmluiFile=@0xbfffef1c)
    at konq_mainwindow.cc:218

disassembler shows only s/eax/edx/ in several places.
is this a gdb-6.3 bug?
i give up.

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (22 preceding siblings ...)
  2005-04-09  2:29 ` pluto at pld-linux dot org
@ 2005-04-11  7:49 ` jason at redhat dot com
  2005-04-11  9:00 ` pluto at pld-linux dot org
                   ` (22 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: jason at redhat dot com @ 2005-04-11  7:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2005-04-11 07:49 -------
Subject: Re:  [4.1 Regression] removing a temporary return
 value when we cannot

Have you tested the 4.0 branch with the temporary fix I applied?

Jason


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (23 preceding siblings ...)
  2005-04-11  7:49 ` jason at redhat dot com
@ 2005-04-11  9:00 ` pluto at pld-linux dot org
  2005-04-11 12:48 ` jason at redhat dot com
                   ` (21 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-11  9:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-11 08:59 -------
(In reply to comment #26)
> Subject: Re:  [4.1 Regression] removing a temporary return
>  value when we cannot
> 
> Have you tested the 4.0 branch with the temporary fix I applied?
> 
> Jason
> 

I applied a temporary fix and Dirk's hack to get konqueror working
but misscompilation still exists. I see it on artsd crash and buggy
openoffice behaviour (STLport is misscompiled now). Several gcc-snaps
ago artsd/stl/openoffice worked fine.


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (24 preceding siblings ...)
  2005-04-11  9:00 ` pluto at pld-linux dot org
@ 2005-04-11 12:48 ` jason at redhat dot com
  2005-04-11 14:44 ` pluto at pld-linux dot org
                   ` (20 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: jason at redhat dot com @ 2005-04-11 12:48 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2005-04-11 12:48 -------
Subject: Re:  [4.1 Regression] removing a temporary return
 value when we cannot

On 11 Apr 2005 08:59:58 -0000, "pluto at pld-linux dot org" <gcc-bugzilla@gcc.gnu.org> wrote:

>> Have you tested the 4.0 branch with the temporary fix I applied?
>
> I applied a temporary fix and Dirk's hack to get konqueror working but
> misscompilation still exists.

My patch fixes all the reduced testcases in this PR.  If KDE is still
broken, I think that's a separate bug and needs testcases.  Can you submit
another PR?

Jason


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (25 preceding siblings ...)
  2005-04-11 12:48 ` jason at redhat dot com
@ 2005-04-11 14:44 ` pluto at pld-linux dot org
  2005-04-12 10:27 ` mueller at kde dot org
                   ` (19 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-11 14:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-11 14:43 -------
(In reply to comment #28)
> Subject: Re:  [4.1 Regression] removing a temporary return
>  value when we cannot
> 
> On 11 Apr 2005 08:59:58 -0000, "pluto at pld-linux dot org"
<gcc-bugzilla@gcc.gnu.org> wrote:
> 
> >> Have you tested the 4.0 branch with the temporary fix I applied?
> >
> > I applied a temporary fix and Dirk's hack to get konqueror working but
> > misscompilation still exists.
> 
> My patch fixes all the reduced testcases in this PR.  If KDE is still
> broken, I think that's a separate bug and needs testcases.  Can you submit
> another PR?

I've opened the PR20949

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (26 preceding siblings ...)
  2005-04-11 14:44 ` pluto at pld-linux dot org
@ 2005-04-12 10:27 ` mueller at kde dot org
  2005-04-12 20:01 ` mlists at juma dot me dot uk
                   ` (18 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-04-12 10:27 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-04-12 10:27 -------
there are two more critical miscompilations in branch, popping up 
12 and 10 days ago.  
 
I'm currently trying to deduce a testcase, but maybe that information 
already is sufficient to narrow down the faulty patch (which I didn't 
try yet).  
 
currently there is no non-trivial C++ application that isn't miscompiled 
or doesn't crash right away.  

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (27 preceding siblings ...)
  2005-04-12 10:27 ` mueller at kde dot org
@ 2005-04-12 20:01 ` mlists at juma dot me dot uk
  2005-04-13  1:10 ` mueller at kde dot org
                   ` (17 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mlists at juma dot me dot uk @ 2005-04-12 20:01 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mlists at juma dot me dot uk  2005-04-12 20:01 -------
(In reply to comment #11)
> CC'ed. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mlists at juma dot me dot uk


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (28 preceding siblings ...)
  2005-04-12 20:01 ` mlists at juma dot me dot uk
@ 2005-04-13  1:10 ` mueller at kde dot org
  2005-04-13  1:36 ` mueller at kde dot org
                   ` (16 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-04-13  1:10 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-04-13 01:10 -------
the konqueror startup crash is fixed by:  
 
@@ -3716,7 +3716,7 @@ void KonqMainWindow::initActions() 
   m_paActivateNextTab = new KAction( i18n( "Activate Next Tab" ), "tab_next", 
QApplication::reverseLayout() ? KStdAccel::tabPrev() : KStdAccel::tabNext(), 
this, SLOT( slotActivateNextTab() ), actionCollection(), "activatenexttab" ); 
   m_paActivatePrevTab = new KAction( i18n( "Activate Previous Tab" ), 
"tab_previous", QApplication::reverseLayout() ? KStdAccel::tabNext() : 
KStdAccel::tabPrev(), this, SLOT( slotActivatePrevTab() ), actionCollection(), 
"activateprevtab" ); 
  
-  char actionname[15]; 
+  char actionname[16]; 
   for (int i=1;i<13;i++) { 
     sprintf(actionname,"activate_tab_%02d", i); 
     new KAction(i18n("Activate Tab %1").arg(i), 0, this, 
SLOT(slotActivateTab()), actionCollection(), actionname); 
 
 
so that is mood.  
 
 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (29 preceding siblings ...)
  2005-04-13  1:10 ` mueller at kde dot org
@ 2005-04-13  1:36 ` mueller at kde dot org
  2005-04-13 16:57 ` mueller at kde dot org
                   ` (15 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-04-13  1:36 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-04-13 01:36 -------
looking at it - the artsd crash is not reproduceable for me. is this one still 
there? 
 
 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (30 preceding siblings ...)
  2005-04-13  1:36 ` mueller at kde dot org
@ 2005-04-13 16:57 ` mueller at kde dot org
  2005-05-17  5:41 ` bernie at develer dot com
                   ` (14 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: mueller at kde dot org @ 2005-04-13 16:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mueller at kde dot org  2005-04-13 16:57 -------
can we think about retargeting fixing the optimisation for 4.0.1 ? 
 
 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (31 preceding siblings ...)
  2005-04-13 16:57 ` mueller at kde dot org
@ 2005-05-17  5:41 ` bernie at develer dot com
  2005-05-18 19:38 ` jason at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: bernie at develer dot com @ 2005-05-17  5:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bernie at develer dot com  2005-05-17 05:40 -------
I'm still seeing the artsd miscompilation with
gcc 4.0.0 20050512 (Red Hat 4.0.0-5), which contains everything
from gcc-4_0-branch upto 13-05-2005 (circa).

This is from an arts *client*:

Starting program: /home/bernie/src/gfactory/src/gfactory
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x73d000
[Thread debugging using libthread_db enabled]
[New Thread -1209042464 (LWP 20182)]
unix_connect: can't connect to server
(unix:/tmp/mcop-root/beetle_trilan-0cad-4289417b)
bernie: here9

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1209042464 (LWP 20182)]
0x006359b7 in __gnu_cxx::__pool<true>::_M_reclaim_block () from
/usr/lib/libstdc++.so.6
(gdb) bt
#0  0x006359b7 in __gnu_cxx::__pool<true>::_M_reclaim_block () from
/usr/lib/libstdc++.so.6
#1  0x00913fef in __gnu_cxx::__mt_alloc<std::string,
__gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::deallocate
(this=0xbfc1fd38, __p=0x8509c68, __n=1)
    at
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/ext/mt_allocator.h:746
#2  0x00914029 in std::_Vector_base<std::string, std::allocator<std::string>
>::_M_deallocate (this=0xbfc1fd38,
    __p=0x8509c68, __n=1)
    at
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/bits/stl_vector.h:123
#3  0x00914066 in ~_Vector_base (this=0xbfc1fd38)
    at
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/bits/stl_vector.h:109
#4  0x009140cf in ~vector (this=0xbfc1fd38)
    at
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/bits/stl_vector.h:273
#5  0x00914102 in ~ObjectReference (this=0xbfc1fd2c) at
/usr/local/src/kde/arts/mcop/reference.h:48
#6  0x009069ad in Arts::SoundServer_base::_fromString (objectref=@0xbfc1fd90) at
soundserver.cc:1452
#7  0x00e1f0aa in arts_backend_init () from /usr/local/kde/lib/libartscbackend.so.0
#8  0xbfc1fd90 in ?? ()
#9  0x00e258cc in typeinfo name for Sender () from
/usr/local/kde/lib/libartscbackend.so.0
#10 0x00000017 in ?? ()
Previous frame inner to this frame (corrupt stack?)


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (32 preceding siblings ...)
  2005-05-17  5:41 ` bernie at develer dot com
@ 2005-05-18 19:38 ` jason at gcc dot gnu dot org
  2005-05-18 20:45 ` bernie at develer dot com
                   ` (12 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: jason at gcc dot gnu dot org @ 2005-05-18 19:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at gcc dot gnu dot org  2005-05-18 19:38 -------
(In reply to comment #35)
> I'm still seeing the artsd miscompilation with
> gcc 4.0.0 20050512 (Red Hat 4.0.0-5), which contains everything
> from gcc-4_0-branch upto 13-05-2005 (circa).

A backtrace showing a crash is not a very useful bug report, and probably has
nothing to do with this bug report.  It might not even be a gcc bug, as the
konqueror failure was not.  If you can track down the miscompilation, we'd love
to hear about it in a new bug report.

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (33 preceding siblings ...)
  2005-05-18 19:38 ` jason at gcc dot gnu dot org
@ 2005-05-18 20:45 ` bernie at develer dot com
  2005-05-18 21:18 ` jason at redhat dot com
                   ` (11 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: bernie at develer dot com @ 2005-05-18 20:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bernie at develer dot com  2005-05-18 20:45 -------
(In reply to comment #36)
> (In reply to comment #35)
> > I'm still seeing the artsd miscompilation with
> > gcc 4.0.0 20050512 (Red Hat 4.0.0-5), which contains everything
> > from gcc-4_0-branch upto 13-05-2005 (circa).
> 
> A backtrace showing a crash is not a very useful bug report, and probably has
> nothing to do with this bug report.  It might not even be a gcc bug, as the
> konqueror failure was not.  If you can track down the miscompilation, we'd
love to hear about it in a new bug report.

My backtrace looks suspiciously similar to the backtrace
reported in comment #14.  My backtrace is from an
arts client, not from the artsd server, but they do
share lots of common code.

I've tried to debug the problem: something weird happens
in the destructor of a vector<string>, then GDB seems to
get confused by stack/registers corruption.  It really
looks like a code generation bug to me.

Reducing a testcase isn't trivial, but I'll try.


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (34 preceding siblings ...)
  2005-05-18 20:45 ` bernie at develer dot com
@ 2005-05-18 21:18 ` jason at redhat dot com
  2005-05-19  9:04 ` pluto at agmk dot net
                   ` (10 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: jason at redhat dot com @ 2005-05-18 21:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2005-05-18 21:17 -------
Subject: Re:  [4.1 Regression] removing a temporary return
 value when we cannot

On 18 May 2005 20:45:22 -0000, "bernie at develer dot com" <gcc-bugzilla@gcc.gnu.org> wrote:

> My backtrace looks suspiciously similar to the backtrace reported in
> comment #14.

Yep, yours is probably the same bug as that in comment #14, which I don't
think is related to the original bug report.  20949 was opened for that
bug, then closed for lack of a testcase.

> Reducing a testcase isn't trivial, but I'll try.

Thanks.  If you do come up with one, it probably makes the most sense to
attach it to 20949 and reopen it.

Jason


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (35 preceding siblings ...)
  2005-05-18 21:18 ` jason at redhat dot com
@ 2005-05-19  9:04 ` pluto at agmk dot net
  2005-05-19  9:45 ` bernie at develer dot com
                   ` (9 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pluto at agmk dot net @ 2005-05-19  9:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at agmk dot net  2005-05-19 09:04 -------
(In reply to comment #37)  
 
> Reducing a testcase isn't trivial, but I'll try.  
  
try to pass to the ./configure the kde_cv_val_gcc_visibility_bug=yes switch. 
rebuild and test artsd. it may help. 
 
currently i have a gcc-4.0.1-20050514(+patches:19664,20218,v3) 
and artsd works fine without hacks. 
 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (36 preceding siblings ...)
  2005-05-19  9:04 ` pluto at agmk dot net
@ 2005-05-19  9:45 ` bernie at develer dot com
  2005-05-19 10:42 ` bernie at develer dot com
                   ` (8 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: bernie at develer dot com @ 2005-05-19  9:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bernie at develer dot com  2005-05-19 09:45 -------
(In reply to comment #38)

> > My backtrace looks suspiciously similar to the backtrace reported in
> > comment #14.
> 
> Yep, yours is probably the same bug as that in comment #14, which I don't
> think is related to the original bug report.  20949 was opened for that
> bug, then closed for lack of a testcase.

Ah, OK.  Then I think this bug should be closed: the
patch is already applied and the other testcases
(comment #1, comment #2 and comment #4) all work
for me.


> > Reducing a testcase isn't trivial, but I'll try.
> 
> Thanks.  If you do come up with one, it probably makes the most sense to
> attach it to 20949 and reopen it.

Will do.  Thanks!


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (37 preceding siblings ...)
  2005-05-19  9:45 ` bernie at develer dot com
@ 2005-05-19 10:42 ` bernie at develer dot com
  2005-06-23 14:44 ` cvs-commit at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: bernie at develer dot com @ 2005-05-19 10:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bernie at develer dot com  2005-05-19 10:42 -------
(In reply to comment #39)
> (In reply to comment #37)  
>  
> > Reducing a testcase isn't trivial, but I'll try.  
>   
> try to pass to the ./configure the kde_cv_val_gcc_visibility_bug=yes switch. 
> rebuild and test artsd. it may help. 

I ran the acinclude.m4 test manually, and it
links fine for me (altough the binary crashes
on startup).

      $ cat < foo.cpp
          /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
          #include <string>
          int some_function( void ) __attribute__ ((visibility("default")));
          int some_function( void )
          {
            std::string s("blafasel");
            return 0;
          }
      $ g++ -fPIC -fvisibility-inlines-hidden -O0 -shared foo.cpp -o foo
      $ ./foo
      Segmentation fault


> currently i have a gcc-4.0.1-20050514(+patches:19664,20218,v3) 
> and artsd works fine without hacks. 

I'll try to build with those patches, thanks.


-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (38 preceding siblings ...)
  2005-05-19 10:42 ` bernie at develer dot com
@ 2005-06-23 14:44 ` cvs-commit at gcc dot gnu dot org
  2005-06-24 14:11 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-06-23 14:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-06-23 14:44 -------
Subject: Bug 19317

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	jason@gcc.gnu.org	2005-06-23 14:44:21

Modified files:
	gcc            : ChangeLog tree.h calls.c tree-inline.c 
	                 tree-pretty-print.c gimplify.c tree-nrv.c 
	                 tree-pass.h tree-optimize.c 
	gcc/cp         : ChangeLog semantics.c 
Added files:
	gcc/testsuite/g++.dg/opt: nrv9.C 

Log message:
	PR c++/19317
	Leave the return slot target in the MODIFY_EXPR rather than making
	it an argument, but only use it if the CALL_EXPR has a flag set.
	* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
	CALL_EXPR_RETURN_SLOT_OPT.
	* calls.c (expand_call): Adjust.
	* tree-inline.c (expand_call_inline): Adjust.
	* tree-pretty-print.c (dump_generic_node): Adjust.
	
	And set the flag as appropriate.
	* gimplify.c (gimplify_modify_expr_rhs): Set
	CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
	* tree-nrv.c (execute_return_slot_opt): Set
	CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
	* tree-pass.h: Declare pass_return_slot.
	* tree-optimize.c (init_tree_optimization_passes): Add it.
	
	* cp/semantics.c (simplify_aggr_init_expr): Use
	CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9211&r2=2.9212
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&r1=1.737&r2=1.738
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/calls.c.diff?cvsroot=gcc&r1=1.389&r2=1.390
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-inline.c.diff?cvsroot=gcc&r1=1.196&r2=1.197
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pretty-print.c.diff?cvsroot=gcc&r1=2.63&r2=2.64
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gcc&r1=2.136&r2=2.137
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-nrv.c.diff?cvsroot=gcc&r1=2.7&r2=2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pass.h.diff?cvsroot=gcc&r1=2.42&r2=2.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gcc&r1=2.108&r2=2.109
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4797&r2=1.4798
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/semantics.c.diff?cvsroot=gcc&r1=1.477&r2=1.478
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/opt/nrv9.C.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (39 preceding siblings ...)
  2005-06-23 14:44 ` cvs-commit at gcc dot gnu dot org
@ 2005-06-24 14:11 ` pinskia at gcc dot gnu dot org
  2005-07-08 14:13 ` cvs-commit at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-24 14:11 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-24 14:11 -------
Fixed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (40 preceding siblings ...)
  2005-06-24 14:11 ` pinskia at gcc dot gnu dot org
@ 2005-07-08 14:13 ` cvs-commit at gcc dot gnu dot org
  2005-09-26 23:18 ` kev dot gilbert at cdu dot edu dot au
                   ` (4 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-08 14:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-07-08 14:13 -------
Subject: Bug 19317

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-rhl-branch
Changes by:	jakub@gcc.gnu.org	2005-07-08 14:13:13

Modified files:
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.dg/opt: pr19317-1.C pr19317-2.C pr19317-3.C 

Log message:
	PR c++/19317
	* g++.dg/opt/pr19317-1.C: New test.
	* g++.dg/opt/pr19317-2.C: New test.
	* g++.dg/opt/pr19317-3.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=1.5084.2.9.2.37&r2=1.5084.2.9.2.38
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/opt/pr19317-1.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/opt/pr19317-2.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/opt/pr19317-3.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=NONE&r2=1.1.2.1



-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (41 preceding siblings ...)
  2005-07-08 14:13 ` cvs-commit at gcc dot gnu dot org
@ 2005-09-26 23:18 ` kev dot gilbert at cdu dot edu dot au
  2005-09-27  0:44 ` bangerth at dealii dot org
                   ` (3 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: kev dot gilbert at cdu dot edu dot au @ 2005-09-26 23:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From kev dot gilbert at cdu dot edu dot au  2005-09-26 23:17 -------
Whilst this bug has been marked as resolved, I am still experiencing the same   
problems (with arts-1.4.91 - the version shipped with KDE 35. Beta 1).  
  
My gcc version info : gcc (GCC) 4.1.0 20050924 (experimental)  
  
The following is the stack dump for the problem:  
  
-------------------------------  
  
Using host libthread_db library "/lib/libthread_db.so.1".  
[Thread debugging using libthread_db enabled]  
[New Thread -1209124384 (LWP 31570)]  
[KCrash handler]  
#4  0x0034ffe3 in __gnu_cxx::__pool<true>::_M_reclaim_block (this=0xa91b20,   
    __p=0x84e6378 "\234&#65533;\b&#65533;\b&#65533;N\b", __bytes=4)  
    at ../../.././libstdc++-v3/src/mt_allocator.cc:254  
#5  0x00a71f37 in __gnu_cxx::__mt_alloc<std::string,   
__gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::deallocate   
(this=0xbfc15838, __p=0x84e6378,   __n=1)   
at /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/ext/mt_allocator.h:711  
#6  0x00a71f71 in std::_Vector_base<std::string, std::allocator<std::string>   
>::_M_deallocate (this=0xbfc15838, __p=0x84e6378, __n=1)   
at /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/stl_vector.h:129  
#7  0x00a71fae in ~_Vector_base (this=0xbfc15838)   
at /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/stl_vector.h:115  
#8  0x00a72017 in ~vector (this=0xbfc15838)   
at /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/bits/stl_vector.h:268  
#9  0x00a7204a in ~ObjectReference (this=0xbfc1582c) at ../mcop/core.h:117  
#10 0x00a5adc7 in Arts::SoundServerStartup_base::_fromString (  
    objectref=@0xbfc158d0) at soundserver.cc:2545  
#11 0x08067572 in SoundServerStartup (this=0xbfc158b0, r=@0xbfc158b8)  
    at soundserver.h:1376  
#12 0x08066b83 in Arts::SoundServerStartup_impl::cleanReference (  
    this=0x853e6f8) at soundserverstartup_impl.cc:54  
#13 0x08066cc1 in Arts::SoundServerStartup_impl::lock (this=0x853e6f8)  
    at soundserverstartup_impl.cc:78  
#14 0x08062bf9 in Arts::SoundServerStartup::lock (this=0xbfc15a58)  
    at soundserver.h:2082  
#15 0x080624ac in main (argc=14, argv=0xbfc15b74) at artsd.cc:293  
  
-------------------------------  
  
My gcc was installed by:  
  
-------------------------------  
  
export CVS_RSH=ssh  
export CVSROOT=":ext:anoncvs@savannah.gnu.org:/cvsroot/gcc"  
cvs -z9 checkout -P gcc wwwdocs  
cd gcc  
./configure  
make -j 2  
make install  
 
-------------------------------  
 
I have peformed a random check of the patches in Remark #42 below and they seem 
to be in the source I've downloaded. 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (42 preceding siblings ...)
  2005-09-26 23:18 ` kev dot gilbert at cdu dot edu dot au
@ 2005-09-27  0:44 ` bangerth at dealii dot org
  2005-09-27  7:28 ` kev dot gilbert at cdu dot edu dot au
                   ` (2 subsequent siblings)
  46 siblings, 0 replies; 48+ messages in thread
From: bangerth at dealii dot org @ 2005-09-27  0:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2005-09-27 00:44 -------
Kevin, 
can you try out the various testcases from this report and see whether your 
compiler fails any of them? 
 
W. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kev dot gilbert at cdu dot
                   |                            |edu dot au


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (43 preceding siblings ...)
  2005-09-27  0:44 ` bangerth at dealii dot org
@ 2005-09-27  7:28 ` kev dot gilbert at cdu dot edu dot au
  2005-09-27 14:01 ` bangerth at dealii dot org
  2005-09-30  1:59 ` kev dot gilbert at cdu dot edu dot au
  46 siblings, 0 replies; 48+ messages in thread
From: kev dot gilbert at cdu dot edu dot au @ 2005-09-27  7:28 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From kev dot gilbert at cdu dot edu dot au  2005-09-27 07:28 -------
All three testcases compile & run ok. 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (44 preceding siblings ...)
  2005-09-27  7:28 ` kev dot gilbert at cdu dot edu dot au
@ 2005-09-27 14:01 ` bangerth at dealii dot org
  2005-09-30  1:59 ` kev dot gilbert at cdu dot edu dot au
  46 siblings, 0 replies; 48+ messages in thread
From: bangerth at dealii dot org @ 2005-09-27 14:01 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2005-09-27 14:01 -------
Then the issue you are seeing is a separate one, and we would need to 
have a smaller testcase to figure out what is going on. Please try to 
work on finding one so that we can look at it. 
 
Thanks 
 Wolfgang 

-- 


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


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

* [Bug c++/19317] [4.1 Regression] removing a temporary return value when we cannot
  2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
                   ` (45 preceding siblings ...)
  2005-09-27 14:01 ` bangerth at dealii dot org
@ 2005-09-30  1:59 ` kev dot gilbert at cdu dot edu dot au
  46 siblings, 0 replies; 48+ messages in thread
From: kev dot gilbert at cdu dot edu dot au @ 2005-09-30  1:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From kev dot gilbert at cdu dot edu dot au  2005-09-30 01:59 -------
A discussion on another mailing list revealed the page 
http://lists.kde.org/?l=kde-devel&m=112537321024777&w=2 where it states that 
the bug is in libstdc++ and can be overcome by setting the environment variable 
GLIBCXX_FORCE_NEW. Obviously, this is a work-around until the real problem is 
fixed. 
 
So, indeed, the problem I reported is not due to the bug described in the 
Report. 
 
Thx for your help. 

-- 


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


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

end of thread, other threads:[~2005-09-30  1:59 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-07 19:15 [Bug c++/19317] New: forgets to deep-copy temporary return value mueller at kde dot org
2005-01-07 19:16 ` [Bug c++/19317] " mueller at kde dot org
2005-01-07 19:16 ` [Bug c++/19317] [4.0 Regression] " pinskia at gcc dot gnu dot org
2005-01-07 19:26 ` pinskia at gcc dot gnu dot org
2005-01-07 19:30 ` [Bug c++/19317] [4.0 Regression] removing a temporary return value when we cannot pinskia at gcc dot gnu dot org
2005-01-10  4:52 ` pinskia at gcc dot gnu dot org
2005-01-10  5:03 ` pinskia at gcc dot gnu dot org
2005-01-15 12:45 ` steven at gcc dot gnu dot org
2005-01-24 13:27 ` pinskia at gcc dot gnu dot org
2005-02-13 21:24 ` mueller at kde dot org
2005-02-13 21:31 ` pinskia at gcc dot gnu dot org
2005-02-16  6:51 ` mueller at kde dot org
2005-03-10 23:49 ` [Bug c++/19317] [4.0/4.1 " pluto at pld-linux dot org
2005-03-17 17:33 ` mueller at kde dot org
2005-03-17 18:22 ` pluto at pld-linux dot org
2005-03-18  0:34 ` jason at redhat dot com
2005-03-24 11:07 ` pluto at pld-linux dot org
2005-03-24 12:46 ` rwgk at yahoo dot com
2005-03-24 21:04 ` pinskia at gcc dot gnu dot org
2005-04-05  6:25 ` mmitchel at gcc dot gnu dot org
2005-04-05 23:14 ` cvs-commit at gcc dot gnu dot org
2005-04-07 21:01 ` [Bug c++/19317] [4.1 " pinskia at gcc dot gnu dot org
2005-04-08 13:33 ` pluto at pld-linux dot org
2005-04-09  2:29 ` pluto at pld-linux dot org
2005-04-11  7:49 ` jason at redhat dot com
2005-04-11  9:00 ` pluto at pld-linux dot org
2005-04-11 12:48 ` jason at redhat dot com
2005-04-11 14:44 ` pluto at pld-linux dot org
2005-04-12 10:27 ` mueller at kde dot org
2005-04-12 20:01 ` mlists at juma dot me dot uk
2005-04-13  1:10 ` mueller at kde dot org
2005-04-13  1:36 ` mueller at kde dot org
2005-04-13 16:57 ` mueller at kde dot org
2005-05-17  5:41 ` bernie at develer dot com
2005-05-18 19:38 ` jason at gcc dot gnu dot org
2005-05-18 20:45 ` bernie at develer dot com
2005-05-18 21:18 ` jason at redhat dot com
2005-05-19  9:04 ` pluto at agmk dot net
2005-05-19  9:45 ` bernie at develer dot com
2005-05-19 10:42 ` bernie at develer dot com
2005-06-23 14:44 ` cvs-commit at gcc dot gnu dot org
2005-06-24 14:11 ` pinskia at gcc dot gnu dot org
2005-07-08 14:13 ` cvs-commit at gcc dot gnu dot org
2005-09-26 23:18 ` kev dot gilbert at cdu dot edu dot au
2005-09-27  0:44 ` bangerth at dealii dot org
2005-09-27  7:28 ` kev dot gilbert at cdu dot edu dot au
2005-09-27 14:01 ` bangerth at dealii dot org
2005-09-30  1:59 ` kev dot gilbert at cdu dot edu dot au

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