summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Diagnostic.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2012-07-10 01:46:04 +0000
committerRichard Trieu <rtrieu@google.com>2012-07-10 01:46:04 +0000
commit50f5f46a93a5089213a964c714f894ce4a4b572f (patch)
tree51166db1c96f45ea88a9078df4798abcbb6485b7 /clang/lib/Basic/Diagnostic.cpp
parentcc0c4d4ae79421067dc1b9c7d30dd631d6fd605c (diff)
downloadbcm5719-llvm-50f5f46a93a5089213a964c714f894ce4a4b572f.tar.gz
bcm5719-llvm-50f5f46a93a5089213a964c714f894ce4a4b572f.zip
Properly update the FormattedArgs vector when the template type diffing falls
back to regular type printing. llvm-svn: 159976
Diffstat (limited to 'clang/lib/Basic/Diagnostic.cpp')
-rw-r--r--clang/lib/Basic/Diagnostic.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp
index d5ccd64f875..fdc37b63cba 100644
--- a/clang/lib/Basic/Diagnostic.cpp
+++ b/clang/lib/Basic/Diagnostic.cpp
@@ -821,6 +821,7 @@ FormatDiagnostic(const char *DiagStr, const char *DiagEnd,
TDT.ToType = getRawArg(ArgNo2);
TDT.ElideType = getDiags()->ElideType;
TDT.ShowColors = getDiags()->ShowColors;
+ TDT.TemplateDiffUsed = false;
intptr_t val = reinterpret_cast<intptr_t>(&TDT);
const char *ArgumentEnd = Argument + ArgumentLen;
@@ -859,6 +860,10 @@ FormatDiagnostic(const char *DiagStr, const char *DiagEnd,
Argument, ArgumentLen,
FormattedArgs.data(), FormattedArgs.size(),
OutStr, QualTypeVals);
+ if (!TDT.TemplateDiffUsed)
+ FormattedArgs.push_back(std::make_pair(DiagnosticsEngine::ak_qualtype,
+ TDT.FromType));
+
// Append middle text
FormatDiagnostic(FirstDollar + 1, SecondDollar, OutStr);
@@ -869,6 +874,10 @@ FormatDiagnostic(const char *DiagStr, const char *DiagEnd,
Argument, ArgumentLen,
FormattedArgs.data(), FormattedArgs.size(),
OutStr, QualTypeVals);
+ if (!TDT.TemplateDiffUsed)
+ FormattedArgs.push_back(std::make_pair(DiagnosticsEngine::ak_qualtype,
+ TDT.ToType));
+
// Append end text
FormatDiagnostic(SecondDollar + 1, Pipe, OutStr);
break;
OpenPOWER on IntegriCloud