From cc74390799635f3135095d722af048ac0e384ed5 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Mon, 24 Nov 2025 14:27:14 +0100 Subject: [PATCH] C++: Add dmd::printInstantiationTrace to compiler interface --- compiler/src/dmd/cxxfrontend.d | 5 +++++ compiler/src/dmd/template.h | 1 + compiler/src/tests/cxxfrontend.cc | 1 + 3 files changed, 7 insertions(+) diff --git a/compiler/src/dmd/cxxfrontend.d b/compiler/src/dmd/cxxfrontend.d index 004bc3fcb626..048bc2d612c6 100644 --- a/compiler/src/dmd/cxxfrontend.d +++ b/compiler/src/dmd/cxxfrontend.d @@ -354,6 +354,11 @@ void printTemplateStats(bool listInstances, ErrorSink eSink) return dmd.dtemplate.printTemplateStats(listInstances, eSink); } +void printInstantiationTrace(TemplateInstance ti) +{ + return ti.printInstantiationTrace(); +} + /*********************************************************** * dtoh.d */ diff --git a/compiler/src/dmd/template.h b/compiler/src/dmd/template.h index f0fba2b8d16c..c38a630d7c9b 100644 --- a/compiler/src/dmd/template.h +++ b/compiler/src/dmd/template.h @@ -293,5 +293,6 @@ namespace dmd TemplateParameter *isTemplateParameter(RootObject *o); bool isError(const RootObject *const o); void printTemplateStats(bool listInstances, ErrorSink* eSink); + void printInstantiationTrace(TemplateInstance *ti); bool declareParameter(TemplateParameter *tp, Scope *sc); } diff --git a/compiler/src/tests/cxxfrontend.cc b/compiler/src/tests/cxxfrontend.cc index b1020e2423dc..54ecb933bcd0 100644 --- a/compiler/src/tests/cxxfrontend.cc +++ b/compiler/src/tests/cxxfrontend.cc @@ -1869,6 +1869,7 @@ void template_h(TemplateParameter *tp, Scope *sc, TemplateParameters *tps, dmd::isTemplateParameter(o); dmd::isError(o); dmd::printTemplateStats(true, sink); + dmd::printInstantiationTrace (sc->tinst); } void typinf_h(Expression *e, Loc loc, Type *t, Scope *sc)