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 <[email protected]> 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 <[email protected]>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 <[email protected]> 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 >>> [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> >>> >> >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
