This is the mail archive of the
mailing list for the GCC project.
Re: Warn when returning the address of a temporary (middle-end) v2
- From: David Malcolm <dmalcolm at redhat dot com>
- To: Marc Glisse <marc dot glisse at inria dot fr>
- Cc: Richard Sandiford <rdsandiford at googlemail dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 29 Jul 2014 14:58:03 -0400
- Subject: Re: Warn when returning the address of a temporary (middle-end) v2
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 02 dot 1406221930380 dot 20514 at stedding dot saclay dot inria dot fr> <87fvhmllc5 dot fsf at talisman dot default> <alpine dot DEB dot 2 dot 11 dot 1407291925091 dot 1585 at laptop-mg dot saclay dot inria dot fr>
On Tue, 2014-07-29 at 19:36 +0200, Marc Glisse wrote:
> On Sun, 27 Jul 2014, Richard Sandiford wrote:
> > Marc Glisse <email@example.com> writes:
> >> Hello,
> >> I followed the advice in this discussion:
> >> https://gcc.gnu.org/ml/gcc-patches/2014-04/msg00269.html
> >> and here is a new patch. I made an effort to isolate a path in at least
> >> one subcase so it doesn't look too strange that the warning is in this
> >> file. Computing the dominance info just to tweak the warning message may
> >> be a bit excessive.
> > How about only calculating it once you've decided to issue a message?
> >> + if (always_executed)
> >> + msg = "function returns address of local variable";
> >> + else
> >> + msg = "function may return address of local variable";
> > I think you need _(...) here, unless some magic makes that unnecessary now.
> Current version, which passed bootstrap+testsuite on x86_64-linux-gnu.
> (the original discussion is at
> https://gcc.gnu.org/ml/gcc-patches/2014-06/msg01692.html )
This is possibly a dumb question, but what happens for a static local,
rather than an auto local? e.g.
int *f (void)
static int i;
(e.g. should the test case cover this?)