Is this a bug?

Ritzert@t-online.de Ritzert@t-online.de
Fri Aug 30 02:41:00 GMT 2002


Hi all,

Since 2002-08-26 I'm unable to compile STLPort with gcc HEAD. I have
stripped down the STLPort code to this small testcase:

# cat x.cpp
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b)
        { return __a < __b ? __b : __a; }

void append()
{
        const unsigned __old_size = 3;
        int __n = 7;
        max(__old_size, static_cast<unsigned>(__n));
}

# gcc -c x.cpp
x.cpp: In function `void append()':
x.cpp:9: error: non-lvalue in unary `&'

The patch causing this seems to be
2002-08-24  Matt Austern  <austern@apple.com>

	* tree.c (lvalue_p_1): Add argument for whether casts of lvalues
	are allowable.
	(real_lvalue_p): Update caller.
	(lvalue_p): Ditto.
	(non_cast_lvalue_or_else): New.
	* tree.h: Declare it.
	* typeck.c (build_unary_op): Use non_cast_lvalue_or_else.

The ChangeLog to the previous successful build is rather small with
this being the only patch that looks suspicious to me.

If this is considered a bug, just tell me and I'll file a bug report
for it. (Or fix it before I get the chance to do so ;-) ).

Regards,
Michael



More information about the Gcc-bugs mailing list