[PATCH] To fix an assertion crash within a member template of a non-template class in ms-compatibility & delayed template parsing

Faisal Vali faisalv at gmail.com
Wed Apr 24 09:49:10 PDT 2013


Of course, that approach seems to work!

Patch is attached - thanks!


Faisal Vali



On Wed, Apr 24, 2013 at 9:58 AM, Richard Smith <richard at metafoo.co.uk>wrote:

> Hmm, OK, I see. I think we should just not be calling
> ActOnDependentIdExpression here in the first place. That is trying to cope
> with access to a member of 'this' in a dependent base class, and there are
> no dependent base classes. In ActOnIdExpression, we should be looking at
> whether the class is a dependent context (or, better, whether it has
> dependent bases), not whether the method is.
>
>
> On Wed, Apr 24, 2013 at 7:44 AM, Faisal Vali <faisalv at gmail.com> wrote:
>
>> But that doesn't catch the case where the qualifier is the containing
>> class itself (A::XX) i.e which also causes an assertion violation - for
>> e.g. this does not work:
>>
>>  const bool IsInMicrosoftModeWithoutAQualifierLoc =
>>                   getSema().getLangOpts().MicrosoftMode &&
>>                   !QualifierLoc.getNestedNameSpecifier();
>>
>> Any thoughts?
>>
>> thanks!
>>
>> Faisal Vali
>>
>>
>>
>> On Wed, Apr 24, 2013 at 6:57 AM, Richard Smith <richard at metafoo.co.uk>wrote:
>>
>>> Hi!
>>>
>>> E->isTypeDependent() will always be true for a
>>> CXXDependentScopeMemberExpr, so the patch would just turn off the
>>> optimization in MicrosoftMode. I think the right thing to check here is
>>> that we have a QualifierLoc.
>>>
>>>
>>> On Wed, Apr 24, 2013 at 4:29 AM, Faisal Vali <faisalv at gmail.com> wrote:
>>>
>>>> Hi Richard,
>>>>     was working on the TemplateParameterDepth patch and while crafting
>>>> some tests, I stumbled upon an assertion violation out of CodeGen for the
>>>> following code compiled with -fms-compatibility and
>>>> -fdelayed-template-parsing
>>>>
>>>> Once again, this might be a very narrow fix, and there might be a more
>>>> general way to address this issue - so welcome the feedback.
>>>>
>>>> Thanks!
>>>> Faisal Vali
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130424/2ebef4c5/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rs-feedback-ms-compatibility-name-lookup-in-member-template.patch
Type: application/octet-stream
Size: 3598 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130424/2ebef4c5/attachment.obj>


More information about the cfe-commits mailing list