[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 07:44:41 PDT 2013


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/107b328b/attachment.html>


More information about the cfe-commits mailing list