Strange warning in 970907

Teemu Torma tot@Trema.COM
Wed Sep 10 00:55:00 GMT 1997


In the following piece of code, gcc complains about returning
reference to local variable, even though the local variable is already
a reference.  2.7.2 works ok.

x.cc: In function `int & bug2()':
x.cc:5: warning: reference to local variable `bug' returned

----------------------------------------------------------------------
extern int &bug1 ();

int &bug2 ()
{
  int &bug = bug1 ();
  return bug;
}
----------------------------------------------------------------------
$ gcc -v -c x.cc
Reading specs from /usr/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.06/specs
gcc version egcs-2.90.06 970907 (gcc2-970802 experimental)
 /usr/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.06/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -D__EXCEPTIONS -D__sparc_v9__ x.cc /var/tmp/cca003Yr.ii
GNU CPP version egcs-2.90.06 970907 (gcc2-970802 experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/gnu/lib/g++-include
 /usr/local/include
 /usr/gnu/sparc-sun-solaris2.5.1/include
 /usr/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.06/include
 /usr/include
End of search list.
 /usr/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.06/cc1plus /var/tmp/cca003Yr.ii -quiet -dumpbase x.cc -version -o /var/tmp/cca003Yr.s
GNU C++ version egcs-2.90.06 970907 (gcc2-970802 experimental) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.06 970907 (gcc2-970802 experimental).
x.cc: In function `int & bug2()':
x.cc:5: warning: reference to local variable `bug' returned
 /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -o x.o /var/tmp/cca003Yr.s
/usr/ccs/bin/as: SC4.2 dev 30 Nov 1995
----------------------------------------------------------------------

Teemu



More information about the Gcc-bugs mailing list