================
@@ -315,6 +318,28 @@ ExprDependence clang::computeDependence(CXXUuidofExpr *E) {
return turnTypeToValueDependence(E->getExprOperand()->getDependence());
}
+ExprDependence clang::computeDependence(CXXReflectExpr *E) {
+ QualType QT = E->getTypeSourceInfo()->getType();
+ ExprDependence D =
+
turnTypeToValueDependence(toExprDependenceAsWritten(QT->getDependence()));
+ if (isTypeAliasAsReflectionName(QT)) {
+ const NamedDecl *Alias;
+ if (const auto *T = dyn_cast<TypedefType>(QT.getTypePtr())) {
+ Alias = T->getDecl();
+ } else {
+ const auto *TST = cast<TemplateSpecializationType>(QT.getTypePtr());
+ Alias = TST->getTemplateName().getAsTemplateDecl();
+ for (const auto &Arg : TST->template_arguments())
+ if (Arg.isDependent())
+ D |= ExprDependence::ValueInstantiation;
----------------
Sirraide wrote:
I believe packs are expanded in tree transform before we get here
https://github.com/llvm/llvm-project/pull/232074
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits