diff options
author | Sam McCall <sam.mccall@gmail.com> | 2023-05-08 13:07:11 +0200 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2023-05-08 13:07:11 +0200 |
commit | 14f0776550b5a49e1c42f49a00213f7f3fa047bf (patch) | |
tree | 61008e62ee9355dc4f54966bb66709274963c4ad /clang/lib/Basic | |
parent | 77bc5cc658a3b57a1fffbcb0490988ce7047d5b9 (diff) | |
download | llvm-14f0776550b5a49e1c42f49a00213f7f3fa047bf.zip llvm-14f0776550b5a49e1c42f49a00213f7f3fa047bf.tar.gz llvm-14f0776550b5a49e1c42f49a00213f7f3fa047bf.tar.bz2 |
Reland "Give NullabilityKind a printing operator<<"
This reverts commit 5326c9e480d70e16c2504cb5143524aff3ee2605.
The problem that caused the revert was downstream
(missing dep in user of clang).
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 28 | ||||
-rw-r--r-- | clang/lib/Basic/IdentifierTable.cpp | 14 |
2 files changed, 20 insertions, 22 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index 3474acbc..b2106b0 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -43,28 +43,12 @@ using namespace clang; const StreamingDiagnostic &clang::operator<<(const StreamingDiagnostic &DB, DiagNullabilityKind nullability) { - StringRef string; - switch (nullability.first) { - case NullabilityKind::NonNull: - string = nullability.second ? "'nonnull'" : "'_Nonnull'"; - break; - - case NullabilityKind::Nullable: - string = nullability.second ? "'nullable'" : "'_Nullable'"; - break; - - case NullabilityKind::Unspecified: - string = nullability.second ? "'null_unspecified'" : "'_Null_unspecified'"; - break; - - case NullabilityKind::NullableResult: - assert(!nullability.second && - "_Nullable_result isn't supported as context-sensitive keyword"); - string = "_Nullable_result"; - break; - } - - DB.AddString(string); + DB.AddString( + ("'" + + getNullabilitySpelling(nullability.first, + /*isContextSensitive=*/nullability.second) + + "'") + .str()); return DB; } 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) { |