This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]