diff options
author | Anastasia Stulova <anastasia.stulova@arm.com> | 2019-01-04 11:50:36 +0000 |
---|---|---|
committer | Anastasia Stulova <anastasia.stulova@arm.com> | 2019-01-04 11:50:36 +0000 |
commit | 4cebc9db04a29a8491b59e8178b4100d3c1a9c84 (patch) | |
tree | bc070ee7f98751dcdf5fb0d4bd0b851e3b42d6cb /clang/lib/AST/ASTDiagnostic.cpp | |
parent | c6ed91e100fad24ccfd6602997879c0f543f4935 (diff) | |
download | bcm5719-llvm-4cebc9db04a29a8491b59e8178b4100d3c1a9c84.tar.gz bcm5719-llvm-4cebc9db04a29a8491b59e8178b4100d3c1a9c84.zip |
[Basic] Extend DiagnosticEngine to store and format Qualifiers.
Qualifiers can now be streamed into the DiagnosticEngine using
regular << operator. If Qualifiers are empty 'unqualified' will
be printed in the diagnostic otherwise regular qual syntax is
used.
Differential Revision: https://reviews.llvm.org/D56198
llvm-svn: 350386
Diffstat (limited to 'clang/lib/AST/ASTDiagnostic.cpp')
-rw-r--r-- | clang/lib/AST/ASTDiagnostic.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp index 50d2d2999e5..dd058555857 100644 --- a/clang/lib/AST/ASTDiagnostic.cpp +++ b/clang/lib/AST/ASTDiagnostic.cpp @@ -334,6 +334,20 @@ void clang::FormatASTNodeDiagnosticArgument( switch (Kind) { default: llvm_unreachable("unknown ArgumentKind"); + case DiagnosticsEngine::ak_qual: { + assert(Modifier.empty() && Argument.empty() && + "Invalid modifier for Qualfiers argument"); + + Qualifiers Q(Qualifiers::fromOpaqueValue(Val)); + auto S = Q.getAsString(); + if (S.empty()) { + OS << "unqualified"; + NeedQuotes = false; + } else { + OS << Q.getAsString(); + } + break; + } case DiagnosticsEngine::ak_qualtype_pair: { TemplateDiffTypes &TDT = *reinterpret_cast<TemplateDiffTypes*>(Val); QualType FromType = |