diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp --- a/bolt/lib/Profile/DataAggregator.cpp +++ b/bolt/lib/Profile/DataAggregator.cpp @@ -2233,7 +2233,7 @@ OutFile << "boltedcollection\n"; if (opts::BasicAggregation) { OutFile << "no_lbr"; - for (const StringMapEntry &Entry : EventNames) + for (const StringMapEntry &Entry : EventNames) OutFile << " " << Entry.getKey(); OutFile << "\n"; diff --git a/bolt/lib/Profile/YAMLProfileWriter.cpp b/bolt/lib/Profile/YAMLProfileWriter.cpp --- a/bolt/lib/Profile/YAMLProfileWriter.cpp +++ b/bolt/lib/Profile/YAMLProfileWriter.cpp @@ -161,7 +161,7 @@ StringSet<> EventNames = RI.getProfileReader()->getEventNames(); if (!EventNames.empty()) { std::string Sep; - for (const StringMapEntry &EventEntry : EventNames) { + for (const StringMapEntry &EventEntry : EventNames) { BP.Header.EventNames += Sep + EventEntry.first().str(); Sep = ","; } diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp --- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp @@ -214,7 +214,7 @@ public: explicit NameLookup(const NamedDecl *ND) : Data(ND, false) {} - explicit NameLookup(llvm::NoneType) : Data(nullptr, true) {} + explicit NameLookup(std::nullopt_t) : Data(nullptr, true) {} explicit NameLookup(std::nullptr_t) : Data(nullptr, false) {} NameLookup() : NameLookup(nullptr) {} diff --git a/clang-tools-extra/clangd/support/ThreadsafeFS.h b/clang-tools-extra/clangd/support/ThreadsafeFS.h --- a/clang-tools-extra/clangd/support/ThreadsafeFS.h +++ b/clang-tools-extra/clangd/support/ThreadsafeFS.h @@ -30,7 +30,7 @@ /// Obtain a vfs::FileSystem with an arbitrary initial working directory. llvm::IntrusiveRefCntPtr - view(llvm::NoneType CWD) const { + view(std::nullopt_t CWD) const { return viewImpl(); } diff --git a/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h b/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h --- a/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h +++ b/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h @@ -48,7 +48,7 @@ /// Set the bit associated with a particular CFGBlock. /// This is the important method for the SetType template parameter. - std::pair insert(const CFGBlock *Block) { + std::pair insert(const CFGBlock *Block) { // Note that insert() is called by po_iterator, which doesn't check to // make sure that Block is non-null. Moreover, the CFGBlock iterator will // occasionally hand out null pointers for pruned edges, so we catch those diff --git a/clang/include/clang/Basic/DirectoryEntry.h b/clang/include/clang/Basic/DirectoryEntry.h --- a/clang/include/clang/Basic/DirectoryEntry.h +++ b/clang/include/clang/Basic/DirectoryEntry.h @@ -264,13 +264,14 @@ OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr & operator=(const OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr &) = default; - OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(llvm::NoneType) {} + OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {} OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(DirectoryEntryRef Ref) : Optional(Ref) {} OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(Optional MaybeRef) : Optional(MaybeRef) {} - OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr &operator=(llvm::NoneType) { + OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr & + operator=(std::nullopt_t) { Optional::operator=(None); return *this; } diff --git a/clang/include/clang/Basic/FileEntry.h b/clang/include/clang/Basic/FileEntry.h --- a/clang/include/clang/Basic/FileEntry.h +++ b/clang/include/clang/Basic/FileEntry.h @@ -308,13 +308,13 @@ OptionalFileEntryRefDegradesToFileEntryPtr & operator=(const OptionalFileEntryRefDegradesToFileEntryPtr &) = default; - OptionalFileEntryRefDegradesToFileEntryPtr(llvm::NoneType) {} + OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {} OptionalFileEntryRefDegradesToFileEntryPtr(FileEntryRef Ref) : Optional(Ref) {} OptionalFileEntryRefDegradesToFileEntryPtr(Optional MaybeRef) : Optional(MaybeRef) {} - OptionalFileEntryRefDegradesToFileEntryPtr &operator=(llvm::NoneType) { + OptionalFileEntryRefDegradesToFileEntryPtr &operator=(std::nullopt_t) { Optional::operator=(None); return *this; } diff --git a/clang/include/clang/Sema/Template.h b/clang/include/clang/Sema/Template.h --- a/clang/include/clang/Sema/Template.h +++ b/clang/include/clang/Sema/Template.h @@ -222,7 +222,7 @@ TemplateArgumentLists.push_back({{}, Args}); } - void addOuterTemplateArguments(llvm::NoneType) { + void addOuterTemplateArguments(std::nullopt_t) { assert(!NumRetainedOuterLevels && "substituted args outside retained args?"); TemplateArgumentLists.push_back({}); diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -7044,14 +7044,14 @@ // Emit an unsupported bit_cast type error. Sema refuses to build a bit_cast // with an invalid type, so anything left is a deficiency on our part (FIXME). // Ideally this will be unreachable. - llvm::NoneType unsupportedType(QualType Ty) { + std::nullopt_t unsupportedType(QualType Ty) { Info.FFDiag(BCE->getBeginLoc(), diag::note_constexpr_bit_cast_unsupported_type) << Ty; return None; } - llvm::NoneType unrepresentableValue(QualType Ty, const APSInt &Val) { + std::nullopt_t unrepresentableValue(QualType Ty, const APSInt &Val) { Info.FFDiag(BCE->getBeginLoc(), diag::note_constexpr_bit_cast_unrepresentable_value) << Ty << toString(Val, /*Radix=*/10); diff --git a/clang/lib/Tooling/Transformer/Parsing.cpp b/clang/lib/Tooling/Transformer/Parsing.cpp --- a/clang/lib/Tooling/Transformer/Parsing.cpp +++ b/clang/lib/Tooling/Transformer/Parsing.cpp @@ -152,7 +152,7 @@ // Parses a single expected character \c c from \c State, skipping preceding // whitespace. Error if the expected character isn't found. -static ExpectedProgress parseChar(char c, ParseState State) { +static ExpectedProgress parseChar(char c, ParseState State) { State.Input = consumeWhitespace(State.Input); if (State.Input.empty() || State.Input.front() != c) return makeParseError(State, diff --git a/lldb/include/lldb/Utility/Timeout.h b/lldb/include/lldb/Utility/Timeout.h --- a/lldb/include/lldb/Utility/Timeout.h +++ b/lldb/include/lldb/Utility/Timeout.h @@ -36,7 +36,7 @@ using Base = llvm::Optional>; public: - Timeout(llvm::NoneType none) : Base(none) {} + Timeout(std::nullopt_t none) : Base(none) {} template ::type> diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h @@ -1157,7 +1157,7 @@ /// Alias for requesting the default scratch TypeSystemClang in GetForTarget. // This isn't constexpr as gtest/llvm::Optional comparison logic is trying // to get the address of this for pretty-printing. - static const llvm::NoneType DefaultAST; + static const std::nullopt_t DefaultAST; /// Infers the appropriate sub-AST from Clang's LangOptions. static llvm::Optional diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -9890,7 +9890,7 @@ } // namespace char ScratchTypeSystemClang::ID; -const llvm::NoneType ScratchTypeSystemClang::DefaultAST = llvm::None; +const std::nullopt_t ScratchTypeSystemClang::DefaultAST = llvm::None; ScratchTypeSystemClang::ScratchTypeSystemClang(Target &target, llvm::Triple triple) diff --git a/llvm/include/llvm/ADT/ArrayRef.h b/llvm/include/llvm/ADT/ArrayRef.h --- a/llvm/include/llvm/ADT/ArrayRef.h +++ b/llvm/include/llvm/ADT/ArrayRef.h @@ -68,7 +68,7 @@ /*implicit*/ ArrayRef() = default; /// Construct an empty ArrayRef from None. - /*implicit*/ ArrayRef(NoneType) {} + /*implicit*/ ArrayRef(std::nullopt_t) {} /// Construct an ArrayRef from a single element. /*implicit*/ ArrayRef(const T &OneElt) @@ -321,7 +321,7 @@ /*implicit*/ MutableArrayRef() = default; /// Construct an empty MutableArrayRef from None. - /*implicit*/ MutableArrayRef(NoneType) : ArrayRef() {} + /*implicit*/ MutableArrayRef(std::nullopt_t) : ArrayRef() {} /// Construct a MutableArrayRef from a single element. /*implicit*/ MutableArrayRef(T &OneElt) : ArrayRef(OneElt) {} diff --git a/llvm/include/llvm/ADT/Optional.h b/llvm/include/llvm/ADT/Optional.h --- a/llvm/include/llvm/ADT/Optional.h +++ b/llvm/include/llvm/ADT/Optional.h @@ -239,7 +239,7 @@ using value_type = T; constexpr Optional() = default; - constexpr Optional(NoneType) {} + constexpr Optional(std::nullopt_t) {} constexpr Optional(const T &y) : Storage(std::in_place, y) {} constexpr Optional(const Optional &O) = default; @@ -396,58 +396,62 @@ } template -constexpr bool operator==(const Optional &X, NoneType) { +constexpr bool operator==(const Optional &X, std::nullopt_t) { return !X; } template -constexpr bool operator==(NoneType, const Optional &X) { +constexpr bool operator==(std::nullopt_t, const Optional &X) { return X == None; } template -constexpr bool operator!=(const Optional &X, NoneType) { +constexpr bool operator!=(const Optional &X, std::nullopt_t) { return !(X == None); } template -constexpr bool operator!=(NoneType, const Optional &X) { +constexpr bool operator!=(std::nullopt_t, const Optional &X) { return X != None; } -template constexpr bool operator<(const Optional &, NoneType) { +template +constexpr bool operator<(const Optional &, std::nullopt_t) { return false; } -template constexpr bool operator<(NoneType, const Optional &X) { +template +constexpr bool operator<(std::nullopt_t, const Optional &X) { return X.has_value(); } template -constexpr bool operator<=(const Optional &X, NoneType) { +constexpr bool operator<=(const Optional &X, std::nullopt_t) { return !(None < X); } template -constexpr bool operator<=(NoneType, const Optional &X) { +constexpr bool operator<=(std::nullopt_t, const Optional &X) { return !(X < None); } -template constexpr bool operator>(const Optional &X, NoneType) { +template +constexpr bool operator>(const Optional &X, std::nullopt_t) { return None < X; } -template constexpr bool operator>(NoneType, const Optional &X) { +template +constexpr bool operator>(std::nullopt_t, const Optional &X) { return X < None; } template -constexpr bool operator>=(const Optional &X, NoneType) { +constexpr bool operator>=(const Optional &X, std::nullopt_t) { return None <= X; } template -constexpr bool operator>=(NoneType, const Optional &X) { +constexpr bool operator>=(std::nullopt_t, const Optional &X) { return X <= None; } @@ -511,7 +515,7 @@ return !(X < Y); } -raw_ostream &operator<<(raw_ostream &OS, NoneType); +raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t); template () << std::declval())> diff --git a/llvm/include/llvm/ADT/StringMapEntry.h b/llvm/include/llvm/ADT/StringMapEntry.h --- a/llvm/include/llvm/ADT/StringMapEntry.h +++ b/llvm/include/llvm/ADT/StringMapEntry.h @@ -85,13 +85,14 @@ void setValue(const ValueTy &V) { second = V; } }; -template <> class StringMapEntryStorage : public StringMapEntryBase { +template <> +class StringMapEntryStorage : public StringMapEntryBase { public: - explicit StringMapEntryStorage(size_t keyLength, NoneType = None) + explicit StringMapEntryStorage(size_t keyLength, std::nullopt_t = None) : StringMapEntryBase(keyLength) {} StringMapEntryStorage(StringMapEntryStorage &entry) = delete; - NoneType getValue() const { return None; } + std::nullopt_t getValue() const { return None; } }; /// StringMapEntry - This is used to represent one value that is inserted into diff --git a/llvm/include/llvm/ADT/StringSet.h b/llvm/include/llvm/ADT/StringSet.h --- a/llvm/include/llvm/ADT/StringSet.h +++ b/llvm/include/llvm/ADT/StringSet.h @@ -20,8 +20,8 @@ /// StringSet - A wrapper for StringMap that provides set-like functionality. template -class StringSet : public StringMap { - using Base = StringMap; +class StringSet : public StringMap { + using Base = StringMap; public: StringSet() = default; diff --git a/llvm/include/llvm/FuzzMutate/OpDescriptor.h b/llvm/include/llvm/FuzzMutate/OpDescriptor.h --- a/llvm/include/llvm/FuzzMutate/OpDescriptor.h +++ b/llvm/include/llvm/FuzzMutate/OpDescriptor.h @@ -57,7 +57,7 @@ public: /// Create a fully general source predicate. SourcePred(PredT Pred, MakeT Make) : Pred(Pred), Make(Make) {} - SourcePred(PredT Pred, NoneType) : Pred(Pred) { + SourcePred(PredT Pred, std::nullopt_t) : Pred(Pred) { Make = [Pred](ArrayRef Cur, ArrayRef BaseTypes) { // Default filter just calls Pred on each of the base types. std::vector Result; diff --git a/llvm/include/llvm/Support/SMLoc.h b/llvm/include/llvm/Support/SMLoc.h --- a/llvm/include/llvm/Support/SMLoc.h +++ b/llvm/include/llvm/Support/SMLoc.h @@ -50,7 +50,7 @@ SMLoc Start, End; SMRange() = default; - SMRange(NoneType) {} + SMRange(std::nullopt_t) {} SMRange(SMLoc St, SMLoc En) : Start(St), End(En) { assert(Start.isValid() == End.isValid() && "Start and End should either both be valid or both be invalid!"); diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -33,7 +33,7 @@ const char *End = nullptr; public: - Cursor(NoneType) {} + Cursor(std::nullopt_t) {} explicit Cursor(StringRef Str) { Ptr = Str.data(); diff --git a/llvm/lib/Support/Optional.cpp b/llvm/lib/Support/Optional.cpp --- a/llvm/lib/Support/Optional.cpp +++ b/llvm/lib/Support/Optional.cpp @@ -9,6 +9,6 @@ #include "llvm/ADT/Optional.h" #include "llvm/Support/raw_ostream.h" -llvm::raw_ostream &llvm::operator<<(raw_ostream &OS, NoneType) { +llvm::raw_ostream &llvm::operator<<(raw_ostream &OS, std::nullopt_t) { return OS << "None"; } diff --git a/mlir/include/mlir/IR/OpDefinition.h b/mlir/include/mlir/IR/OpDefinition.h --- a/mlir/include/mlir/IR/OpDefinition.h +++ b/mlir/include/mlir/IR/OpDefinition.h @@ -41,7 +41,7 @@ OptionalParseResult(ParseResult result) : impl(result) {} OptionalParseResult(const InFlightDiagnostic &) : OptionalParseResult(failure()) {} - OptionalParseResult(llvm::NoneType) : impl(llvm::None) {} + OptionalParseResult(std::nullopt_t) : impl(llvm::None) {} /// Returns true if we contain a valid ParseResult value. bool has_value() const { return impl.has_value(); } diff --git a/mlir/include/mlir/IR/OperationSupport.h b/mlir/include/mlir/IR/OperationSupport.h --- a/mlir/include/mlir/IR/OperationSupport.h +++ b/mlir/include/mlir/IR/OperationSupport.h @@ -490,7 +490,7 @@ using size_type = size_t; NamedAttrList() : dictionarySorted({}, true) {} - NamedAttrList(llvm::NoneType none) : NamedAttrList() {} + NamedAttrList(std::nullopt_t none) : NamedAttrList() {} NamedAttrList(ArrayRef attributes); NamedAttrList(DictionaryAttr attributes); NamedAttrList(const_iterator inStart, const_iterator inEnd); @@ -759,7 +759,7 @@ class OpPrintingFlags { public: OpPrintingFlags(); - OpPrintingFlags(llvm::NoneType) : OpPrintingFlags() {} + OpPrintingFlags(std::nullopt_t) : OpPrintingFlags() {} /// Enables the elision of large elements attributes by printing a lexically /// valid but otherwise meaningless form instead of the element data. The diff --git a/mlir/include/mlir/Support/Timing.h b/mlir/include/mlir/Support/Timing.h --- a/mlir/include/mlir/Support/Timing.h +++ b/mlir/include/mlir/Support/Timing.h @@ -43,7 +43,7 @@ /// This is a POD type with pointer size, so it should be passed around by /// value. The underlying data is owned by the `TimingManager`. class TimingIdentifier { - using EntryType = llvm::StringMapEntry; + using EntryType = llvm::StringMapEntry; public: TimingIdentifier(const TimingIdentifier &) = default; diff --git a/mlir/lib/Support/Timing.cpp b/mlir/lib/Support/Timing.cpp --- a/mlir/lib/Support/Timing.cpp +++ b/mlir/lib/Support/Timing.cpp @@ -50,7 +50,7 @@ llvm::sys::SmartRWMutex identifierMutex; /// A thread local cache of identifiers to reduce lock contention. - ThreadLocalCache *>> + ThreadLocalCache *>> localIdentifierCache; TimingManagerImpl() : identifiers(identifierAllocator) {}