diff --git a/clang/include/clang/APINotes/Types.h b/clang/include/clang/APINotes/Types.h index f155d6a06327..f75ac2bd2df5 100644 --- a/clang/include/clang/APINotes/Types.h +++ b/clang/include/clang/APINotes/Types.h @@ -72,7 +72,7 @@ public: llvm::Optional isSwiftPrivate() const { return SwiftPrivateSpecified ? llvm::Optional(SwiftPrivate) - : llvm::None; + : std::nullopt; } void setSwiftPrivate(llvm::Optional Private) { @@ -146,7 +146,7 @@ public: void setSwiftBridge(const llvm::Optional &SwiftType) { SwiftBridge = SwiftType ? llvm::Optional(std::string(*SwiftType)) - : llvm::None; + : std::nullopt; } const llvm::Optional &getNSErrorDomain() const { @@ -158,8 +158,8 @@ public: } void setNSErrorDomain(const llvm::Optional &Domain) { - NSErrorDomain = - Domain ? llvm::Optional(std::string(*Domain)) : llvm::None; + NSErrorDomain = Domain ? llvm::Optional(std::string(*Domain)) + : std::nullopt; } friend bool operator==(const CommonTypeInfo &, const CommonTypeInfo &); @@ -220,7 +220,7 @@ public: return HasDefaultNullability ? llvm::Optional( static_cast(DefaultNullability)) - : llvm::None; + : std::nullopt; } /// Set the default nullability for properties and methods of this class. @@ -235,7 +235,7 @@ public: llvm::Optional getSwiftImportAsNonGeneric() const { return SwiftImportAsNonGenericSpecified ? llvm::Optional(SwiftImportAsNonGeneric) - : llvm::None; + : std::nullopt; } void setSwiftImportAsNonGeneric(llvm::Optional Value) { SwiftImportAsNonGenericSpecified = Value.has_value(); @@ -244,7 +244,7 @@ public: llvm::Optional getSwiftObjCMembers() const { return SwiftObjCMembersSpecified ? llvm::Optional(SwiftObjCMembers) - : llvm::None; + : std::nullopt; } void setSwiftObjCMembers(llvm::Optional Value) { SwiftObjCMembersSpecified = Value.has_value(); @@ -313,7 +313,7 @@ public: llvm::Optional getNullability() const { return NullabilityAudited ? llvm::Optional( static_cast(Nullable)) - : llvm::None; + : std::nullopt; } void setNullabilityAudited(NullabilityKind kind) { @@ -362,7 +362,7 @@ public: llvm::Optional getSwiftImportAsAccessors() const { return SwiftImportAsAccessorsSpecified ? llvm::Optional(SwiftImportAsAccessors) - : llvm::None; + : std::nullopt; } void setSwiftImportAsAccessors(llvm::Optional Value) { SwiftImportAsAccessorsSpecified = Value.has_value(); @@ -425,7 +425,7 @@ public: llvm::Optional isNoEscape() const { if (!NoEscapeSpecified) - return llvm::None; + return std::nullopt; return NoEscape; } void setNoEscape(llvm::Optional Value) { @@ -435,7 +435,7 @@ public: llvm::Optional getRetainCountConvention() const { if (!RawRetainCountConvention) - return llvm::None; + return std::nullopt; return static_cast(RawRetainCountConvention - 1); } void @@ -553,7 +553,7 @@ public: llvm::Optional getRetainCountConvention() const { if (!RawRetainCountConvention) - return llvm::None; + return std::nullopt; return static_cast(RawRetainCountConvention - 1); } void @@ -661,7 +661,7 @@ public: llvm::Optional isFlagEnum() const { if (HasFlagEnum) return IsFlagEnum; - return llvm::None; + return std::nullopt; } void setFlagEnum(llvm::Optional Value) { HasFlagEnum = Value.has_value(); diff --git a/clang/include/clang/ASTMatchers/ASTMatchFinder.h b/clang/include/clang/ASTMatchers/ASTMatchFinder.h index dafafa151a60..e40e688c9eaa 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchFinder.h +++ b/clang/include/clang/ASTMatchers/ASTMatchFinder.h @@ -290,7 +290,7 @@ public: } llvm::Optional getCheckTraversalKind() const override { - return llvm::None; + return std::nullopt; } SmallVector Nodes; diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index d4b74f3f0750..f5a34a04b394 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -122,7 +122,7 @@ template struct TypeListContainsSuperOf { template )> struct VariadicFunction { - ResultT operator()() const { return Func(None); } + ResultT operator()() const { return Func(std::nullopt); } template ResultT operator()(const ArgT &Arg1, const ArgsT &... Args) const { @@ -352,7 +352,7 @@ public: BoundNodesTreeBuilder *Builder) const = 0; virtual llvm::Optional TraversalKind() const { - return llvm::None; + return std::nullopt; } }; @@ -1983,10 +1983,10 @@ template <> inline Optional equivalentBinaryOperator(const CXXOperatorCallExpr &Node) { if (Node.getNumArgs() != 2) - return None; + return std::nullopt; switch (Node.getOperator()) { default: - return None; + return std::nullopt; case OO_ArrowStar: return BO_PtrMemI; case OO_Star: @@ -2065,10 +2065,10 @@ inline Optional equivalentUnaryOperator(const CXXOperatorCallExpr &Node) { if (Node.getNumArgs() != 1 && Node.getOperator() != OO_PlusPlus && Node.getOperator() != OO_MinusMinus) - return None; + return std::nullopt; switch (Node.getOperator()) { default: - return None; + return std::nullopt; case OO_Plus: return UO_Plus; case OO_Minus: @@ -2084,13 +2084,13 @@ equivalentUnaryOperator(const CXXOperatorCallExpr &Node) { case OO_PlusPlus: { const auto *FD = Node.getDirectCallee(); if (!FD) - return None; + return std::nullopt; return FD->getNumParams() > 0 ? UO_PostInc : UO_PreInc; } case OO_MinusMinus: { const auto *FD = Node.getDirectCallee(); if (!FD) - return None; + return std::nullopt; return FD->getNumParams() > 0 ? UO_PostDec : UO_PreDec; } case OO_Coawait: @@ -2191,7 +2191,7 @@ inline Optional getOpName(const CXXOperatorCallExpr &Node) { if (!optBinaryOpcode) { auto optUnaryOpcode = equivalentUnaryOperator(Node); if (!optUnaryOpcode) - return None; + return std::nullopt; return UnaryOperator::getOpcodeStr(*optUnaryOpcode); } return BinaryOperator::getOpcodeStr(*optBinaryOpcode); @@ -2236,7 +2236,7 @@ private: if (!optBinaryOpcode) { auto optUnaryOpcode = equivalentUnaryOperator(Node); if (!optUnaryOpcode) - return None; + return std::nullopt; return UnaryOperator::getOpcodeStr(*optUnaryOpcode); } return BinaryOperator::getOpcodeStr(*optBinaryOpcode); diff --git a/clang/include/clang/Driver/Job.h b/clang/include/clang/Driver/Job.h index 01f8c42ef2cd..e3fa92d6ad5f 100644 --- a/clang/include/clang/Driver/Job.h +++ b/clang/include/clang/Driver/Job.h @@ -169,7 +169,7 @@ public: Command(const Action &Source, const Tool &Creator, ResponseFileSupport ResponseSupport, const char *Executable, const llvm::opt::ArgStringList &Arguments, ArrayRef Inputs, - ArrayRef Outputs = None); + ArrayRef Outputs = std::nullopt); // FIXME: This really shouldn't be copyable, but is currently copied in some // error handling in Driver::generateCompilationDiagnostics. Command(const Command &) = default; @@ -241,7 +241,8 @@ public: CC1Command(const Action &Source, const Tool &Creator, ResponseFileSupport ResponseSupport, const char *Executable, const llvm::opt::ArgStringList &Arguments, - ArrayRef Inputs, ArrayRef Outputs = None); + ArrayRef Inputs, + ArrayRef Outputs = std::nullopt); void Print(llvm::raw_ostream &OS, const char *Terminator, bool Quote, CrashReportInfo *CrashInfo = nullptr) const override; @@ -260,7 +261,7 @@ public: const char *Executable_, const llvm::opt::ArgStringList &Arguments_, ArrayRef Inputs, - ArrayRef Outputs = None); + ArrayRef Outputs = std::nullopt); void Print(llvm::raw_ostream &OS, const char *Terminator, bool Quote, CrashReportInfo *CrashInfo = nullptr) const override; diff --git a/clang/include/clang/Frontend/ASTUnit.h b/clang/include/clang/Frontend/ASTUnit.h index 420246278b47..9b1ce985885b 100644 --- a/clang/include/clang/Frontend/ASTUnit.h +++ b/clang/include/clang/Frontend/ASTUnit.h @@ -823,7 +823,7 @@ public: IntrusiveRefCntPtr Diags, StringRef ResourceFilesPath, bool OnlyLocalDecls = false, CaptureDiagsKind CaptureDiagnostics = CaptureDiagsKind::None, - ArrayRef RemappedFiles = None, + ArrayRef RemappedFiles = std::nullopt, bool RemappedFilesKeepOriginalName = true, unsigned PrecompilePreambleAfterNParses = 0, TranslationUnitKind TUKind = TU_Complete, @@ -835,7 +835,7 @@ public: bool SingleFileParse = false, bool UserFilesAreVolatile = false, bool ForSerialization = false, bool RetainExcludedConditionalBlocks = false, - llvm::Optional ModuleFormat = llvm::None, + llvm::Optional ModuleFormat = std::nullopt, std::unique_ptr *ErrAST = nullptr, IntrusiveRefCntPtr VFS = nullptr); @@ -851,7 +851,7 @@ public: /// \returns True if a failure occurred that causes the ASTUnit not to /// contain any translation-unit information, false otherwise. bool Reparse(std::shared_ptr PCHContainerOps, - ArrayRef RemappedFiles = None, + ArrayRef RemappedFiles = std::nullopt, IntrusiveRefCntPtr VFS = nullptr); /// Free data that will be re-generated on the next parse. diff --git a/clang/include/clang/Frontend/CommandLineSourceLoc.h b/clang/include/clang/Frontend/CommandLineSourceLoc.h index dfc4454b4baf..5177b8d9f043 100644 --- a/clang/include/clang/Frontend/CommandLineSourceLoc.h +++ b/clang/include/clang/Frontend/CommandLineSourceLoc.h @@ -93,7 +93,7 @@ struct ParsedSourceRange { } auto Begin = ParsedSourceLocation::FromString(RangeSplit.first); if (Begin.FileName.empty()) - return None; + return std::nullopt; if (!HasEndLoc) { EndLine = Begin.Line; EndColumn = Begin.Column; diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h index 7c6a83e58b04..9183fcb99fe9 100644 --- a/clang/include/clang/Frontend/FrontendOptions.h +++ b/clang/include/clang/Frontend/FrontendOptions.h @@ -241,9 +241,9 @@ public: InputKind getKind() const { return Kind; } bool isSystem() const { return IsSystem; } - bool isEmpty() const { return File.empty() && Buffer == None; } + bool isEmpty() const { return File.empty() && Buffer == std::nullopt; } bool isFile() const { return !isBuffer(); } - bool isBuffer() const { return Buffer != None; } + bool isBuffer() const { return Buffer != std::nullopt; } bool isPreprocessed() const { return Kind.isPreprocessed(); } bool isHeader() const { return Kind.isHeader(); } InputKind::HeaderUnitKind getHeaderUnitKind() const { diff --git a/clang/include/clang/Lex/DirectoryLookup.h b/clang/include/clang/Lex/DirectoryLookup.h index d43b105606f7..375e52515a33 100644 --- a/clang/include/clang/Lex/DirectoryLookup.h +++ b/clang/include/clang/Lex/DirectoryLookup.h @@ -92,7 +92,7 @@ public: } Optional getDirRef() const { - return isNormalDir() ? Optional(u.Dir) : None; + return isNormalDir() ? Optional(u.Dir) : std::nullopt; } /// getFrameworkDir - Return the directory that this framework refers to. @@ -102,7 +102,7 @@ public: } Optional getFrameworkDirRef() const { - return isFramework() ? Optional(u.Dir) : None; + return isFramework() ? Optional(u.Dir) : std::nullopt; } /// getHeaderMap - Return the directory that this entry refers to. diff --git a/clang/include/clang/Lex/ModuleMap.h b/clang/include/clang/Lex/ModuleMap.h index 4e38f1c78bb2..8c8fa4d456a6 100644 --- a/clang/include/clang/Lex/ModuleMap.h +++ b/clang/include/clang/Lex/ModuleMap.h @@ -735,7 +735,7 @@ public: llvm::Optional getCachedModuleLoad(const IdentifierInfo &II) { auto I = CachedModuleLoads.find(&II); if (I == CachedModuleLoads.end()) - return None; + return std::nullopt; return I->second; } }; diff --git a/clang/include/clang/Lex/PreprocessingRecord.h b/clang/include/clang/Lex/PreprocessingRecord.h index c97ca8628e14..781b7fc36cb4 100644 --- a/clang/include/clang/Lex/PreprocessingRecord.h +++ b/clang/include/clang/Lex/PreprocessingRecord.h @@ -293,7 +293,7 @@ class Token; /// entity with index \p Index came from file \p FID. virtual Optional isPreprocessedEntityInFileID(unsigned Index, FileID FID) { - return None; + return std::nullopt; } /// Read a preallocated skipped range from the external source. diff --git a/clang/include/clang/Lex/Preprocessor.h b/clang/include/clang/Lex/Preprocessor.h index a64fe31c5b98..499ee95f3a00 100644 --- a/clang/include/clang/Lex/Preprocessor.h +++ b/clang/include/clang/Lex/Preprocessor.h @@ -757,7 +757,7 @@ private: getActiveModuleMacros(Preprocessor &PP, const IdentifierInfo *II) const { if (auto *Info = getModuleInfo(PP, II)) return Info->ActiveModuleMacros; - return None; + return std::nullopt; } MacroDirective::DefInfo findDirectiveAtLoc(SourceLocation Loc, @@ -781,7 +781,7 @@ private: ArrayRef getOverriddenMacros() const { if (auto *Info = State.dyn_cast()) return Info->OverriddenMacros; - return None; + return std::nullopt; } void setOverriddenMacros(Preprocessor &PP, @@ -904,17 +904,17 @@ private: static MacroAnnotations makeDeprecation(SourceLocation Loc, std::string Msg) { return MacroAnnotations{MacroAnnotationInfo{Loc, std::move(Msg)}, - llvm::None, llvm::None}; + std::nullopt, std::nullopt}; } static MacroAnnotations makeRestrictExpansion(SourceLocation Loc, std::string Msg) { return MacroAnnotations{ - llvm::None, MacroAnnotationInfo{Loc, std::move(Msg)}, llvm::None}; + std::nullopt, MacroAnnotationInfo{Loc, std::move(Msg)}, std::nullopt}; } static MacroAnnotations makeFinal(SourceLocation Loc) { - return MacroAnnotations{llvm::None, llvm::None, Loc}; + return MacroAnnotations{std::nullopt, std::nullopt, Loc}; } }; @@ -1299,7 +1299,7 @@ public: auto I = LeafModuleMacros.find(II); if (I != LeafModuleMacros.end()) return I->second; - return None; + return std::nullopt; } /// Get the list of submodules that we're currently building. diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index 6e6b38fc8970..66caecb34fea 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -3066,7 +3066,8 @@ private: void ParseTypeQualifierListOpt( DeclSpec &DS, unsigned AttrReqs = AR_AllAttributesParsed, bool AtomicAllowed = true, bool IdentifierRequired = false, - Optional> CodeCompletionHandler = None); + Optional> CodeCompletionHandler = + std::nullopt); void ParseDirectDeclarator(Declarator &D); void ParseDecompositionDeclarator(Declarator &D); void ParseParenDeclarator(Declarator &D); diff --git a/clang/include/clang/Serialization/ModuleFile.h b/clang/include/clang/Serialization/ModuleFile.h index 655ae022a488..871fdd0a4838 100644 --- a/clang/include/clang/Serialization/ModuleFile.h +++ b/clang/include/clang/Serialization/ModuleFile.h @@ -105,7 +105,7 @@ public: OptionalFileEntryRefDegradesToFileEntryPtr getFile() const { if (auto *P = Val.getPointer()) return FileEntryRef(*P); - return None; + return std::nullopt; } bool isOverridden() const { return Val.getInt() == Overridden; } bool isOutOfDate() const { return Val.getInt() == OutOfDate; } diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h index 63a72219c225..0143a40da737 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h @@ -98,7 +98,7 @@ public: return ArrayRef( Directives->value()); } - return None; + return std::nullopt; } /// \returns The error. diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h index c0d273297f18..f191ea182283 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h @@ -84,7 +84,7 @@ public: /// occurred, dependency file contents otherwise. llvm::Expected getDependencyFile(const std::vector &CommandLine, StringRef CWD, - llvm::Optional ModuleName = None); + llvm::Optional ModuleName = std::nullopt); /// Collect the full module dependency graph for the input, ignoring any /// modules which have already been seen. If \p ModuleName isn't empty, this @@ -105,13 +105,13 @@ public: getFullDependencies(const std::vector &CommandLine, StringRef CWD, const llvm::StringSet<> &AlreadySeen, LookupModuleOutputCallback LookupModuleOutput, - llvm::Optional ModuleName = None); + llvm::Optional ModuleName = std::nullopt); llvm::Expected getFullDependenciesLegacyDriverCommand( const std::vector &CommandLine, StringRef CWD, const llvm::StringSet<> &AlreadySeen, LookupModuleOutputCallback LookupModuleOutput, - llvm::Optional ModuleName = None); + llvm::Optional ModuleName = std::nullopt); private: DependencyScanningWorker Worker; diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h index 134ac919bf1e..36ac2e3fbff7 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h @@ -79,13 +79,14 @@ public: const std::vector &CommandLine, DependencyConsumer &DepConsumer, DiagnosticConsumer &DiagConsumer, - llvm::Optional ModuleName = None); + llvm::Optional ModuleName = std::nullopt); /// \returns A \c StringError with the diagnostic output if clang errors /// occurred, success otherwise. - llvm::Error computeDependencies(StringRef WorkingDirectory, - const std::vector &CommandLine, - DependencyConsumer &Consumer, - llvm::Optional ModuleName = None); + llvm::Error + computeDependencies(StringRef WorkingDirectory, + const std::vector &CommandLine, + DependencyConsumer &Consumer, + llvm::Optional ModuleName = std::nullopt); bool shouldEagerLoadModules() const { return EagerLoadModules; } diff --git a/clang/lib/APINotes/APINotesYAMLCompiler.cpp b/clang/lib/APINotes/APINotesYAMLCompiler.cpp index 75100fde59b8..1e6ccb59e068 100644 --- a/clang/lib/APINotes/APINotesYAMLCompiler.cpp +++ b/clang/lib/APINotes/APINotesYAMLCompiler.cpp @@ -119,7 +119,7 @@ template <> struct ScalarEnumerationTraits { template <> struct MappingTraits { static void mapping(IO &IO, Param &P) { IO.mapRequired("Position", P.Position); - IO.mapOptional("Nullability", P.Nullability, llvm::None); + IO.mapOptional("Nullability", P.Nullability, std::nullopt); IO.mapOptional("RetainCountConvention", P.RetainCountConvention); IO.mapOptional("NoEscape", P.NoEscape); IO.mapOptional("Type", P.Type, StringRef("")); @@ -183,7 +183,7 @@ template <> struct MappingTraits { IO.mapRequired("MethodKind", M.Kind); IO.mapOptional("Parameters", M.Params); IO.mapOptional("Nullability", M.Nullability); - IO.mapOptional("NullabilityOfRet", M.NullabilityOfRet, llvm::None); + IO.mapOptional("NullabilityOfRet", M.NullabilityOfRet, std::nullopt); IO.mapOptional("RetainCountConvention", M.RetainCountConvention); IO.mapOptional("Availability", M.Availability.Mode, APIAvailability::Available); @@ -222,7 +222,7 @@ template <> struct MappingTraits { static void mapping(IO &IO, Property &P) { IO.mapRequired("Name", P.Name); IO.mapOptional("PropertyKind", P.Kind); - IO.mapOptional("Nullability", P.Nullability, llvm::None); + IO.mapOptional("Nullability", P.Nullability, std::nullopt); IO.mapOptional("Availability", P.Availability.Mode, APIAvailability::Available); IO.mapOptional("AvailabilityMsg", P.Availability.Msg, StringRef("")); @@ -303,7 +303,7 @@ template <> struct MappingTraits { IO.mapRequired("Name", F.Name); IO.mapOptional("Parameters", F.Params); IO.mapOptional("Nullability", F.Nullability); - IO.mapOptional("NullabilityOfRet", F.NullabilityOfRet, llvm::None); + IO.mapOptional("NullabilityOfRet", F.NullabilityOfRet, std::nullopt); IO.mapOptional("RetainCountConvention", F.RetainCountConvention); IO.mapOptional("Availability", F.Availability.Mode, APIAvailability::Available); @@ -336,7 +336,7 @@ namespace yaml { template <> struct MappingTraits { static void mapping(IO &IO, GlobalVariable &GV) { IO.mapRequired("Name", GV.Name); - IO.mapOptional("Nullability", GV.Nullability, llvm::None); + IO.mapOptional("Nullability", GV.Nullability, std::nullopt); IO.mapOptional("Availability", GV.Availability.Mode, APIAvailability::Available); IO.mapOptional("AvailabilityMsg", GV.Availability.Msg, StringRef("")); @@ -549,7 +549,7 @@ struct Module { TopLevelItems TopLevel; VersionedSeq SwiftVersions; - llvm::Optional SwiftInferImportAsMember = {llvm::None}; + llvm::Optional SwiftInferImportAsMember = {std::nullopt}; #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) LLVM_DUMP_METHOD void dump() /*const*/; diff --git a/clang/lib/ARCMigrate/Internals.h b/clang/lib/ARCMigrate/Internals.h index 8b482738cc89..33d16fee0359 100644 --- a/clang/lib/ARCMigrate/Internals.h +++ b/clang/lib/ARCMigrate/Internals.h @@ -74,7 +74,7 @@ public: bool clearDiagnostic(ArrayRef IDs, SourceRange range); bool clearAllDiagnostics(SourceRange range) { - return clearDiagnostic(None, range); + return clearDiagnostic(std::nullopt, range); } bool clearDiagnostic(unsigned ID1, unsigned ID2, SourceRange range) { unsigned IDs[] = { ID1, ID2 }; diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index fe0ce4c5cdc3..d690d4c54507 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -202,7 +202,7 @@ ObjCMigrateAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { Consumers.push_back(WrapperFrontendAction::CreateASTConsumer(CI, InFile)); Consumers.push_back(std::make_unique( MigrateDir, ObjCMigAction, Remapper, CompInst->getFileManager(), PPRec, - CompInst->getPreprocessor(), false, None)); + CompInst->getPreprocessor(), false, std::nullopt)); return std::make_unique(std::move(Consumers)); } diff --git a/clang/lib/ASTMatchers/ASTMatchFinder.cpp b/clang/lib/ASTMatchers/ASTMatchFinder.cpp index 45eabfeb3731..c8db29229a5f 100644 --- a/clang/lib/ASTMatchers/ASTMatchFinder.cpp +++ b/clang/lib/ASTMatchers/ASTMatchFinder.cpp @@ -1687,7 +1687,7 @@ StringRef MatchFinder::MatchCallback::getID() const { return ""; } llvm::Optional MatchFinder::MatchCallback::getCheckTraversalKind() const { - return llvm::None; + return std::nullopt; } } // end namespace ast_matchers diff --git a/clang/lib/ASTMatchers/ASTMatchersInternal.cpp b/clang/lib/ASTMatchers/ASTMatchersInternal.cpp index 4c438f9e4879..f9aae6a6b015 100644 --- a/clang/lib/ASTMatchers/ASTMatchersInternal.cpp +++ b/clang/lib/ASTMatchers/ASTMatchersInternal.cpp @@ -340,7 +340,8 @@ bool DynTypedMatcher::matchesNoKindCheck(const DynTypedNode &DynNode, } llvm::Optional DynTypedMatcher::tryBind(StringRef ID) const { - if (!AllowBind) return llvm::None; + if (!AllowBind) + return std::nullopt; auto Result = *this; Result.Implementation = new IdDynMatcher(ID, std::move(Result.Implementation)); @@ -703,7 +704,7 @@ getExpansionLocOfMacro(StringRef MacroName, SourceLocation Loc, if (isTokenAtLoc(SM, LangOpts, MacroName, Loc)) return Loc; } - return llvm::None; + return std::nullopt; } std::shared_ptr createAndVerifyRegex(StringRef Regex, diff --git a/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp b/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp index 70b5953fe969..a1943315e454 100644 --- a/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp @@ -56,7 +56,7 @@ getBestGuess(llvm::StringRef Search, llvm::ArrayRef Allowed, if (!Res.empty()) return Res.str(); } - return llvm::None; + return std::nullopt; } llvm::Optional @@ -69,7 +69,7 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< if (Value.isString()) return ::getBestGuess(Value.getString(), llvm::makeArrayRef(Allowed), "attr::"); - return llvm::None; + return std::nullopt; } llvm::Optional @@ -82,7 +82,7 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< if (Value.isString()) return ::getBestGuess(Value.getString(), llvm::makeArrayRef(Allowed), "CK_"); - return llvm::None; + return std::nullopt; } llvm::Optional @@ -96,7 +96,7 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< if (Value.isString()) return ::getBestGuess(Value.getString(), llvm::makeArrayRef(Allowed), "OMPC_"); - return llvm::None; + return std::nullopt; } llvm::Optional @@ -110,7 +110,7 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< if (Value.isString()) return ::getBestGuess(Value.getString(), llvm::makeArrayRef(Allowed), "UETT_"); - return llvm::None; + return std::nullopt; } static constexpr std::pair @@ -127,7 +127,7 @@ getRegexFlag(llvm::StringRef Flag) { if (Flag == StringFlag.first) return StringFlag.second; } - return llvm::None; + return std::nullopt; } static llvm::Optional @@ -136,7 +136,7 @@ getCloseRegexMatch(llvm::StringRef Flag) { if (Flag.edit_distance(StringFlag.first) < 3) return StringFlag.first; } - return llvm::None; + return std::nullopt; } llvm::Optional @@ -150,7 +150,7 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< getRegexFlag(OrFlag.trim())) Flag = Flag.value_or(llvm::Regex::NoFlags) | *NextFlag; else - return None; + return std::nullopt; } return Flag; } @@ -159,7 +159,7 @@ llvm::Optional clang::ast_matchers::dynamic::internal::ArgTypeTraits< llvm::Regex::RegexFlags>::getBestGuess(const VariantValue &Value) { if (!Value.isString()) - return llvm::None; + return std::nullopt; SmallVector Split; llvm::StringRef(Value.getString()).split(Split, '|', -1, false); for (llvm::StringRef &Flag : Split) { @@ -167,9 +167,9 @@ clang::ast_matchers::dynamic::internal::ArgTypeTraits< getCloseRegexMatch(Flag.trim())) Flag = *BestGuess; else - return None; + return std::nullopt; } if (Split.empty()) - return None; + return std::nullopt; return llvm::join(Split, " | "); } diff --git a/clang/lib/ASTMatchers/Dynamic/Marshallers.h b/clang/lib/ASTMatchers/Dynamic/Marshallers.h index bab36e5db47e..f20d13efe772 100644 --- a/clang/lib/ASTMatchers/Dynamic/Marshallers.h +++ b/clang/lib/ASTMatchers/Dynamic/Marshallers.h @@ -72,7 +72,7 @@ template <> struct ArgTypeTraits { } static llvm::Optional getBestGuess(const VariantValue &) { - return llvm::None; + return std::nullopt; } }; @@ -97,7 +97,7 @@ template struct ArgTypeTraits> { } static llvm::Optional getBestGuess(const VariantValue &) { - return llvm::None; + return std::nullopt; } }; @@ -116,7 +116,7 @@ template <> struct ArgTypeTraits { } static llvm::Optional getBestGuess(const VariantValue &) { - return llvm::None; + return std::nullopt; } }; @@ -135,7 +135,7 @@ template <> struct ArgTypeTraits { } static llvm::Optional getBestGuess(const VariantValue &) { - return llvm::None; + return std::nullopt; } }; @@ -154,7 +154,7 @@ template <> struct ArgTypeTraits { } static llvm::Optional getBestGuess(const VariantValue &) { - return llvm::None; + return std::nullopt; } }; @@ -162,11 +162,11 @@ template <> struct ArgTypeTraits { private: static Optional getAttrKind(llvm::StringRef AttrKind) { if (!AttrKind.consume_front("attr::")) - return llvm::None; + return std::nullopt; return llvm::StringSwitch>(AttrKind) #define ATTR(X) .Case(#X, attr::X) #include "clang/Basic/AttrList.inc" - .Default(llvm::None); + .Default(std::nullopt); } public: @@ -192,11 +192,11 @@ template <> struct ArgTypeTraits { private: static Optional getCastKind(llvm::StringRef AttrKind) { if (!AttrKind.consume_front("CK_")) - return llvm::None; + return std::nullopt; return llvm::StringSwitch>(AttrKind) #define CAST_OPERATION(Name) .Case(#Name, CK_##Name) #include "clang/AST/OperationKinds.def" - .Default(llvm::None); + .Default(std::nullopt); } public: @@ -246,7 +246,7 @@ private: #define GEN_CLANG_CLAUSE_CLASS #define CLAUSE_CLASS(Enum, Str, Class) .Case(#Enum, llvm::omp::Clause::Enum) #include "llvm/Frontend/OpenMP/OMP.inc" - .Default(llvm::None); + .Default(std::nullopt); } public: @@ -271,13 +271,13 @@ private: static Optional getUnaryOrTypeTraitKind(llvm::StringRef ClauseKind) { if (!ClauseKind.consume_front("UETT_")) - return llvm::None; + return std::nullopt; return llvm::StringSwitch>(ClauseKind) #define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) .Case(#Name, UETT_##Name) #define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) \ .Case(#Name, UETT_##Name) #include "clang/Basic/TokenKinds.def" - .Default(llvm::None); + .Default(std::nullopt); } public: @@ -1060,7 +1060,7 @@ makeMatcherAutoMarshall(ReturnType (*Func)(), StringRef MatcherName) { BuildReturnTypeVector::build(RetTypes); return std::make_unique( matcherMarshall0, reinterpret_cast(Func), - MatcherName, RetTypes, None); + MatcherName, RetTypes, std::nullopt); } /// 1-arg overload diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp index cf4afe76de0d..b9af50990af9 100644 --- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp @@ -910,10 +910,10 @@ Parser::parseMatcherExpression(StringRef &Code, Sema *S, Diagnostics *Error) { VariantValue Value; if (!parseExpression(Code, S, NamedValues, &Value, Error)) - return llvm::None; + return std::nullopt; if (!Value.isMatcher()) { Error->addError(SourceRange(), Error->ET_ParserNotAMatcher); - return llvm::None; + return std::nullopt; } llvm::Optional Result = Value.getMatcher().getSingleMatcher(); diff --git a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp index 91fa8bfee422..6cf4df4bef13 100644 --- a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp +++ b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp @@ -75,11 +75,11 @@ VariantMatcher::MatcherOps::constructVariadicOperator( // Abort if any of the inner matchers can't be converted to // Matcher. if (!InnerMatcher.Value) - return llvm::None; + return std::nullopt; llvm::Optional Inner = InnerMatcher.Value->getTypedMatcher(*this); if (!Inner) - return llvm::None; + return std::nullopt; DynMatchers.push_back(*Inner); } return DynTypedMatcher::constructVariadic(Op, NodeKind, DynMatchers); @@ -105,7 +105,7 @@ public: bool Ignore; if (Ops.canConstructFrom(Matcher, Ignore)) return Matcher; - return llvm::None; + return std::nullopt; } bool isConvertibleTo(ASTNodeKind Kind, unsigned *Specificity) const override { @@ -126,7 +126,7 @@ public: llvm::Optional getSingleMatcher() const override { if (Matchers.size() != 1) - return llvm::None; + return std::nullopt; return Matchers[0]; } @@ -162,7 +162,7 @@ public: // We only succeed if we found exactly one, or if we found an exact match. if (Found && (FoundIsExact || NumFound == 1)) return *Found; - return llvm::None; + return std::nullopt; } bool isConvertibleTo(ASTNodeKind Kind, unsigned *Specificity) const override { @@ -190,7 +190,7 @@ public: : Op(Op), Args(std::move(Args)) {} llvm::Optional getSingleMatcher() const override { - return llvm::None; + return std::nullopt; } std::string getTypeAsString() const override { diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp index c7d83ce8a7f6..c4983ea7965f 100644 --- a/clang/lib/CrossTU/CrossTranslationUnit.cpp +++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -797,7 +797,7 @@ llvm::Optional CrossTranslationUnitContext::getMacroExpansionContextForSourceLocation( const clang::SourceLocation &ToLoc) const { // FIXME: Implement: Record such a context for every imported ASTUnit; lookup. - return llvm::None; + return std::nullopt; } bool CrossTranslationUnitContext::isImportedAsNew(const Decl *ToDecl) const { diff --git a/clang/lib/DirectoryWatcher/DirectoryScanner.cpp b/clang/lib/DirectoryWatcher/DirectoryScanner.cpp index fc4b493e7b4c..fa060af9c7ae 100644 --- a/clang/lib/DirectoryWatcher/DirectoryScanner.cpp +++ b/clang/lib/DirectoryWatcher/DirectoryScanner.cpp @@ -18,7 +18,7 @@ Optional getFileStatus(StringRef Path) { sys::fs::file_status Status; std::error_code EC = status(Path, Status); if (EC) - return None; + return std::nullopt; return Status; } diff --git a/clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp b/clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp index 963256f268bb..e9950088e1f1 100644 --- a/clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp +++ b/clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp @@ -75,7 +75,7 @@ struct SemaphorePipe { static llvm::Optional create() { int InotifyPollingStopperFDs[2]; if (pipe2(InotifyPollingStopperFDs, O_CLOEXEC) == -1) - return llvm::None; + return std::nullopt; return SemaphorePipe(InotifyPollingStopperFDs); } }; diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 07ecab95798e..bed46a81e338 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -297,7 +297,7 @@ void Compilation::initCompilationForDiagnostics() { TCArgs.clear(); // Redirect stdout/stderr to /dev/null. - Redirects = {None, {""}, {""}}; + Redirects = {std::nullopt, {""}, {""}}; // Temporary files added by diagnostics should be kept. ForceKeepTempFiles = true; diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 7765ef0898dc..d01df7f48f07 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -241,7 +241,7 @@ void Driver::setDriverMode(StringRef Value) { .Case("cl", CLMode) .Case("flang", FlangMode) .Case("dxc", DXCMode) - .Default(None)) + .Default(std::nullopt)) Mode = *M; else Diag(diag::err_drv_unsupported_option_argument) << OptName << Value; diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp index 58a5103e7d9b..5f893ba6e891 100644 --- a/clang/lib/Driver/ToolChains/AIX.cpp +++ b/clang/lib/Driver/ToolChains/AIX.cpp @@ -226,7 +226,8 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA, auto ExpCommand = std::make_unique( JA, *this, ResponseFileSupport::None(), CreateExportListExec, CreateExportCmdArgs, Inputs, Output); - ExpCommand->setRedirectFiles({std::nullopt, std::string(ExportList), None}); + ExpCommand->setRedirectFiles( + {std::nullopt, std::string(ExportList), std::nullopt}); C.addCommand(std::move(ExpCommand)); CmdArgs.push_back(Args.MakeArgString(llvm::Twine("-bE:") + ExportList)); } diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index 3c327c23b4fe..5d536b83cef0 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -1619,7 +1619,7 @@ struct DarwinPlatform { if (const auto *MacCatalystToMacOSMapping = SDKInfo->getVersionMapping( DarwinSDKInfo::OSEnvPair::macCatalystToMacOSPair())) { if (auto MacOSVersion = MacCatalystToMacOSMapping->map( - OSVersion, NativeTargetVersion, None)) { + OSVersion, NativeTargetVersion, std::nullopt)) { NativeTargetVersion = *MacOSVersion; } } @@ -2830,7 +2830,8 @@ void Darwin::addClangCC1ASTargetOptions( if (const auto *MacOStoMacCatalystMapping = SDKInfo->getVersionMapping( DarwinSDKInfo::OSEnvPair::macOStoMacCatalystPair())) { Optional SDKVersion = MacOStoMacCatalystMapping->map( - SDKInfo->getVersion(), minimumMacCatalystDeploymentTarget(), None); + SDKInfo->getVersion(), minimumMacCatalystDeploymentTarget(), + std::nullopt); EmitTargetSDKVersionArg( SDKVersion ? *SDKVersion : minimumMacCatalystDeploymentTarget()); } @@ -2851,7 +2852,7 @@ void Darwin::addClangCC1ASTargetOptions( DarwinSDKInfo::OSEnvPair::macOStoMacCatalystPair())) { if (Optional SDKVersion = MacOStoMacCatalystMapping->map( SDKInfo->getVersion(), minimumMacCatalystDeploymentTarget(), - None)) { + std::nullopt)) { std::string Arg; llvm::raw_string_ostream OS(Arg); OS << "-darwin-target-variant-sdk-version=" << *SDKVersion; @@ -3097,7 +3098,7 @@ void Darwin::addPlatformVersionArgs(const llvm::opt::ArgList &Args, DarwinSDKInfo::OSEnvPair::macOStoMacCatalystPair())) { iOSSDKVersion = MacOStoMacCatalystMapping->map( SDKInfo->getVersion().withoutBuild(), - minimumMacCatalystDeploymentTarget(), None); + minimumMacCatalystDeploymentTarget(), std::nullopt); } } CmdArgs.push_back(Args.MakeArgString( diff --git a/clang/lib/Driver/ToolChains/Gnu.h b/clang/lib/Driver/ToolChains/Gnu.h index b4314a2c849c..7199e0ba9d6c 100644 --- a/clang/lib/Driver/ToolChains/Gnu.h +++ b/clang/lib/Driver/ToolChains/Gnu.h @@ -218,7 +218,7 @@ public: public: explicit GCCInstallationDetector(const Driver &D) : IsValid(false), D(D) {} void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, - ArrayRef ExtraTripleAliases = None); + ArrayRef ExtraTripleAliases = std::nullopt); /// Check whether we detected a valid GCC install. bool isValid() const { return IsValid; } diff --git a/clang/lib/ExtractAPI/ExtractAPIConsumer.cpp b/clang/lib/ExtractAPI/ExtractAPIConsumer.cpp index 2ab1828583a0..7c56818156e3 100644 --- a/clang/lib/ExtractAPI/ExtractAPIConsumer.cpp +++ b/clang/lib/ExtractAPI/ExtractAPIConsumer.cpp @@ -157,7 +157,7 @@ Optional getRelativeIncludeName(const CompilerInstance &CI, Rule.match(File, &Matches); // Returned matches are always in stable order. if (Matches.size() != 4) - return None; + return std::nullopt; return path::convert_to_slash( (Matches[1].drop_front(Matches[1].rfind('/') + 1) + "/" + @@ -172,7 +172,7 @@ Optional getRelativeIncludeName(const CompilerInstance &CI, } // Couldn't determine a include name, use full path instead. - return None; + return std::nullopt; } struct LocationFileChecker { diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index b74cf5b4ed32..91dc2529a4b4 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -60,7 +60,7 @@ void serializeArray(Object &Paren, StringRef Key, Optional Array) { /// the semantic version representation of \p V. Optional serializeSemanticVersion(const VersionTuple &V) { if (V.empty()) - return None; + return std::nullopt; Object Version; Version["major"] = V.getMajor(); @@ -146,7 +146,7 @@ Object serializeSourceRange(const PresumedLoc &BeginLoc, /// an \c Array containing the formatted availability information. Optional serializeAvailability(const AvailabilitySet &Availabilities) { if (Availabilities.isDefault()) - return None; + return std::nullopt; Array AvailabilityArray; @@ -232,7 +232,7 @@ Object serializeIdentifier(const APIRecord &Record, Language Lang) { /// formatted lines. Optional serializeDocComment(const DocComment &Comment) { if (Comment.empty()) - return None; + return std::nullopt; Object DocComment; Array LinesArray; @@ -284,7 +284,7 @@ Optional serializeDocComment(const DocComment &Comment) { /// declaration fragments array. Optional serializeDeclarationFragments(const DeclarationFragments &DF) { if (DF.getFragments().empty()) - return None; + return std::nullopt; Array Fragments; for (const auto &F : DF.getFragments()) { @@ -412,7 +412,7 @@ Optional serializeFunctionSignatureMixinImpl(const RecordTy &Record, std::true_type) { const auto &FS = Record.Signature; if (FS.empty()) - return None; + return std::nullopt; Object Signature; serializeArray(Signature, "returns", @@ -436,7 +436,7 @@ Optional serializeFunctionSignatureMixinImpl(const RecordTy &Record, template Optional serializeFunctionSignatureMixinImpl(const RecordTy &Record, std::false_type) { - return None; + return std::nullopt; } /// Serialize the function signature field, as specified by the @@ -501,7 +501,7 @@ template Optional SymbolGraphSerializer::serializeAPIRecord(const RecordTy &Record) const { if (shouldSkip(Record)) - return None; + return std::nullopt; Object Obj; serializeObject(Obj, "identifier", diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 26e48164acde..462ec3cb0d71 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -152,7 +152,7 @@ static bool opensProtoMessageField(const FormatToken &LessTok, static llvm::Optional getRawStringDelimiter(StringRef TokenText) { if (TokenText.size() < 5 // The smallest raw string possible is 'R"()"'. || !TokenText.startswith("R\"") || !TokenText.endswith("\"")) { - return None; + return std::nullopt; } // A raw string starts with 'R"(' and delimiter is ascii and has @@ -160,15 +160,15 @@ static llvm::Optional getRawStringDelimiter(StringRef TokenText) { // 19 bytes. size_t LParenPos = TokenText.substr(0, 19).find_first_of('('); if (LParenPos == StringRef::npos) - return None; + return std::nullopt; StringRef Delimiter = TokenText.substr(2, LParenPos - 2); // Check that the string ends in ')Delimiter"'. size_t RParenPos = TokenText.size() - Delimiter.size() - 2; if (TokenText[RParenPos] != ')') - return None; + return std::nullopt; if (!TokenText.substr(RParenPos + 1).startswith(Delimiter)) - return None; + return std::nullopt; return Delimiter; } @@ -209,7 +209,7 @@ llvm::Optional RawStringFormatStyleManager::getDelimiterStyle(StringRef Delimiter) const { auto It = DelimiterStyle.find(Delimiter); if (It == DelimiterStyle.end()) - return None; + return std::nullopt; return It->second; } @@ -218,7 +218,7 @@ RawStringFormatStyleManager::getEnclosingFunctionStyle( StringRef EnclosingFunction) const { auto It = EnclosingFunctionStyle.find(EnclosingFunction); if (It == EnclosingFunctionStyle.end()) - return None; + return std::nullopt; return It->second; } @@ -2071,17 +2071,17 @@ llvm::Optional ContinuationIndenter::getRawStringStyle(const FormatToken &Current, const LineState &State) { if (!Current.isStringLiteral()) - return None; + return std::nullopt; auto Delimiter = getRawStringDelimiter(Current.TokenText); if (!Delimiter) - return None; + return std::nullopt; auto RawStringStyle = RawStringFormats.getDelimiterStyle(*Delimiter); if (!RawStringStyle && Delimiter->empty()) { RawStringStyle = RawStringFormats.getEnclosingFunctionStyle( getEnclosingFunctionName(Current)); } if (!RawStringStyle) - return None; + return std::nullopt; RawStringStyle->ColumnLimit = getColumnLimit(State); return RawStringStyle; } diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index bfc2741ea96a..8e7bee94e181 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1874,10 +1874,10 @@ std::string configurationAsText(const FormatStyle &Style) { llvm::Optional FormatStyle::FormatStyleSet::Get(FormatStyle::LanguageKind Language) const { if (!Styles) - return None; + return std::nullopt; auto It = Styles->find(Language); if (It == Styles->end()) - return None; + return std::nullopt; FormatStyle Style = It->second; Style.StyleSet = *this; return Style; diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index c5c5bb7d1830..c13374673470 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -2246,7 +2246,7 @@ void ASTUnit::CodeComplete( [&FileMgr](StringRef Filename) -> Optional { if (auto Status = FileMgr.getVirtualFileSystem().status(Filename)) return Status->getUniqueID(); - return None; + return std::nullopt; }; auto hasSameUniqueID = [getUniqueID](StringRef LHS, StringRef RHS) { diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 79bbf375af96..c039169ff150 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -1289,7 +1289,7 @@ static Optional getPublicModuleMap(FileEntryRef File, else if (Filename == "module.private.modulemap") llvm::sys::path::append(PublicFilename, "module.modulemap"); else - return None; + return std::nullopt; return FileMgr.getOptionalFileRef(PublicFilename); } diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index a637b929782c..e9ad41262c3f 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -176,7 +176,7 @@ static llvm::Optional normalizeSimpleFlag(OptSpecifier Opt, DiagnosticsEngine &Diags) { if (Args.hasArg(Opt)) return true; - return None; + return std::nullopt; } static Optional normalizeSimpleNegativeFlag(OptSpecifier Opt, unsigned, @@ -184,7 +184,7 @@ static Optional normalizeSimpleNegativeFlag(OptSpecifier Opt, unsigned, DiagnosticsEngine &) { if (Args.hasArg(Opt)) return false; - return None; + return std::nullopt; } /// The tblgen-erated code passes in a fifth parameter of an arbitrary type, but @@ -209,7 +209,7 @@ static auto makeFlagToValueNormalizer(T Value) { DiagnosticsEngine &) -> Optional { if (Args.hasArg(Opt)) return Value; - return None; + return std::nullopt; }; } @@ -227,7 +227,7 @@ static auto makeBooleanOptionNormalizer(bool Value, bool OtherValue, if (const Arg *A = Args.getLastArg(Opt, OtherOpt)) { return A->getOption().matches(Opt) ? Value : OtherValue; } - return None; + return std::nullopt; }; } @@ -276,7 +276,7 @@ findValueTableByName(const SimpleEnumValueTable &Table, StringRef Name) { if (Name == Table.Table[I].Name) return Table.Table[I]; - return None; + return std::nullopt; } static Optional @@ -285,7 +285,7 @@ findValueTableByValue(const SimpleEnumValueTable &Table, unsigned Value) { if (Value == Table.Table[I].Value) return Table.Table[I]; - return None; + return std::nullopt; } static llvm::Optional normalizeSimpleEnum(OptSpecifier Opt, @@ -297,7 +297,7 @@ static llvm::Optional normalizeSimpleEnum(OptSpecifier Opt, auto *Arg = Args.getLastArg(Opt); if (!Arg) - return None; + return std::nullopt; StringRef ArgValue = Arg->getValue(); if (auto MaybeEnumVal = findValueTableByName(Table, ArgValue)) @@ -305,7 +305,7 @@ static llvm::Optional normalizeSimpleEnum(OptSpecifier Opt, Diags.Report(diag::err_drv_invalid_value) << Arg->getAsString(Args) << ArgValue; - return None; + return std::nullopt; } static void denormalizeSimpleEnumImpl(SmallVectorImpl &Args, @@ -339,7 +339,7 @@ static Optional normalizeString(OptSpecifier Opt, int TableIndex, DiagnosticsEngine &Diags) { auto *Arg = Args.getLastArg(Opt); if (!Arg) - return None; + return std::nullopt; return std::string(Arg->getValue()); } @@ -349,12 +349,12 @@ static Optional normalizeStringIntegral(OptSpecifier Opt, int, DiagnosticsEngine &Diags) { auto *Arg = Args.getLastArg(Opt); if (!Arg) - return None; + return std::nullopt; IntTy Res; if (StringRef(Arg->getValue()).getAsInteger(0, Res)) { Diags.Report(diag::err_drv_invalid_int_value) << Arg->getAsString(Args) << Arg->getValue(); - return None; + return std::nullopt; } return Res; } @@ -402,7 +402,7 @@ static Optional normalizeTriple(OptSpecifier Opt, int TableIndex, DiagnosticsEngine &Diags) { auto *Arg = Args.getLastArg(Opt); if (!Arg) - return None; + return std::nullopt; return llvm::Triple::normalize(Arg->getValue()); } @@ -1064,11 +1064,12 @@ static void initOption(AnalyzerOptions::ConfigTable &Config, static void initOption(AnalyzerOptions::ConfigTable &Config, DiagnosticsEngine *Diags, bool &OptionField, StringRef Name, bool DefaultVal) { - auto PossiblyInvalidVal = llvm::StringSwitch>( - getStringOption(Config, Name, (DefaultVal ? "true" : "false"))) - .Case("true", true) - .Case("false", false) - .Default(None); + auto PossiblyInvalidVal = + llvm::StringSwitch>( + getStringOption(Config, Name, (DefaultVal ? "true" : "false"))) + .Case("true", true) + .Case("false", false) + .Default(std::nullopt); if (!PossiblyInvalidVal) { if (Diags) @@ -1382,10 +1383,10 @@ void CompilerInvocation::GenerateCodeGenArgs( DebugInfoVal = "unused-types"; break; case codegenoptions::NoDebugInfo: // default value - DebugInfoVal = None; + DebugInfoVal = std::nullopt; break; case codegenoptions::LocTrackingOnly: // implied value - DebugInfoVal = None; + DebugInfoVal = std::nullopt; break; } if (DebugInfoVal) @@ -2504,7 +2505,7 @@ static Optional getFrontendAction(OptSpecifier &Opt) { if (ActionOpt.second == Opt.getID()) return ActionOpt.first; - return None; + return std::nullopt; } /// Maps frontend action to command line option. @@ -2514,7 +2515,7 @@ getProgramActionOpt(frontend::ActionKind ProgramAction) { if (ActionOpt.first == ProgramAction) return OptSpecifier(ActionOpt.second); - return None; + return std::nullopt; } static void GenerateFrontendArgs(const FrontendOptions &Opts, @@ -2996,8 +2997,8 @@ static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, auto End = Opts.UserEntries.end(); // Add -I..., -F..., and -index-header-map options in order. - for (; It < End && - Matches(*It, {frontend::IndexHeaderMap, frontend::Angled}, None, true); + for (; It < End && Matches(*It, {frontend::IndexHeaderMap, frontend::Angled}, + std::nullopt, true); ++It) { OptSpecifier Opt = [It, Matches]() { if (Matches(*It, frontend::IndexHeaderMap, true, true)) @@ -3035,7 +3036,8 @@ static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, GenerateArg(Args, OPT_idirafter, It->Path, SA); for (; It < End && Matches(*It, {frontend::Quoted}, false, true); ++It) GenerateArg(Args, OPT_iquote, It->Path, SA); - for (; It < End && Matches(*It, {frontend::System}, false, None); ++It) + for (; It < End && Matches(*It, {frontend::System}, false, std::nullopt); + ++It) GenerateArg(Args, It->IgnoreSysRoot ? OPT_isystem : OPT_iwithsysroot, It->Path, SA); for (; It < End && Matches(*It, {frontend::System}, true, true); ++It) diff --git a/clang/lib/Frontend/DiagnosticRenderer.cpp b/clang/lib/Frontend/DiagnosticRenderer.cpp index 0afc8f3b1dab..2846a0d42e32 100644 --- a/clang/lib/Frontend/DiagnosticRenderer.cpp +++ b/clang/lib/Frontend/DiagnosticRenderer.cpp @@ -148,7 +148,7 @@ void DiagnosticRenderer::emitStoredDiagnostic(StoredDiagnostic &Diag) { void DiagnosticRenderer::emitBasicNote(StringRef Message) { emitDiagnosticMessage(FullSourceLoc(), PresumedLoc(), DiagnosticsEngine::Note, - Message, None, DiagOrStoredDiag()); + Message, std::nullopt, DiagOrStoredDiag()); } /// Prints an include stack when appropriate for a particular @@ -453,7 +453,7 @@ void DiagnosticRenderer::emitSingleMacroExpansion( Message << "expanded from macro '" << MacroName << "'"; emitDiagnostic(SpellingLoc, DiagnosticsEngine::Note, Message.str(), - SpellingRanges, None); + SpellingRanges, std::nullopt); } /// Check that the macro argument location of Loc starts with ArgumentLoc. diff --git a/clang/lib/Frontend/FrontendAction.cpp b/clang/lib/Frontend/FrontendAction.cpp index 8fa96be25630..e97a2dda1463 100644 --- a/clang/lib/Frontend/FrontendAction.cpp +++ b/clang/lib/Frontend/FrontendAction.cpp @@ -335,7 +335,7 @@ static std::error_code collectModuleHeaderIncludes( return std::error_code(); // Resolve all lazy header directives to header files. - ModMap.resolveHeaderDirectives(Module, /*File=*/llvm::None); + ModMap.resolveHeaderDirectives(Module, /*File=*/std::nullopt); // If any headers are missing, we can't build this module. In most cases, // diagnostics for this should have already been produced; we only get here diff --git a/clang/lib/Frontend/TextDiagnostic.cpp b/clang/lib/Frontend/TextDiagnostic.cpp index a0e11fa7a7c9..52129aa4ff2b 100644 --- a/clang/lib/Frontend/TextDiagnostic.cpp +++ b/clang/lib/Frontend/TextDiagnostic.cpp @@ -926,12 +926,13 @@ void TextDiagnostic::emitBuildingModuleLocation(FullSourceLoc Loc, static llvm::Optional> findLinesForRange(const CharSourceRange &R, FileID FID, const SourceManager &SM) { - if (!R.isValid()) return None; + if (!R.isValid()) + return std::nullopt; SourceLocation Begin = R.getBegin(); SourceLocation End = R.getEnd(); if (SM.getFileID(Begin) != FID || SM.getFileID(End) != FID) - return None; + return std::nullopt; return std::make_pair(SM.getExpansionLineNumber(Begin), SM.getExpansionLineNumber(End)); diff --git a/clang/lib/Index/IndexingContext.h b/clang/lib/Index/IndexingContext.h index 626d81f003e9..da6ec74b6e74 100644 --- a/clang/lib/Index/IndexingContext.h +++ b/clang/lib/Index/IndexingContext.h @@ -68,20 +68,18 @@ public: static bool isTemplateImplicitInstantiation(const Decl *D); bool handleDecl(const Decl *D, SymbolRoleSet Roles = SymbolRoleSet(), - ArrayRef Relations = None); + ArrayRef Relations = std::nullopt); bool handleDecl(const Decl *D, SourceLocation Loc, SymbolRoleSet Roles = SymbolRoleSet(), - ArrayRef Relations = None, + ArrayRef Relations = std::nullopt, const DeclContext *DC = nullptr); bool handleReference(const NamedDecl *D, SourceLocation Loc, - const NamedDecl *Parent, - const DeclContext *DC, + const NamedDecl *Parent, const DeclContext *DC, SymbolRoleSet Roles = SymbolRoleSet(), - ArrayRef Relations = None, - const Expr *RefE = nullptr, - const Decl *RefD = nullptr); + ArrayRef Relations = std::nullopt, + const Expr *RefE = nullptr, const Decl *RefD = nullptr); void handleMacroDefined(const IdentifierInfo &Name, SourceLocation Loc, const MacroInfo &MI); @@ -97,7 +95,7 @@ public: bool indexDecl(const Decl *D); void indexTagDecl(const TagDecl *D, - ArrayRef Relations = None); + ArrayRef Relations = std::nullopt); void indexTypeSourceInfo(TypeSourceInfo *TInfo, const NamedDecl *Parent, const DeclContext *DC = nullptr, diff --git a/clang/lib/Lex/DependencyDirectivesScanner.cpp b/clang/lib/Lex/DependencyDirectivesScanner.cpp index 5d280079b882..8d33e19f5df0 100644 --- a/clang/lib/Lex/DependencyDirectivesScanner.cpp +++ b/clang/lib/Lex/DependencyDirectivesScanner.cpp @@ -530,7 +530,7 @@ Scanner::tryLexIdentifierOrSkipLine(const char *&First, const char *const End) { if (Tok.isNot(tok::raw_identifier)) { if (!Tok.is(tok::eod)) skipLine(First, End); - return None; + return std::nullopt; } bool NeedsCleaning = Tok.Flags & clang::Token::NeedsCleaning; diff --git a/clang/lib/Lex/HeaderMap.cpp b/clang/lib/Lex/HeaderMap.cpp index 0001fc348eda..2512552c0f1a 100644 --- a/clang/lib/Lex/HeaderMap.cpp +++ b/clang/lib/Lex/HeaderMap.cpp @@ -151,7 +151,7 @@ Optional HeaderMapImpl::getString(unsigned StrTabIdx) const { // Check for invalid index. if (StrTabIdx >= FileBuffer->getBufferSize()) - return None; + return std::nullopt; const char *Data = FileBuffer->getBufferStart() + StrTabIdx; unsigned MaxLen = FileBuffer->getBufferSize() - StrTabIdx; @@ -159,7 +159,7 @@ Optional HeaderMapImpl::getString(unsigned StrTabIdx) const { // Check whether the buffer is null-terminated. if (Len == MaxLen && Data[Len - 1]) - return None; + return std::nullopt; return StringRef(Data, Len); } diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index 7bf278cc98da..e1c179edd527 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -432,14 +432,14 @@ Optional HeaderSearch::getFileAndSuggestModule( Diags.Report(IncludeLoc, diag::err_cannot_open_file) << FileName << EC.message(); } - return None; + return std::nullopt; } // If there is a module that corresponds to this header, suggest it. if (!findUsableModuleForHeader( &File->getFileEntry(), Dir ? Dir : File->getFileEntry().getDir(), RequestingModule, SuggestedModule, IsSystemHeaderDir)) - return None; + return std::nullopt; return *File; } @@ -487,7 +487,7 @@ Optional DirectoryLookup::LookupFile( SmallString<1024> Path; StringRef Dest = HM->lookupFilename(Filename, Path); if (Dest.empty()) - return None; + return std::nullopt; IsInHeaderMap = true; @@ -522,7 +522,7 @@ Optional DirectoryLookup::LookupFile( // function as part of the regular logic that applies to include search paths. // The case where the target file **does not exist** is handled here: HS.noteLookupUsage(HS.searchDirIdx(*this), IncludeLoc); - return None; + return std::nullopt; } /// Given a framework directory, find the top-most framework directory. @@ -595,7 +595,7 @@ Optional DirectoryLookup::DoFrameworkLookup( // Framework names must have a '/' in the filename. size_t SlashPos = Filename.find('/'); if (SlashPos == StringRef::npos) - return None; + return std::nullopt; // Find out if this is the home for the specified framework, by checking // HeaderSearch. Possible answers are yes/no and unknown. @@ -604,7 +604,7 @@ Optional DirectoryLookup::DoFrameworkLookup( // If it is known and in some other directory, fail. if (CacheEntry.Directory && CacheEntry.Directory != getFrameworkDirRef()) - return None; + return std::nullopt; // Otherwise, construct the path to this framework dir. @@ -628,7 +628,7 @@ Optional DirectoryLookup::DoFrameworkLookup( // If the framework dir doesn't exist, we fail. auto Dir = FileMgr.getDirectory(FrameworkName); if (!Dir) - return None; + return std::nullopt; // Otherwise, if it does, remember that this is the right direntry for this // framework. @@ -711,17 +711,17 @@ Optional DirectoryLookup::DoFrameworkLookup( if (!HS.findUsableModuleForFrameworkHeader( &File->getFileEntry(), FrameworkPath, RequestingModule, SuggestedModule, IsSystem)) - return None; + return std::nullopt; } else { if (!HS.findUsableModuleForHeader(&File->getFileEntry(), getDir(), RequestingModule, SuggestedModule, IsSystem)) - return None; + return std::nullopt; } } if (File) return *File; - return None; + return std::nullopt; } void HeaderSearch::cacheLookupSuccess(LookupFileCacheInfo &CacheLookup, @@ -880,7 +880,7 @@ Optional HeaderSearch::LookupFile( // If this was an #include_next "/absolute/file", fail. if (FromDir) - return None; + return std::nullopt; if (SearchPath) SearchPath->clear(); @@ -1166,7 +1166,7 @@ Optional HeaderSearch::LookupFile( // Otherwise, didn't find it. Remember we didn't find this. CacheLookup.HitIt = search_dir_end(); - return None; + return std::nullopt; } /// LookupSubframeworkHeader - Look up a subframework for the specified @@ -1184,7 +1184,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( // FIXME: Should we permit '\' on Windows? size_t SlashPos = Filename.find('/'); if (SlashPos == StringRef::npos) - return None; + return std::nullopt; // Look up the base framework name of the ContextFileEnt. StringRef ContextName = ContextFileEnt->getName(); @@ -1195,7 +1195,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( if (FrameworkPos == StringRef::npos || (ContextName[FrameworkPos + DotFrameworkLen] != '/' && ContextName[FrameworkPos + DotFrameworkLen] != '\\')) - return None; + return std::nullopt; SmallString<1024> FrameworkName(ContextName.data(), ContextName.data() + FrameworkPos + @@ -1215,7 +1215,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( CacheLookup.first().size() == FrameworkName.size() && memcmp(CacheLookup.first().data(), &FrameworkName[0], CacheLookup.first().size()) != 0) - return None; + return std::nullopt; // Cache subframework. if (!CacheLookup.second.Directory) { @@ -1224,7 +1224,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( // If the framework dir doesn't exist, we fail. auto Dir = FileMgr.getOptionalDirectoryRef(FrameworkName); if (!Dir) - return None; + return std::nullopt; // Otherwise, if it does, remember that this is the right direntry for this // framework. @@ -1262,7 +1262,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( File = FileMgr.getOptionalFileRef(HeadersFilename, /*OpenFile=*/true); if (!File) - return None; + return std::nullopt; } // This file is a system header or C++ unfriendly if the old file is. @@ -1277,7 +1277,7 @@ Optional HeaderSearch::LookupSubframeworkHeader( if (!findUsableModuleForFrameworkHeader(&File->getFileEntry(), FrameworkName, RequestingModule, SuggestedModule, /*IsSystem*/ false)) - return None; + return std::nullopt; return *File; } diff --git a/clang/lib/Lex/InitHeaderSearch.cpp b/clang/lib/Lex/InitHeaderSearch.cpp index 1f57742161fb..f91988c4085d 100644 --- a/clang/lib/Lex/InitHeaderSearch.cpp +++ b/clang/lib/Lex/InitHeaderSearch.cpp @@ -62,14 +62,14 @@ public: /// if used. /// Returns true if the path exists, false if it was ignored. bool AddPath(const Twine &Path, IncludeDirGroup Group, bool isFramework, - Optional UserEntryIdx = None); + Optional UserEntryIdx = std::nullopt); /// Add the specified path to the specified group list, without performing any /// sysroot remapping. /// Returns true if the path exists, false if it was ignored. bool AddUnmappedPath(const Twine &Path, IncludeDirGroup Group, bool isFramework, - Optional UserEntryIdx = None); + Optional UserEntryIdx = std::nullopt); /// Add the specified prefix to the system header prefix list. void AddSystemHeaderPrefix(StringRef Prefix, bool IsSystemHeader) { diff --git a/clang/lib/Lex/Lexer.cpp b/clang/lib/Lex/Lexer.cpp index d45a6fb0a2f8..5679e10605a6 100644 --- a/clang/lib/Lex/Lexer.cpp +++ b/clang/lib/Lex/Lexer.cpp @@ -1261,7 +1261,7 @@ Optional Lexer::findNextToken(SourceLocation Loc, const LangOptions &LangOpts) { if (Loc.isMacroID()) { if (!Lexer::isAtEndOfMacroExpansion(Loc, SM, LangOpts, &Loc)) - return None; + return std::nullopt; } Loc = Lexer::getLocForEndOfToken(Loc, 0, SM, LangOpts); @@ -1272,7 +1272,7 @@ Optional Lexer::findNextToken(SourceLocation Loc, bool InvalidTemp = false; StringRef File = SM.getBufferData(LocInfo.first, &InvalidTemp); if (InvalidTemp) - return None; + return std::nullopt; const char *TokenBegin = File.data() + LocInfo.second; @@ -3216,7 +3216,7 @@ llvm::Optional Lexer::tryReadNumericUCN(const char *&StartPtr, if (!LangOpts.CPlusPlus && !LangOpts.C99) { if (Diagnose) Diag(SlashLoc, diag::warn_ucn_not_valid_in_c89); - return llvm::None; + return std::nullopt; } const char *CurPtr = StartPtr + CharSize; @@ -3244,13 +3244,13 @@ llvm::Optional Lexer::tryReadNumericUCN(const char *&StartPtr, if (Diagnose) Diag(BufferPtr, diag::warn_delimited_ucn_incomplete) << StringRef(KindLoc, 1); - return llvm::None; + return std::nullopt; } if (CodePoint & 0xF000'0000) { if (Diagnose) Diag(KindLoc, diag::err_escape_too_large) << 0; - return llvm::None; + return std::nullopt; } CodePoint <<= 4; @@ -3264,13 +3264,13 @@ llvm::Optional Lexer::tryReadNumericUCN(const char *&StartPtr, Diag(StartPtr, FoundEndDelimiter ? diag::warn_delimited_ucn_empty : diag::warn_ucn_escape_no_digits) << StringRef(KindLoc, 1); - return llvm::None; + return std::nullopt; } if (Delimited && Kind == 'U') { if (Diagnose) Diag(StartPtr, diag::err_hex_escape_no_digits) << StringRef(KindLoc, 1); - return llvm::None; + return std::nullopt; } if (!Delimited && Count != NumHexDigits) { @@ -3283,7 +3283,7 @@ llvm::Optional Lexer::tryReadNumericUCN(const char *&StartPtr, << FixItHint::CreateReplacement(URange, "u"); } } - return llvm::None; + return std::nullopt; } if (Delimited && PP) { @@ -3321,7 +3321,7 @@ llvm::Optional Lexer::tryReadNamedUCN(const char *&StartPtr, if (C != '{') { if (Diagnose) Diag(StartPtr, diag::warn_ucn_escape_incomplete); - return llvm::None; + return std::nullopt; } CurPtr += CharSize; const char *StartName = CurPtr; @@ -3345,7 +3345,7 @@ llvm::Optional Lexer::tryReadNamedUCN(const char *&StartPtr, Diag(StartPtr, FoundEndDelimiter ? diag::warn_delimited_ucn_empty : diag::warn_delimited_ucn_incomplete) << StringRef(KindLoc, 1); - return llvm::None; + return std::nullopt; } StringRef Name(Buffer.data(), Buffer.size()); @@ -3367,7 +3367,7 @@ llvm::Optional Lexer::tryReadNamedUCN(const char *&StartPtr, // When finding a match using Unicode loose matching rules // recover after having emitted a diagnostic. if (!LooseMatch) - return llvm::None; + return std::nullopt; // We do not offer misspelled character names suggestions here // as the set of what would be a valid suggestion depends on context, // and we should not make invalid suggestions. diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index 4e86c5c69444..b66d95d8c0c2 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -189,7 +189,7 @@ Optional ModuleMap::findHeader( expectedToOptional(SourceMgr.getFileManager().getFileRef(Filename)); if (!File || (Header.Size && File->getSize() != *Header.Size) || (Header.ModTime && File->getModificationTime() != *Header.ModTime)) - return None; + return std::nullopt; return *File; }; @@ -247,7 +247,7 @@ Optional ModuleMap::findHeader( << Header.FileName << M->getFullModuleName(); NeedsFramework = true; } - return None; + return std::nullopt; } return NormalHdrFile; @@ -482,7 +482,7 @@ void ModuleMap::diagnoseHeaderInclusion(Module *RequestingModule, if (RequestingModule) { resolveUses(RequestingModule, /*Complain=*/false); - resolveHeaderDirectives(RequestingModule, /*File=*/llvm::None); + resolveHeaderDirectives(RequestingModule, /*File=*/std::nullopt); } bool Excluded = false; @@ -690,7 +690,7 @@ ModuleMap::findAllModulesForHeader(const FileEntry *File) { if (findOrCreateModuleForHeaderInUmbrellaDir(File)) return Headers.find(File)->second; - return None; + return std::nullopt; } ArrayRef @@ -699,7 +699,7 @@ ModuleMap::findResolvedModulesForHeader(const FileEntry *File) const { resolveHeaderDirectives(File); auto It = Headers.find(File); if (It == Headers.end()) - return None; + return std::nullopt; return It->second; } @@ -1262,7 +1262,7 @@ void ModuleMap::addHeader(Module *Mod, Module::Header Header, Optional ModuleMap::getContainingModuleMapFile(const Module *Module) const { if (Module->DefinitionLoc.isInvalid()) - return None; + return std::nullopt; return SourceMgr.getFileEntryRefForID( SourceMgr.getFileID(Module->DefinitionLoc)); diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 7012f2faaced..87a40724fac0 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -307,7 +307,7 @@ static Optional findSimilarStr( if (SimilarStr) { return SimilarStr->first; } else { - return None; + return std::nullopt; } } @@ -1077,7 +1077,7 @@ Optional Preprocessor::LookupFile( } // Otherwise, we really couldn't find the file. - return None; + return std::nullopt; } //===----------------------------------------------------------------------===// @@ -2020,7 +2020,7 @@ Optional Preprocessor::LookupHeaderIncludeOrImport( return File; if (SuppressIncludeNotFoundError) - return None; + return std::nullopt; // If the file could not be located and it was included via angle // brackets, we can attempt a lookup as though it were a quoted path to @@ -2095,7 +2095,7 @@ Optional Preprocessor::LookupHeaderIncludeOrImport( << CacheEntry.Directory->getName(); } - return None; + return std::nullopt; } /// Handle either a #include-like directive or an import declaration that names diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index ffc758d47c7a..794881f7304a 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -285,7 +285,8 @@ void Preprocessor::dumpMacroInfo(const IdentifierInfo *II) { // Dump module macros. llvm::DenseSet Active; - for (auto *MM : State ? State->getActiveModuleMacros(*this, II) : None) + for (auto *MM : + State ? State->getActiveModuleMacros(*this, II) : std::nullopt) Active.insert(MM); llvm::DenseSet Visited; llvm::SmallVector Worklist(Leaf.begin(), Leaf.end()); diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index e03c13d64178..74893dee2123 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -2421,8 +2421,8 @@ Decl *Parser::ParseDeclarationAfterDeclaratorAndAttributes( // Recover as if it were an explicit specialization. TemplateParameterLists FakedParamLists; FakedParamLists.push_back(Actions.ActOnTemplateParameterList( - 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None, - LAngleLoc, nullptr)); + 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, + std::nullopt, LAngleLoc, nullptr)); ThisDecl = Actions.ActOnTemplateDeclarator(getCurScope(), FakedParamLists, D); diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index e244cfc9948c..53afdd7e7291 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -1999,8 +1999,8 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind, // "template<>", so that we treat this construct as a class // template specialization. FakedParamLists.push_back(Actions.ActOnTemplateParameterList( - 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None, - LAngleLoc, nullptr)); + 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, + std::nullopt, LAngleLoc, nullptr)); TemplateParams = &FakedParamLists; } } diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index d73408d6b3dc..95d8b649f19b 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -3612,8 +3612,8 @@ ExprResult Parser::ParseBlockLiteralExpression() { /*NumExceptions=*/0, /*NoexceptExpr=*/nullptr, /*ExceptionSpecTokens=*/nullptr, - /*DeclsInPrototype=*/None, CaretLoc, - CaretLoc, ParamInfo), + /*DeclsInPrototype=*/std::nullopt, + CaretLoc, CaretLoc, ParamInfo), CaretLoc); MaybeParseGNUAttributes(ParamInfo); @@ -3702,11 +3702,11 @@ Optional Parser::ParseAvailabilitySpec() { if (Tok.is(tok::code_completion)) { cutOffParsing(); Actions.CodeCompleteAvailabilityPlatformName(); - return None; + return std::nullopt; } if (Tok.isNot(tok::identifier)) { Diag(Tok, diag::err_avail_query_expected_platform_name); - return None; + return std::nullopt; } IdentifierLoc *PlatformIdentifier = ParseIdentifierLoc(); @@ -3714,7 +3714,7 @@ Optional Parser::ParseAvailabilitySpec() { VersionTuple Version = ParseVersionTuple(VersionRange); if (Version.empty()) - return None; + return std::nullopt; StringRef GivenPlatform = PlatformIdentifier->Ident->getName(); StringRef Platform = @@ -3724,7 +3724,7 @@ Optional Parser::ParseAvailabilitySpec() { Diag(PlatformIdentifier->Loc, diag::err_avail_query_unrecognized_platform_name) << GivenPlatform; - return None; + return std::nullopt; } return AvailabilitySpec(Version, Platform, PlatformIdentifier->Loc, diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index 1a268dee3be1..5017f31a1ecb 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -1443,8 +1443,8 @@ ExprResult Parser::ParseLambdaExpressionAfterIntroducer( DynamicExceptions.size(), NoexceptExpr.isUsable() ? NoexceptExpr.get() : nullptr, /*ExceptionSpecTokens*/ nullptr, - /*DeclsInPrototype=*/None, LParenLoc, FunLocalRangeEnd, D, - TrailingReturnType, TrailingReturnTypeLoc, &DS), + /*DeclsInPrototype=*/std::nullopt, LParenLoc, FunLocalRangeEnd, + D, TrailingReturnType, TrailingReturnTypeLoc, &DS), std::move(Attr), DeclEndLoc); }; diff --git a/clang/lib/Parse/ParseInit.cpp b/clang/lib/Parse/ParseInit.cpp index d394b13f11e8..af0c3b47958d 100644 --- a/clang/lib/Parse/ParseInit.cpp +++ b/clang/lib/Parse/ParseInit.cpp @@ -451,7 +451,7 @@ ExprResult Parser::ParseBraceInitializer() { if (!getLangOpts().CPlusPlus) Diag(LBraceLoc, diag::ext_gnu_empty_initializer); // Match the '}'. - return Actions.ActOnInitList(LBraceLoc, None, ConsumeBrace()); + return Actions.ActOnInitList(LBraceLoc, std::nullopt, ConsumeBrace()); } // Enter an appropriate expression evaluation context for an initializer list. diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp index 5009302a6a12..4a18cce11feb 100644 --- a/clang/lib/Parse/ParseObjc.cpp +++ b/clang/lib/Parse/ParseObjc.cpp @@ -3201,14 +3201,14 @@ Parser::ParseObjCMessageExpressionBody(SourceLocation LBracLoc, if (Tok.is(tok::code_completion)) { cutOffParsing(); if (SuperLoc.isValid()) - Actions.CodeCompleteObjCSuperMessage(getCurScope(), SuperLoc, None, - false); + Actions.CodeCompleteObjCSuperMessage(getCurScope(), SuperLoc, + std::nullopt, false); else if (ReceiverType) - Actions.CodeCompleteObjCClassMessage(getCurScope(), ReceiverType, None, - false); + Actions.CodeCompleteObjCClassMessage(getCurScope(), ReceiverType, + std::nullopt, false); else Actions.CodeCompleteObjCInstanceMessage(getCurScope(), ReceiverExpr, - None, false); + std::nullopt, false); return ExprError(); } @@ -3540,9 +3540,8 @@ ExprResult Parser::ParseObjCDictionaryLiteral(SourceLocation AtLoc) { // We have a valid expression. Collect it in a vector so we can // build the argument list. - ObjCDictionaryElement Element = { - KeyExpr.get(), ValueExpr.get(), EllipsisLoc, None - }; + ObjCDictionaryElement Element = {KeyExpr.get(), ValueExpr.get(), + EllipsisLoc, std::nullopt}; Elements.push_back(Element); if (!TryConsumeToken(tok::comma) && Tok.isNot(tok::r_brace)) diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 5e4411b86ab4..15bf4a959441 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -1790,7 +1790,7 @@ parseOpenMPSimpleClause(Parser &P, OpenMPClauseKind Kind) { BalancedDelimiterTracker T(P, tok::l_paren, tok::annot_pragma_openmp_end); if (T.expectAndConsume(diag::err_expected_lparen_after, getOpenMPClauseName(Kind).data())) - return llvm::None; + return std::nullopt; unsigned Type = getOpenMPSimpleClauseType( Kind, Tok.isAnnotation() ? "" : P.getPreprocessor().getSpelling(Tok), @@ -2961,7 +2961,7 @@ StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective( DKind == OMPD_target_exit_data) { Actions.ActOnOpenMPRegionStart(DKind, getCurScope()); AssociatedStmt = (Sema::CompoundScopeRAII(Actions), - Actions.ActOnCompoundStmt(Loc, Loc, llvm::None, + Actions.ActOnCompoundStmt(Loc, Loc, std::nullopt, /*isStmtExpr=*/false)); AssociatedStmt = Actions.ActOnOpenMPRegionEnd(AssociatedStmt, Clauses); } diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 360601f27176..705026ea30f7 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -3203,7 +3203,7 @@ void PragmaFPHandler::HandlePragma(Preprocessor &PP, .Case("reassociate", TokFPAnnotValue::Reassociate) .Case("exceptions", TokFPAnnotValue::Exceptions) .Case("eval_method", TokFPAnnotValue::EvalMethod) - .Default(None); + .Default(std::nullopt); if (!FlagKind) { PP.Diag(Tok.getLocation(), diag::err_pragma_fp_invalid_option) << /*MissingOption=*/false << OptionInfo; @@ -3236,7 +3236,7 @@ void PragmaFPHandler::HandlePragma(Preprocessor &PP, .Case("on", LangOptions::FPModeKind::FPM_On) .Case("off", LangOptions::FPModeKind::FPM_Off) .Case("fast", LangOptions::FPModeKind::FPM_Fast) - .Default(llvm::None); + .Default(std::nullopt); if (!AnnotValue->ContractValue) { PP.Diag(Tok.getLocation(), diag::err_pragma_fp_invalid_argument) << PP.getSpelling(Tok) << OptionInfo->getName() << *FlagKind; @@ -3248,7 +3248,7 @@ void PragmaFPHandler::HandlePragma(Preprocessor &PP, II->getName()) .Case("on", LangOptions::FPModeKind::FPM_On) .Case("off", LangOptions::FPModeKind::FPM_Off) - .Default(llvm::None); + .Default(std::nullopt); if (!AnnotValue->ReassociateValue) { PP.Diag(Tok.getLocation(), diag::err_pragma_fp_invalid_argument) << PP.getSpelling(Tok) << OptionInfo->getName() << *FlagKind; @@ -3261,7 +3261,7 @@ void PragmaFPHandler::HandlePragma(Preprocessor &PP, .Case("ignore", LangOptions::FPE_Ignore) .Case("maytrap", LangOptions::FPE_MayTrap) .Case("strict", LangOptions::FPE_Strict) - .Default(llvm::None); + .Default(std::nullopt); if (!AnnotValue->ExceptionsValue) { PP.Diag(Tok.getLocation(), diag::err_pragma_fp_invalid_argument) << PP.getSpelling(Tok) << OptionInfo->getName() << *FlagKind; @@ -3274,7 +3274,7 @@ void PragmaFPHandler::HandlePragma(Preprocessor &PP, .Case("source", LangOptions::FPEvalMethodKind::FEM_Source) .Case("double", LangOptions::FPEvalMethodKind::FEM_Double) .Case("extended", LangOptions::FPEvalMethodKind::FEM_Extended) - .Default(llvm::None); + .Default(std::nullopt); if (!AnnotValue->EvalMethodValue) { PP.Diag(Tok.getLocation(), diag::err_pragma_fp_invalid_argument) << PP.getSpelling(Tok) << OptionInfo->getName() << *FlagKind; diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index 6a50f8389430..e16021878b9e 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -2451,7 +2451,8 @@ Decl *Parser::ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope) { // If the function body could not be parsed, make a bogus compoundstmt. if (FnBody.isInvalid()) { Sema::CompoundScopeRAII CompoundScope(Actions); - FnBody = Actions.ActOnCompoundStmt(LBraceLoc, LBraceLoc, None, false); + FnBody = + Actions.ActOnCompoundStmt(LBraceLoc, LBraceLoc, std::nullopt, false); } BodyScope.Exit(); @@ -2488,7 +2489,8 @@ Decl *Parser::ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope) { // compound statement as the body. if (FnBody.isInvalid()) { Sema::CompoundScopeRAII CompoundScope(Actions); - FnBody = Actions.ActOnCompoundStmt(LBraceLoc, LBraceLoc, None, false); + FnBody = + Actions.ActOnCompoundStmt(LBraceLoc, LBraceLoc, std::nullopt, false); } BodyScope.Exit(); diff --git a/clang/lib/Parse/ParseTemplate.cpp b/clang/lib/Parse/ParseTemplate.cpp index a93edfa29664..6fc67b6965dd 100644 --- a/clang/lib/Parse/ParseTemplate.cpp +++ b/clang/lib/Parse/ParseTemplate.cpp @@ -341,8 +341,8 @@ Decl *Parser::ParseSingleDeclarationAfterTemplate( // Recover as if it were an explicit specialization. TemplateParameterLists FakedParamLists; FakedParamLists.push_back(Actions.ActOnTemplateParameterList( - 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None, - LAngleLoc, nullptr)); + 0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, + std::nullopt, LAngleLoc, nullptr)); return ParseFunctionDefinition( DeclaratorInfo, ParsedTemplateInfo(&FakedParamLists, diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index 33fd31daec0d..104836aca4a9 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -917,7 +917,7 @@ Parser::ParseExternalDeclaration(ParsedAttributes &Attrs, if (CurParsedObjCImpl) { // Code-complete Objective-C methods even without leading '-'/'+' prefix. Actions.CodeCompleteObjCMethodDecl(getCurScope(), - /*IsInstanceMethod=*/None, + /*IsInstanceMethod=*/std::nullopt, /*ReturnType=*/nullptr); } Actions.CodeCompleteOrdinaryName( diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 143fd301ffab..a775d14c5ac1 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -2410,8 +2410,8 @@ InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) { Content, None, } Kind; - llvm::Optional Old = llvm::None; - llvm::Optional New = llvm::None; + llvm::Optional Old = std::nullopt; + llvm::Optional New = std::nullopt; }; auto HasInputFileChanged = [&]() { if (StoredSize != File->getSize()) @@ -3966,13 +3966,13 @@ ASTReader::ReadModuleMapFileBlock(RecordData &Record, ModuleFile &F, PP.getHeaderSearchInfo().lookupModule(F.ModuleName, F.ImportLoc); auto &Map = PP.getHeaderSearchInfo().getModuleMap(); Optional ModMap = - M ? Map.getModuleMapFileForUniquing(M) : None; + M ? Map.getModuleMapFileForUniquing(M) : std::nullopt; // Don't emit module relocation error if we have -fno-validate-pch if (!bool(PP.getPreprocessorOpts().DisablePCHOrModuleValidation & DisableValidationForModuleKind::Module) && !ModMap) { if (!canRecoverFromOutOfDate(F.FileName, ClientLoadCapabilities)) { - if (auto ASTFE = M ? M->getASTFile() : None) { + if (auto ASTFE = M ? M->getASTFile() : std::nullopt) { // This module was defined by an imported (explicit) module. Diag(diag::err_module_file_conflict) << F.ModuleName << F.FileName << ASTFE->getName(); @@ -6479,7 +6479,8 @@ static llvm::Optional getTypeClassForCode(TypeCode code) { #define TYPE_BIT_CODE(CLASS_ID, CODE_ID, CODE_VALUE) \ case TYPE_##CODE_ID: return Type::CLASS_ID; #include "clang/Serialization/TypeBitCodes.def" - default: return llvm::None; + default: + return std::nullopt; } } @@ -8778,7 +8779,7 @@ ASTReader::getSourceDescriptor(unsigned ID) { llvm::sys::path::parent_path(MF.FileName), FileName, MF.Signature); } - return None; + return std::nullopt; } ExternalASTSource::ExtKind ASTReader::hasExternalDefinitions(const Decl *FD) { diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index cd70e7cd65a5..b884600b0596 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -1878,7 +1878,7 @@ void ASTWriter::WriteHeaderSearch(const HeaderSearch &HS) { // headers list when emitting resolved headers in the first loop below. // FIXME: It'd be preferable to avoid doing this if we were given // sufficient stat information in the module map. - HS.getModuleMap().resolveHeaderDirectives(M, /*File=*/llvm::None); + HS.getModuleMap().resolveHeaderDirectives(M, /*File=*/std::nullopt); // If the file didn't exist, we can still create a module if we were given // enough information in the module map. diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index 17476a0d9956..353a58507cb2 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -205,7 +205,7 @@ namespace clang { return Common->PartialSpecializations; } ArrayRef getPartialSpecializations(FunctionTemplateDecl::Common *) { - return None; + return std::nullopt; } template diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index 544dac1716b0..ae4ea61d9d8e 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -445,7 +445,7 @@ void ModuleManager::visit(llvm::function_ref Visitor, bool ModuleManager::lookupModuleFile(StringRef FileName, off_t ExpectedSize, time_t ExpectedModTime, Optional &File) { - File = None; + File = std::nullopt; if (FileName == "-") return false; diff --git a/clang/lib/Support/RISCVVIntrinsicUtils.cpp b/clang/lib/Support/RISCVVIntrinsicUtils.cpp index 92e7fcbb9124..18dd9403f17d 100644 --- a/clang/lib/Support/RISCVVIntrinsicUtils.cpp +++ b/clang/lib/Support/RISCVVIntrinsicUtils.cpp @@ -65,7 +65,7 @@ VScaleVal LMULType::getScale(unsigned ElementBitwidth) const { } // Illegal vscale result would be less than 1 if (Log2ScaleResult < 0) - return llvm::None; + return std::nullopt; return 1 << Log2ScaleResult; } @@ -433,7 +433,7 @@ Optional PrototypeDescriptor::parsePrototypeDescriptor( uint32_t Log2EEW; if (ComplexTT.second.getAsInteger(10, Log2EEW)) { llvm_unreachable("Invalid Log2EEW value!"); - return None; + return std::nullopt; } switch (Log2EEW) { case 3: @@ -450,13 +450,13 @@ Optional PrototypeDescriptor::parsePrototypeDescriptor( break; default: llvm_unreachable("Invalid Log2EEW value, should be [3-6]"); - return None; + return std::nullopt; } } else if (ComplexTT.first == "FixedSEW") { uint32_t NewSEW; if (ComplexTT.second.getAsInteger(10, NewSEW)) { llvm_unreachable("Invalid FixedSEW value!"); - return None; + return std::nullopt; } switch (NewSEW) { case 8: @@ -473,13 +473,13 @@ Optional PrototypeDescriptor::parsePrototypeDescriptor( break; default: llvm_unreachable("Invalid FixedSEW value, should be 8, 16, 32 or 64"); - return None; + return std::nullopt; } } else if (ComplexTT.first == "LFixedLog2LMUL") { int32_t Log2LMUL; if (ComplexTT.second.getAsInteger(10, Log2LMUL)) { llvm_unreachable("Invalid LFixedLog2LMUL value!"); - return None; + return std::nullopt; } switch (Log2LMUL) { case -3: @@ -505,13 +505,13 @@ Optional PrototypeDescriptor::parsePrototypeDescriptor( break; default: llvm_unreachable("Invalid LFixedLog2LMUL value, should be [-3, 3]"); - return None; + return std::nullopt; } } else if (ComplexTT.first == "SFixedLog2LMUL") { int32_t Log2LMUL; if (ComplexTT.second.getAsInteger(10, Log2LMUL)) { llvm_unreachable("Invalid SFixedLog2LMUL value!"); - return None; + return std::nullopt; } switch (Log2LMUL) { case -3: @@ -537,7 +537,7 @@ Optional PrototypeDescriptor::parsePrototypeDescriptor( break; default: llvm_unreachable("Invalid LFixedLog2LMUL value, should be [-3, 3]"); - return None; + return std::nullopt; } } else { @@ -788,13 +788,13 @@ RVVTypeCache::computeTypes(BasicType BT, int Log2LMUL, unsigned NF, ArrayRef Prototype) { // LMUL x NF must be less than or equal to 8. if ((Log2LMUL >= 1) && (1 << Log2LMUL) * NF > 8) - return llvm::None; + return std::nullopt; RVVTypes Types; for (const PrototypeDescriptor &Proto : Prototype) { auto T = computeType(BT, Log2LMUL, Proto); if (!T) - return llvm::None; + return std::nullopt; // Record legal type index Types.push_back(T.value()); } @@ -823,7 +823,7 @@ Optional RVVTypeCache::computeType(BasicType BT, int Log2LMUL, return &(It->second); if (IllegalTypes.count(Idx)) - return llvm::None; + return std::nullopt; // Compute type and record the result. RVVType T(BT, Log2LMUL, Proto); @@ -835,7 +835,7 @@ Optional RVVTypeCache::computeType(BasicType BT, int Log2LMUL, } // Record illegal type index. IllegalTypes.insert(Idx); - return llvm::None; + return std::nullopt; } //===----------------------------------------------------------------------===// diff --git a/clang/lib/Tooling/ASTDiff/ASTDiff.cpp b/clang/lib/Tooling/ASTDiff/ASTDiff.cpp index 6b359c1910bc..a25a7db28ae8 100644 --- a/clang/lib/Tooling/ASTDiff/ASTDiff.cpp +++ b/clang/lib/Tooling/ASTDiff/ASTDiff.cpp @@ -691,7 +691,7 @@ llvm::Optional Node::getQualifiedIdentifier() const { if (ND->getDeclName().isIdentifier()) return ND->getQualifiedNameAsString(); } - return llvm::None; + return std::nullopt; } llvm::Optional Node::getIdentifier() const { @@ -699,7 +699,7 @@ llvm::Optional Node::getIdentifier() const { if (ND->getDeclName().isIdentifier()) return ND->getName(); } - return llvm::None; + return std::nullopt; } namespace { diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index ff2d4b76820e..4b0da86a4f7b 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -147,7 +147,7 @@ public: StringRef WorkingDirectory, DependencyConsumer &Consumer, llvm::IntrusiveRefCntPtr DepFS, ScanningOutputFormat Format, bool OptimizeArgs, bool EagerLoadModules, - bool DisableFree, llvm::Optional ModuleName = None) + bool DisableFree, llvm::Optional ModuleName = std::nullopt) : WorkingDirectory(WorkingDirectory), Consumer(Consumer), DepFS(std::move(DepFS)), Format(Format), OptimizeArgs(OptimizeArgs), EagerLoadModules(EagerLoadModules), DisableFree(DisableFree), @@ -219,7 +219,7 @@ public: if (llvm::ErrorOr Entry = LocalDepFS->getOrCreateFileSystemEntry(File.getName())) return Entry->getDirectiveTokens(); - return None; + return std::nullopt; }; } diff --git a/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp b/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp index c0ed78134f1a..ea9cfacc206e 100644 --- a/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp +++ b/clang/lib/Tooling/Inclusions/HeaderAnalysis.cpp @@ -68,14 +68,14 @@ bool isSelfContainedHeader(const FileEntry *FE, const SourceManager &SM, llvm::Optional parseIWYUPragma(const char *Text) { // Skip the comment start, // or /*. if (Text[0] != '/' || (Text[1] != '/' && Text[1] != '*')) - return llvm::None; + return std::nullopt; bool BlockComment = Text[1] == '*'; Text += 2; // Per spec, direcitves are whitespace- and case-sensitive. constexpr llvm::StringLiteral IWYUPragma = " IWYU pragma: "; if (strncmp(Text, IWYUPragma.data(), IWYUPragma.size())) - return llvm::None; + return std::nullopt; Text += IWYUPragma.size(); const char *End = Text; while (*End != 0 && *End != '\n') diff --git a/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp b/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp index 4d68f0f674f1..dbe4f1e8827e 100644 --- a/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp +++ b/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp @@ -58,7 +58,7 @@ unsigned getOffsetAfterTokenSequence( // (second) raw_identifier name is checked. bool checkAndConsumeDirectiveWithName( Lexer &Lex, StringRef Name, Token &Tok, - llvm::Optional RawIDName = llvm::None) { + llvm::Optional RawIDName = std::nullopt) { bool Matched = Tok.is(tok::hash) && !Lex.LexFromRawLexer(Tok) && Tok.is(tok::raw_identifier) && Tok.getRawIdentifier() == Name && !Lex.LexFromRawLexer(Tok) && @@ -352,7 +352,7 @@ HeaderIncludes::insert(llvm::StringRef IncludeName, bool IsAngled) const { for (const auto &Inc : It->second) if ((IsAngled && StringRef(Inc.Name).startswith("<")) || (!IsAngled && StringRef(Inc.Name).startswith("\""))) - return llvm::None; + return std::nullopt; std::string Quoted = std::string(llvm::formatv(IsAngled ? "<{0}>" : "\"{0}\"", IncludeName)); StringRef QuotedName = Quoted; diff --git a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp index f131ab663fc4..87276f531ce8 100644 --- a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp +++ b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp @@ -81,7 +81,7 @@ llvm::Optional
Header::named(llvm::StringRef Name) { ensureInitialized(); auto It = HeaderIDs->find(Name); if (It == HeaderIDs->end()) - return llvm::None; + return std::nullopt; return Header(It->second); } llvm::StringRef Header::name() const { return HeaderNames[ID]; } @@ -95,7 +95,7 @@ llvm::Optional Symbol::named(llvm::StringRef Scope, if (It != NSSymbols->end()) return Symbol(It->second); } - return llvm::None; + return std::nullopt; } Header Symbol::header() const { return Header(SymbolHeaderIDs[ID]); } llvm::SmallVector
Symbol::headers() const { @@ -137,7 +137,7 @@ llvm::Optional Recognizer::operator()(const Decl *D) { } NSSymbolMap *Symbols = namespaceSymbols(cast_or_null(DC)); if (!Symbols) - return llvm::None; + return std::nullopt; llvm::StringRef Name = [&]() -> llvm::StringRef { for (const auto *SymDC : llvm::reverse(IntermediateDecl)) { @@ -153,11 +153,11 @@ llvm::Optional Recognizer::operator()(const Decl *D) { return ""; }(); if (Name.empty()) - return llvm::None; + return std::nullopt; auto It = Symbols->find(Name); if (It == Symbols->end()) - return llvm::None; + return std::nullopt; return Symbol(It->second); } diff --git a/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp b/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp index 05cba0b5e2c0..0322d02817cd 100644 --- a/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp +++ b/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp @@ -207,7 +207,7 @@ struct TransferableCommand { Type = foldType(*Type); // The contract is to store None instead of TY_INVALID. if (Type == types::TY_INVALID) - Type = llvm::None; + Type = std::nullopt; } // Produce a CompileCommand for \p filename, based on this one. @@ -291,7 +291,7 @@ private: if (Opt.matches(driver::options::OPT_x)) return types::lookupTypeForTypeSpecifier(Arg.getValue()); } - return None; + return std::nullopt; } // Try to interpret the argument as '-std='. @@ -299,7 +299,7 @@ private: using namespace driver::options; if (Arg.getOption().matches(ClangCLMode ? OPT__SLASH_std : OPT_std_EQ)) return LangStandard::getLangKind(Arg.getValue()); - return None; + return std::nullopt; } }; diff --git a/clang/lib/Tooling/Refactoring/ASTSelection.cpp b/clang/lib/Tooling/Refactoring/ASTSelection.cpp index d5e59e089f09..9658ce574197 100644 --- a/clang/lib/Tooling/Refactoring/ASTSelection.cpp +++ b/clang/lib/Tooling/Refactoring/ASTSelection.cpp @@ -55,7 +55,7 @@ public: SelectedASTNode Result = std::move(SelectionStack.back()); SelectionStack.pop_back(); if (Result.Children.empty()) - return None; + return std::nullopt; return std::move(Result); } @@ -380,17 +380,17 @@ CodeRangeASTSelection::create(SourceRange SelectionRange, const SelectedASTNode &ASTSelection) { // Code range is selected when the selection range is not empty. if (SelectionRange.getBegin() == SelectionRange.getEnd()) - return None; + return std::nullopt; llvm::SmallVector ContainSelection; findDeepestWithKind(ASTSelection, ContainSelection, SourceSelectionKind::ContainsSelection); // We are looking for a selection in one body of code, so let's focus on // one matching result. if (ContainSelection.size() != 1) - return None; + return std::nullopt; SelectedNodeWithParents &Selected = ContainSelection[0]; if (!Selected.Node.get().Node.get()) - return None; + return std::nullopt; const Stmt *CodeRangeStmt = Selected.Node.get().Node.get(); if (!isa(CodeRangeStmt)) { Selected.canonicalize(); diff --git a/clang/lib/Tooling/Syntax/Tokens.cpp b/clang/lib/Tooling/Syntax/Tokens.cpp index fe979afe6f95..ee1dca09f473 100644 --- a/clang/lib/Tooling/Syntax/Tokens.cpp +++ b/clang/lib/Tooling/Syntax/Tokens.cpp @@ -457,7 +457,7 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef Expanded) const { // Mapping an empty range is ambiguous in case of empty mappings at either end // of the range, bail out in that case. if (Expanded.empty()) - return llvm::None; + return std::nullopt; const syntax::Token *First = &Expanded.front(); const syntax::Token *Last = &Expanded.back(); auto [FirstSpelled, FirstMapping] = spelledForExpandedToken(First); @@ -466,7 +466,7 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef Expanded) const { FileID FID = SourceMgr->getFileID(FirstSpelled->location()); // FIXME: Handle multi-file changes by trying to map onto a common root. if (FID != SourceMgr->getFileID(LastSpelled->location())) - return llvm::None; + return std::nullopt; const MarkedFile &File = Files.find(FID)->second; @@ -485,7 +485,7 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef Expanded) const { SourceRange Range = spelledForExpandedSlow( First->location(), Last->location(), Prev, Next, FID, *SourceMgr); if (Range.isInvalid()) - return llvm::None; + return std::nullopt; return getTokensCovering(File.SpelledTokens, Range, *SourceMgr); } @@ -494,9 +494,9 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef Expanded) const { unsigned FirstExpanded = Expanded.begin() - ExpandedTokens.data(); unsigned LastExpanded = Expanded.end() - ExpandedTokens.data(); if (FirstMapping && FirstExpanded != FirstMapping->BeginExpanded) - return llvm::None; + return std::nullopt; if (LastMapping && LastMapping->EndExpanded != LastExpanded) - return llvm::None; + return std::nullopt; return llvm::makeArrayRef( FirstMapping ? File.SpelledTokens.data() + FirstMapping->BeginSpelled : FirstSpelled, @@ -543,7 +543,7 @@ TokenBuffer::expansionStartingAt(const syntax::Token *Spelled) const { return M.BeginSpelled < SpelledIndex; }); if (M == File.Mappings.end() || M->BeginSpelled != SpelledIndex) - return llvm::None; + return std::nullopt; return makeExpansion(File, *M); } @@ -806,7 +806,7 @@ private: // In the simplest case, skips spelled tokens until finding one that produced // the NextExpanded token, and creates an empty mapping for them. // If Drain is provided, skips remaining tokens from that file instead. - void discard(llvm::Optional Drain = llvm::None) { + void discard(llvm::Optional Drain = std::nullopt) { SourceLocation Target = Drain ? SM.getLocForEndOfFile(*Drain) : SM.getExpansionLoc( diff --git a/clang/lib/Tooling/Transformer/Parsing.cpp b/clang/lib/Tooling/Transformer/Parsing.cpp index bf0a29db7bec..25bbf981d435 100644 --- a/clang/lib/Tooling/Transformer/Parsing.cpp +++ b/clang/lib/Tooling/Transformer/Parsing.cpp @@ -124,7 +124,7 @@ llvm::Optional findOptional(const llvm::StringMap &Map, llvm::StringRef Key) { auto it = Map.find(Key); if (it == Map.end()) - return llvm::None; + return std::nullopt; return it->second; } @@ -157,7 +157,7 @@ static ExpectedProgress parseChar(char c, ParseState State) { if (State.Input.empty() || State.Input.front() != c) return makeParseError(State, ("expected char not found: " + llvm::Twine(c)).str()); - return makeParseProgress(advance(State, 1), llvm::None); + return makeParseProgress(advance(State, 1), std::nullopt); } // Parses an identitifer "token" -- handles preceding whitespace. diff --git a/clang/lib/Tooling/Transformer/SourceCode.cpp b/clang/lib/Tooling/Transformer/SourceCode.cpp index 26b204851f05..b89d74a314bf 100644 --- a/clang/lib/Tooling/Transformer/SourceCode.cpp +++ b/clang/lib/Tooling/Transformer/SourceCode.cpp @@ -96,7 +96,7 @@ clang::tooling::getRangeForEdit(const CharSourceRange &EditRange, CharSourceRange Range = Lexer::makeFileCharRange(EditRange, SM, LangOpts); bool IsInvalid = llvm::errorToBool(validateEditRange(Range, SM)); if (IsInvalid) - return llvm::None; + return std::nullopt; return Range; } diff --git a/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp b/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp index 7496e968469c..77cab35cde35 100644 --- a/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp +++ b/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp @@ -76,7 +76,7 @@ llvm::Optional tooling::buildParens(const Expr &E, const ASTContext &Context) { StringRef Text = getText(E, Context); if (Text.empty()) - return llvm::None; + return std::nullopt; if (mayEverNeedParens(E)) return ("(" + Text + ")").str(); return Text.str(); @@ -90,13 +90,13 @@ tooling::buildDereference(const Expr &E, const ASTContext &Context) { StringRef Text = getText(*Op->getSubExpr()->IgnoreParenImpCasts(), Context); if (Text.empty()) - return llvm::None; + return std::nullopt; return Text.str(); } StringRef Text = getText(E, Context); if (Text.empty()) - return llvm::None; + return std::nullopt; // Add leading '*'. if (needParensAfterUnaryOperator(E)) return ("*(" + Text + ")").str(); @@ -113,13 +113,13 @@ llvm::Optional tooling::buildAddressOf(const Expr &E, StringRef Text = getText(*Op->getSubExpr()->IgnoreParenImpCasts(), Context); if (Text.empty()) - return llvm::None; + return std::nullopt; return Text.str(); } // Add leading '&'. StringRef Text = getText(E, Context); if (Text.empty()) - return llvm::None; + return std::nullopt; if (needParensAfterUnaryOperator(E)) { return ("&(" + Text + ")").str(); } @@ -136,7 +136,7 @@ buildAccessForValue(const Expr &E, const ASTContext &Context) { const Expr *SubExpr = Op->getSubExpr()->IgnoreParenImpCasts(); StringRef DerefText = getText(*SubExpr, Context); if (DerefText.empty()) - return llvm::None; + return std::nullopt; if (needParensBeforeDotOrArrow(*SubExpr)) return ("(" + DerefText + ")->").str(); return (DerefText + "->").str(); @@ -145,7 +145,7 @@ buildAccessForValue(const Expr &E, const ASTContext &Context) { // Add following '.'. StringRef Text = getText(E, Context); if (Text.empty()) - return llvm::None; + return std::nullopt; if (needParensBeforeDotOrArrow(E)) { return ("(" + Text + ").").str(); } @@ -162,7 +162,7 @@ buildAccessForPointer(const Expr &E, const ASTContext &Context) { const Expr *SubExpr = Op->getSubExpr()->IgnoreParenImpCasts(); StringRef DerefText = getText(*SubExpr, Context); if (DerefText.empty()) - return llvm::None; + return std::nullopt; if (needParensBeforeDotOrArrow(*SubExpr)) return ("(" + DerefText + ").").str(); return (DerefText + ".").str(); @@ -171,7 +171,7 @@ buildAccessForPointer(const Expr &E, const ASTContext &Context) { // Add following '->'. StringRef Text = getText(E, Context); if (Text.empty()) - return llvm::None; + return std::nullopt; if (needParensBeforeDotOrArrow(E)) return ("(" + Text + ")->").str(); return (Text + "->").str(); diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 554527c314ea..844927d04cc4 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -1237,7 +1237,7 @@ Optional findFile(StringRef Dir, StringRef Root, if (sys::fs::exists(Path)) return static_cast(Path); - return None; + return std::nullopt; } Optional findFromSearchPaths(StringRef Name, StringRef Root, @@ -1245,7 +1245,7 @@ Optional findFromSearchPaths(StringRef Name, StringRef Root, for (StringRef Dir : SearchPaths) if (Optional File = findFile(Dir, Root, Name)) return File; - return None; + return std::nullopt; } Optional searchLibraryBaseName(StringRef Name, StringRef Root, @@ -1256,7 +1256,7 @@ Optional searchLibraryBaseName(StringRef Name, StringRef Root, if (Optional File = findFile(Dir, Root, "lib" + Name + ".a")) return File; } - return None; + return std::nullopt; } /// Search for static libraries in the linker's library path given input like diff --git a/clang/tools/clang-refactor/ClangRefactor.cpp b/clang/tools/clang-refactor/ClangRefactor.cpp index 83c6976e7d22..111144b295d8 100644 --- a/clang/tools/clang-refactor/ClangRefactor.cpp +++ b/clang/tools/clang-refactor/ClangRefactor.cpp @@ -200,7 +200,7 @@ public: Value = CLOpt.getValue(); return; } - Value = None; + Value = std::nullopt; if (Opt.isRequired()) MissingRequiredOptions.push_back(&Opt); } diff --git a/clang/tools/clang-refactor/TestSupport.cpp b/clang/tools/clang-refactor/TestSupport.cpp index eb880889749f..6e7e7d56b2c9 100644 --- a/clang/tools/clang-refactor/TestSupport.cpp +++ b/clang/tools/clang-refactor/TestSupport.cpp @@ -298,7 +298,7 @@ findTestSelectionRanges(StringRef Filename) { if (!ErrOrFile) { llvm::errs() << "error: -selection=test:" << Filename << " : could not open the given file"; - return None; + return std::nullopt; } StringRef Source = ErrOrFile.get()->getBuffer(); @@ -340,7 +340,7 @@ findTestSelectionRanges(StringRef Filename) { // Allow CHECK: comments to contain range= commands. if (!RangeRegex.match(Comment, &Matches) || Comment.contains("CHECK")) { if (DetectMistypedCommand()) - return None; + return std::nullopt; continue; } unsigned Offset = Tok.getEndLoc().getRawEncoding(); @@ -359,7 +359,7 @@ findTestSelectionRanges(StringRef Filename) { SmallVector EndLocMatches; if (!EndLocRegex.match(Matches[3], &EndLocMatches)) { if (DetectMistypedCommand()) - return None; + return std::nullopt; continue; } unsigned EndLineOffset = 0, EndColumn = 0; @@ -380,7 +380,7 @@ findTestSelectionRanges(StringRef Filename) { if (GroupedRanges.empty()) { llvm::errs() << "error: -selection=test:" << Filename << ": no 'range' commands"; - return None; + return std::nullopt; } TestSelectionRangesInFile TestRanges = {Filename.str(), {}}; diff --git a/clang/tools/diagtool/FindDiagnosticID.cpp b/clang/tools/diagtool/FindDiagnosticID.cpp index 2a08814478ff..eafd20c8c730 100644 --- a/clang/tools/diagtool/FindDiagnosticID.cpp +++ b/clang/tools/diagtool/FindDiagnosticID.cpp @@ -33,7 +33,7 @@ findDiagnostic(ArrayRef Diagnostics, StringRef Name) { if (DiagName == Name) return Diag; } - return None; + return std::nullopt; } int FindDiagnosticID::run(unsigned int argc, char **argv, diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp index de33aa9ea934..c79306b6f7d5 100644 --- a/clang/tools/driver/cc1_main.cpp +++ b/clang/tools/driver/cc1_main.cpp @@ -177,7 +177,8 @@ static int PrintSupportedCPUs(std::string TargetStr) { // the target machine will handle the mcpu printing llvm::TargetOptions Options; std::unique_ptr TheTargetMachine( - TheTarget->createTargetMachine(TargetStr, "", "+cpuhelp", Options, None)); + TheTarget->createTargetMachine(TargetStr, "", "+cpuhelp", Options, + std::nullopt)); return 0; } diff --git a/clang/tools/driver/cc1gen_reproducer_main.cpp b/clang/tools/driver/cc1gen_reproducer_main.cpp index 89b7227fdb17..d58e8fbed7cb 100644 --- a/clang/tools/driver/cc1gen_reproducer_main.cpp +++ b/clang/tools/driver/cc1gen_reproducer_main.cpp @@ -134,7 +134,7 @@ generateReproducerForInvocationArguments(ArrayRef Argv, } } - return None; + return std::nullopt; } std::string GetExecutablePath(const char *Argv0, bool CanonicalPrefixes); diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp index 4b1a246d9943..702b60bd3226 100644 --- a/clang/tools/driver/driver.cpp +++ b/clang/tools/driver/driver.cpp @@ -497,7 +497,7 @@ int clang_main(int Argc, char **Argv) { .Case("crash", Driver::ReproLevel::OnCrash) .Case("error", Driver::ReproLevel::OnError) .Case("always", Driver::ReproLevel::Always) - .Default(None); + .Default(std::nullopt); if (!Level) { llvm::errs() << "Unknown value for " << A->getSpelling() << ": '" << A->getValue() << "'\n"; diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 27380144ef7c..f94119b7b30d 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -604,12 +604,12 @@ Optional CursorVisitor::shouldVisitCursor(CXCursor Cursor) { if (RegionOfInterest.isValid()) { SourceRange Range = getFullCursorExtent(Cursor, AU->getSourceManager()); if (Range.isInvalid()) - return None; + return std::nullopt; switch (CompareRegionOfInterest(Range)) { case RangeBefore: // This declaration comes before the region of interest; skip it. - return None; + return std::nullopt; case RangeAfter: // This declaration comes after the region of interest; we're done. @@ -658,7 +658,7 @@ Optional CursorVisitor::handleDeclForVisitation(const Decl *D) { // we passed the region-of-interest. if (auto *ivarD = dyn_cast(D)) { if (ivarD->getSynthesize()) - return None; + return std::nullopt; } // FIXME: ObjCClassRef/ObjCProtocolRef for forward class/protocol @@ -676,12 +676,12 @@ Optional CursorVisitor::handleDeclForVisitation(const Decl *D) { const Optional V = shouldVisitCursor(Cursor); if (!V) - return None; + return std::nullopt; if (!V.value()) return false; if (Visit(Cursor, true)) return true; - return None; + return std::nullopt; } bool CursorVisitor::VisitTranslationUnitDecl(TranslationUnitDecl *D) { @@ -3881,7 +3881,7 @@ clang_parseTranslationUnit_Impl(CXIndex CIdx, const char *source_filename, LibclangInvocationReporter InvocationReporter( *CXXIdx, LibclangInvocationReporter::OperationKind::ParseOperation, - options, llvm::makeArrayRef(*Args), /*InvocationArgs=*/None, + options, llvm::makeArrayRef(*Args), /*InvocationArgs=*/std::nullopt, unsaved_files); std::unique_ptr Unit(ASTUnit::LoadFromCommandLine( Args->data(), Args->data() + Args->size(), diff --git a/clang/tools/libclang/CXType.cpp b/clang/tools/libclang/CXType.cpp index a62163c64d09..a97a4e689604 100644 --- a/clang/tools/libclang/CXType.cpp +++ b/clang/tools/libclang/CXType.cpp @@ -193,13 +193,13 @@ GetTemplateArguments(QualType Type) { return TemplateDecl->getTemplateArgs().asArray(); } - return None; + return std::nullopt; } static Optional TemplateArgumentToQualType(const TemplateArgument &A) { if (A.getKind() == TemplateArgument::Type) return A.getAsType(); - return None; + return std::nullopt; } static Optional @@ -216,7 +216,7 @@ FindTemplateArgumentTypeAt(ArrayRef TA, unsigned index) { return TemplateArgumentToQualType(A); current++; } - return None; + return std::nullopt; } CXType clang_getCursorType(CXCursor C) { diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index cff270c366cc..56e11773bf70 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -1651,7 +1651,7 @@ std::pair Intrinsic::DagEmitter::emitDagShuffle(DagInit *DI){ std::make_unique(Arg1.first.getElementSizeInBits())); ST.addExpander("MaskExpand", std::make_unique(Arg1.first.getNumElements())); - ST.evaluate(DI->getArg(2), Elts, None); + ST.evaluate(DI->getArg(2), Elts, std::nullopt); std::string S = "__builtin_shufflevector(" + Arg1.second + ", " + Arg2.second; for (auto &E : Elts) {