From 205c0589f918f95d2f2c586a01bea2716d73d603 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Sun, 18 Dec 2022 11:19:40 -0800 Subject: Revert "[clang] Convert OptionalFileEntryRefDegradesToFileEntryPtr to std::optional" This reverts commit 8f0df9f3bbc6d7f3d5cbfd955c5ee4404c53a75d. The Optional*RefDegradesTo*EntryPtr types want to keep the same size as the underlying type, which std::optional doesn't guarantee. For use with llvm::Optional, they define their own storage class, and there is no way to do that in std::optional. On top of that, that commit broke builds with older GCCs, where std::optional was not trivially copyable (static_assert in the clang sources was failing). --- clang/lib/Frontend/ModuleDependencyCollector.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'clang/lib/Frontend/ModuleDependencyCollector.cpp') diff --git a/clang/lib/Frontend/ModuleDependencyCollector.cpp b/clang/lib/Frontend/ModuleDependencyCollector.cpp index 785bff7..7e19ed3 100644 --- a/clang/lib/Frontend/ModuleDependencyCollector.cpp +++ b/clang/lib/Frontend/ModuleDependencyCollector.cpp @@ -19,7 +19,6 @@ #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" #include "llvm/Support/raw_ostream.h" -#include using namespace clang; @@ -49,9 +48,8 @@ struct ModuleDependencyPPCallbacks : public PPCallbacks { void InclusionDirective(SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, - std::optional File, - StringRef SearchPath, StringRef RelativePath, - const Module *Imported, + Optional File, StringRef SearchPath, + StringRef RelativePath, const Module *Imported, SrcMgr::CharacteristicKind FileType) override { if (!File) return; -- cgit v1.1