This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/50056] New: Binding a temporary object to a reference
- From: "wolfgang dot roehrl at gi-de dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 12 Aug 2011 12:35:50 +0000
- Subject: [Bug c++/50056] New: Binding a temporary object to a reference
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50056
Bug #: 50056
Summary: Binding a temporary object to a reference
Classification: Unclassified
Product: gcc
Version: 4.5.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: wolfgang.roehrl@gi-de.com
Hi all,
I would like to post a bug report for the GNU C/C++ compiler
version 4.5.2 (powerpc-rtems4.11).
We use the compiler to generate code for a PowerPC processor.
The compiler is invoked with the following options:
ccppc -c -x c++ -ansi -Wall -Werror -g -mcpu=8540 -fverbose-asm -mbig
-mfloat-gprs=double -mspe -mabi=spe -meabi -msdata -fno-common
-mmultiple -mno-string -misel -mstrict-align -fgcse-sm
-fno-rename-registers -fno-section-anchors -G 8 -Os
-fno-exceptions -fno-rtti
-I<some include paths>
-D<some #define's>
X.CPP -oX.O
// file X.CPP
struct S
{
S();
~S();
void func () const;
};
void test (void)
{
const S& s = static_cast<const S&>(S());
s.func ();
}
The code compiles fine but function test() is translated to the following
pseudo code:
call S::S()
call S::~S() --> now we have a dangling reference s without an object
call S::func() --> calling an element function without an object
Kind regards
W. Roehrl