================
@@ -2896,6 +2896,9 @@ class TreeTransform {
     SS.Adopt(QualifierLoc);
 
     Base = BaseResult.get();
+    if (Base->containsErrors())
+      return ExprError();
----------------
sdkrystian wrote:

@mizvekov The problems arise when we build a `MemberExpr` for a class member 
access expression with an object expression that isn't dependent (as far as 
clang is concerned), but is _indirectly_ dependent (i.e. may instantiate to an 
expression of a different type). If the object expression is transformed into a 
`RecoveryExpr`, we end up with a `MemberExpr` that has the type 
`ASTContext::DependentTy` -- which we _could_ recover from by rebuilding it as 
a `RecoveryExpr` (or `CXXDependentScopeMemberExpr`), but the simplest solution 
is to simply bail as we do in practically every other case when part of the 
class member access expression instantiates to something invalid.

https://github.com/llvm/llvm-project/pull/97455
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to