[Bug c++/61597] Unexpected behavior at runtime
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 25 20:31:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61597
--- Comment #19 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Manuel López-Ibáñez from comment #18)
> (In reply to Marc Glisse from comment #17)
> > And if func is inline,
> > it will require -fkeep-inline-functions.
>
> What is the difference between inline/not inline?
After being inlined and becoming unused, a static or inline function is
discarded (doesn't exist anymore in the pass that warns), while a regular
function still needs to be emitted and is kept.
The function in which it was inlined probably has a use of a dead variable, but
warning for that is harder, as discussed in PR 60517 (I don't think we need to
keep both open).
> > e.cc: In function 'Iter& func(Iter, int)':
> > e.cc:11:20: warning: function returns address of local variable
> > [-Wreturn-local-addr]
> > return iter += n;
> > ^
>
> Why it points to n?
I am calling warning_at with gimple_location (return_stmt).
More information about the Gcc-bugs
mailing list