aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/IdentifierTable.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2023-05-02 16:22:40 +0200
committerSam McCall <sam.mccall@gmail.com>2023-05-04 23:24:51 +0200
commit0a532207b8696d81e46017f444bd2257347f129b (patch)
tree3270ae52950c68c2ce55266f3170de31a3aa01df /clang/lib/Basic/IdentifierTable.cpp
parentf031fc35716cd48c7b1eb32604dbba45d99c5fef (diff)
downloadllvm-0a532207b8696d81e46017f444bd2257347f129b.zip
llvm-0a532207b8696d81e46017f444bd2257347f129b.tar.gz
llvm-0a532207b8696d81e46017f444bd2257347f129b.tar.bz2
Give NullabilityKind a printing operator<<
This is more useful for debug/test than getNullabilitySpelling: - default form has uglifying underscores - non-default form crashes on NullableResult - both return unhelpfully verbose strings for Unspecified - operator<< works with gtest, formatv, etc Differential Revision: https://reviews.llvm.org/D149650
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
-rw-r--r--clang/lib/Basic/IdentifierTable.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp
index 97dc5cd..9be42c0 100644
--- a/clang/lib/Basic/IdentifierTable.cpp
+++ b/clang/lib/Basic/IdentifierTable.cpp
@@ -849,6 +849,20 @@ StringRef clang::getNullabilitySpelling(NullabilityKind kind,
llvm_unreachable("Unknown nullability kind.");
}
+llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, NullabilityKind NK) {
+ switch (NK) {
+ case NullabilityKind::NonNull:
+ return OS << "NonNull";
+ case NullabilityKind::Nullable:
+ return OS << "Nullable";
+ case NullabilityKind::NullableResult:
+ return OS << "NullableResult";
+ case NullabilityKind::Unspecified:
+ return OS << "Unspecified";
+ }
+ llvm_unreachable("Unknown nullability kind.");
+}
+
diag::kind
IdentifierTable::getFutureCompatDiagKind(const IdentifierInfo &II,
const LangOptions &LangOpts) {