This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/26671] New: Missing "warning: reference to local variable returned"
- From: "carolh at sinavigator dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Mar 2006 23:59:57 -0000
- Subject: [Bug c++/26671] New: Missing "warning: reference to local variable returned"
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
class test
{
public:
int secondMember;
};
class test2
{
public:
int requiredForTest;
int secondMember;
};
int &
returnRefToLocalOK()
{
test local;
return local.secondMember;
}
int &
returnRefToLocalMissing()
{
test2 local;
return local.secondMember;
}
int
main()
{
return returnRefToLocalOK();
return returnRefToLocalMissing();
}
===========
gcc fails to generate the warning "reference to local variable returned" for
function returnRefToLocalMissing().
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/specs
Configured with: ../configure
Thread model: posix
gcc version 3.3.6
the command line and resulting output:
gcc test.cc
test.cc: In function `int& returnRefToLocalOK()':
test.cc:16: warning: reference to local variable `local' returned
the preprocessed file:
# 1 "test.cc"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "test.cc"
class test
{
public:
int secondMember;
};
class test2
{
public:
int requiredForTest;
int secondMember;
};
int &
returnRefToLocalOK()
{
test local;
return local.secondMember;
}
int &
returnRefToLocalMissing()
{
test2 local;
return local.secondMember;
}
int
main()
{
return returnRefToLocalOK();
return returnRefToLocalMissing();
}
Also occurs in gcc versions 3.3.3 through 3.3.5.
--
Summary: Missing "warning: reference to local variable returned"
Product: gcc
Version: 3.3.6
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: carolh at sinavigator dot com
GCC host triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26671