forked from OSchip/llvm-project
Revert "Mangle the IsSystem bit into the .pcm file name"
While I investigate some possible problems with this patch. This reverts commit r228966 llvm-svn: 229910
This commit is contained in:
parent
bd0b651bd2
commit
d89dc561c7
|
@ -66,9 +66,6 @@ def err_imported_module_relocated : Error<
|
|||
def err_module_different_modmap : Error<
|
||||
"module '%0' %select{uses|does not use}1 additional module map '%2'"
|
||||
"%select{| not}1 used when the module was built">;
|
||||
def err_module_system_change : Error<
|
||||
"module '%0' %select{is|is not}1 a 'system' module, but "
|
||||
"%select{was not|was}1 when the module was built">;
|
||||
def warn_module_conflict : Warning<
|
||||
"module '%0' conflicts with already-imported module '%1': %2">,
|
||||
InGroup<ModuleConflict>;
|
||||
|
|
|
@ -496,15 +496,11 @@ public:
|
|||
/// \param ModuleName The module whose module file name will be returned.
|
||||
///
|
||||
/// \param ModuleMapPath A path that when combined with \c ModuleName
|
||||
/// and \p IsSystem uniquely identifies this module. See Module::ModuleMap.
|
||||
///
|
||||
/// \param IsSystem Whether the \p ModuleName is a system module, which may
|
||||
/// depend on how header search paths were specified.
|
||||
/// uniquely identifies this module. See Module::ModuleMap.
|
||||
///
|
||||
/// \returns The name of the module file that corresponds to this module,
|
||||
/// or an empty string if this module does not correspond to any module file.
|
||||
std::string getModuleFileName(StringRef ModuleName, StringRef ModuleMapPath,
|
||||
bool IsSystem);
|
||||
std::string getModuleFileName(StringRef ModuleName, StringRef ModuleMapPath);
|
||||
|
||||
/// \brief Lookup a module Search for a module with the given name.
|
||||
///
|
||||
|
|
|
@ -366,7 +366,7 @@ bool GenerateModuleAction::ComputeASTConsumerArguments(CompilerInstance &CI,
|
|||
HeaderSearch &HS = CI.getPreprocessor().getHeaderSearchInfo();
|
||||
CI.getFrontendOpts().OutputFile =
|
||||
HS.getModuleFileName(CI.getLangOpts().CurrentModule,
|
||||
ModuleMapForUniquing->getName(), IsSystem);
|
||||
ModuleMapForUniquing->getName());
|
||||
}
|
||||
|
||||
// We use createOutputFile here because this is exposed via libclang, and we
|
||||
|
|
|
@ -115,13 +115,11 @@ const HeaderMap *HeaderSearch::CreateHeaderMap(const FileEntry *FE) {
|
|||
std::string HeaderSearch::getModuleFileName(Module *Module) {
|
||||
const FileEntry *ModuleMap =
|
||||
getModuleMap().getModuleMapFileForUniquing(Module);
|
||||
return getModuleFileName(Module->Name, ModuleMap->getName(),
|
||||
Module->IsSystem);
|
||||
return getModuleFileName(Module->Name, ModuleMap->getName());
|
||||
}
|
||||
|
||||
std::string HeaderSearch::getModuleFileName(StringRef ModuleName,
|
||||
StringRef ModuleMapPath,
|
||||
bool IsSystem) {
|
||||
StringRef ModuleMapPath) {
|
||||
// If we don't have a module cache path, we can't do anything.
|
||||
if (ModuleCachePath.empty())
|
||||
return std::string();
|
||||
|
@ -149,10 +147,6 @@ std::string HeaderSearch::getModuleFileName(StringRef ModuleName,
|
|||
llvm::hash_code Hash =
|
||||
llvm::hash_combine(DirName.lower(), FileName.lower());
|
||||
|
||||
// Hash the IsSystem bit, since changing search paths can change whether a
|
||||
// module is considered 'system' or not.
|
||||
Hash = llvm::hash_combine(Hash, IsSystem);
|
||||
|
||||
SmallString<128> HashStr;
|
||||
llvm::APInt(64, size_t(Hash)).toStringUnsigned(HashStr, /*Radix*/36);
|
||||
llvm::sys::path::append(Result, ModuleName + "-" + HashStr.str() + ".pcm");
|
||||
|
|
|
@ -3468,13 +3468,6 @@ ASTReader::ReadModuleMapFileBlock(RecordData &Record, ModuleFile &F,
|
|||
<< F.ModuleName << /*not new*/1 << ModMap->getName();
|
||||
return OutOfDate;
|
||||
}
|
||||
|
||||
// Check whether the 'IsSystem' bit changed.
|
||||
if (M->IsSystem != static_cast<bool>(Record[Idx])) {
|
||||
if ((ClientLoadCapabilities & ARR_OutOfDate) == 0)
|
||||
Diag(diag::err_module_system_change) << F.ModuleName << M->IsSystem;
|
||||
return OutOfDate;
|
||||
}
|
||||
}
|
||||
|
||||
if (Listener)
|
||||
|
|
|
@ -1216,7 +1216,6 @@ void ASTWriter::WriteControlBlock(Preprocessor &PP, ASTContext &Context,
|
|||
Record.push_back(0);
|
||||
}
|
||||
|
||||
Record.push_back(WritingModule->IsSystem);
|
||||
Stream.EmitRecord(MODULE_MAP_FILE, Record);
|
||||
}
|
||||
|
||||
|
|
|
@ -21,14 +21,6 @@
|
|||
// Confirm that we still have three pcm files, since DependsOnA will be rebuilt
|
||||
// RUN: find %t -name "*.pcm" | count 3
|
||||
|
||||
// DependsOnA, using A from path 2, as a system path
|
||||
// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fmodules-ignore-macro=EXPECTED_PATH -fmodules-ignore-macro=DIRECT -fsyntax-only %s -I %S/Inputs/modules-with-same-name/DependsOnA -isystem %S/Inputs/modules-with-same-name/path2/A -DEXPECTED_PATH=2 -Rmodule-build 2> %t.log
|
||||
// Confirm that we built a new module for A
|
||||
// RUN: FileCheck %s < %t.log
|
||||
// CHECK: building module 'DependsOnA'
|
||||
// CHECK: building module 'A'
|
||||
// RUN: find %t -name "*.pcm" | count 4
|
||||
|
||||
#ifdef DIRECT
|
||||
@import A;
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue