================
@@ -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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits