From 5561977175c04dc2bae53b0f577a5c1ca83b96ff Mon Sep 17 00:00:00 2001 From: Richard Trieu Date: Fri, 13 Jul 2012 21:18:32 +0000 Subject: [PATCH] Modify tree printing mode for template type diffing. If a diagnostic has multiple %diff's, only print the first tree and fallback to inline printing for the rest of the diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160193 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Diagnostic.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Basic/Diagnostic.cpp b/lib/Basic/Diagnostic.cpp index 6e79b85a99..cfc07b8b4e 100644 --- a/lib/Basic/Diagnostic.cpp +++ b/lib/Basic/Diagnostic.cpp @@ -844,8 +844,9 @@ FormatDiagnostic(const char *DiagStr, const char *DiagEnd, const char *ArgumentEnd = Argument + ArgumentLen; const char *Pipe = ScanFormat(Argument, ArgumentEnd, '|'); - // Print the tree. - if (getDiags()->PrintTemplateTree) { + // Print the tree. If this diagnostic already has a tree, skip the + // second tree. + if (getDiags()->PrintTemplateTree && Tree.empty()) { TDT.PrintFromType = true; TDT.PrintTree = true; getDiags()->ConvertArgToString(Kind, val, -- 2.40.0