[cfe-dev] SIGSEGV in call to Sema::PerformPendingInstantiations() in Clang 3.2

Tom Honermann thonermann at coverity.com
Mon May 6 15:09:54 PDT 2013


On 05/06/2013 05:38 PM, Richard Smith wrote:
> On Mon, May 6, 2013 at 2:07 PM, Tom Honermann <thonermann at coverity.com
> <mailto:thonermann at coverity.com>> wrote:
>
>     This email describes a SIGSEGV I'm experiencing with Clang 3.2 when
>     calling Sema::__PerformPendingInstantiations()__.  A patch against
>     latest SVN is attached which resolves the SIGSEGV.  However, it
>     appears that the call to Sema::__PerformPendingInstantiations() is
>     resulting in a call to Sema::getCurScope() which, according to its
>     comments, should never be called during template instantiation.  The
>     purpose of this email is to:
>
>     1) Request that the attached patch be applied to SVN.  The patch is
>     trivial - it just adds missing initialization of the Sema::CurScope
>     pointer within the Sema constructor.
>
>
> Thanks, patch committed as r181251. If you have any way of testing this
> without building an additional binary, I'd appreciate it!

I briefly tried a few different ways to tickle this gremlin, but didn't 
find a clang invocation that didn't create a Parser instance.  I'll 
admit, I didn't look hard though.

>     2) Clarify whether the eventual call into Sema::getCurScope() from
>     within Sema::__PerformPendingInstantiations() represents an
>     additional bug which should be addressed.
>
>
> Generally, yes, but getScopeForContext is always allowed to call
> getCurScope.

Excellent, thanks for the clarification!

Tom.




More information about the cfe-dev mailing list