================ @@ -1981,8 +1983,16 @@ static ExtractedTypeTraitInfo ExtractTypeTraitFromExpression(const Expr *E) { Trait = StdNameToTypeTrait(Name); if (!Trait) return std::nullopt; - for (const auto &Arg : VD->getTemplateArgs().asArray()) - Args.push_back(Arg.getAsType()); + for (const auto &Arg : VD->getTemplateArgs().asArray()) { + if (Arg.getKind() == TemplateArgument::ArgKind::Pack) { + for (const auto &InnerArg : Arg.pack_elements()) + Args.push_back(InnerArg.getAsType()); + } else if (Arg.getKind() == TemplateArgument::ArgKind::Type) + Args.push_back(Arg.getAsType()); + assert((Arg.getKind() == TemplateArgument::ArgKind::Type || ---------------- erichkeane wrote:
I'd suggest just putting an `llvm_unreachable` in the `else` branch instead. https://github.com/llvm/llvm-project/pull/143309 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits