================ @@ -19849,11 +19849,14 @@ static void DoMarkVarDeclReferenced( SemaRef.InstantiateVariableDefinition(PointOfInstantiation, Var); }); - // Re-set the member to trigger a recomputation of the dependence bits - // for the expression. - if (auto *DRE = dyn_cast_or_null<DeclRefExpr>(E)) + if (auto *DRE = dyn_cast_or_null<DeclRefExpr>(E)) { + // Re-set the member to trigger a recomputation of the dependence bits + // for the expression. DRE->setDecl(DRE->getDecl()); - else if (auto *ME = dyn_cast_or_null<MemberExpr>(E)) + if (SemaRef.Context.getAsIncompleteArrayType(DRE->getType()) && + !SemaRef.Context.getAsIncompleteArrayType(Var->getType())) + DRE->setType(Var->getType()); + } else if (auto *ME = dyn_cast_or_null<MemberExpr>(E)) ---------------- zyn0217 wrote:
> it feels too late Hmm. This is the last place where we know the DeclRefExpr that needs an update, (The instantiation doesn't care the DeclRefExpr) and the instantiation happens right before these lines https://github.com/llvm/llvm-project/pull/133212 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits