The following reply was made to PR c++/7828; it has been noted by GNATS. From: =?iso-8859-1?Q?Pop_S=E9bastian?= To: Gabriel Dos Reis Cc: austern@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c++/7828: g++ 3.3: bad non-lvalue error (non_cast_lvalue_or_else) Date: Wed, 9 Oct 2002 01:51:54 +0200 On Wed, Oct 09, 2002 at 01:39:28AM +0200, Gabriel Dos Reis wrote: > Pop Sébastian writes: > > | I cannot reproduce the error with > | gcc version 3.2.1 20020924 (Debian prerelease) > | > | nor with the last cvs: > | version gcc 3.3 20021007 (experimental) > > Indeed, it was fixed by Matt -- I can't recall off hand when, > certainly somewhere in September. > > -- Gaby Maybe the following? from gcc/ChangeLog 2002-09-13 Matt Austern * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p. * cp/call.c: Change call-by-const-reference mechanism to use non_cast_lvalue_p when deciding whether the create a temporary. We need a temporary when passing, e.g. (long) x by const ref. * testsuite/g++.dg/other/constref[12].C: New, regression tests for passing a cast expression to a function by const reference. I think this entry should go into cp/ChangeLog ... Gaby could you fix that?