This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] pthread_cleanup_push macro generates warning when -Wclobbered is set
On Tue, 14 Nov 2017, Florian Weimer wrote:
> On 11/14/2017 10:47 PM, Joseph Myers wrote:
> > On Tue, 14 Nov 2017, Florian Weimer wrote:
> >
> > > Your test case already used an indirect call before the change with GCC 7.
> > > I
> > > think we should try to fix this in GCC. GCC 4.8 used to generate a direct
> > > call here, so this is a minor regression in the area of security
> > > hardening.
> >
> > How do you suggest the compiler could tell that longjmp is only ever
> > called from the same iteration of the outer loop as setjmp?
>
> I'm not sure if I understand your question correctly.
>
> The jump buffer does not even live as long as one iteration of the loop, so it
> necessarily has to be the same iteration.
The "returns twice" information in GCC does not link the possible second
return to the lifetime of a particular object.
Would that be extended in some way that introduces such a linkage?
Special knowledge about __sigsetjmp, or an extension to the returns_twice
attribute (cf. bug 20382 noting how glibc relies on such special knowledge
at present and doesn't have such attributes in its headers)?
--
Joseph S. Myers
joseph@codesourcery.com