------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-19 23:19 ------- (In reply to comment #4) > but apparently the warning logic overlooks the same problem when returning > arguments.
Actually it cannot know and here is why, take the following example: template<class T> const T& operator |(T t1, const T& t2) { return t1 |= t2; } struct f{ f &operator|=(const f&);}; f i; f j; f h = i | j; We call |= which it self returns a reference so there is no way to the compiler to know it is actually returning a local variable or not. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21672