diff options
Diffstat (limited to 'llvm/tools/llvm-as/llvm-as.cpp')
-rw-r--r-- | llvm/tools/llvm-as/llvm-as.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/tools/llvm-as/llvm-as.cpp b/llvm/tools/llvm-as/llvm-as.cpp index 0f6de69..699e912 100644 --- a/llvm/tools/llvm-as/llvm-as.cpp +++ b/llvm/tools/llvm-as/llvm-as.cpp @@ -121,8 +121,19 @@ int main(int argc, char **argv) { // Parse the file now... SMDiagnostic Err; - auto ModuleAndIndex = parseAssemblyFileWithIndex( - InputFilename, Err, Context, nullptr, !DisableVerify, ClDataLayout); + auto SetDataLayout = [](StringRef) -> Optional<std::string> { + if (ClDataLayout.empty()) + return None; + return ClDataLayout; + }; + ParsedModuleAndIndex ModuleAndIndex; + if (DisableVerify) { + ModuleAndIndex = parseAssemblyFileWithIndexNoUpgradeDebugInfo( + InputFilename, Err, Context, nullptr, SetDataLayout); + } else { + ModuleAndIndex = parseAssemblyFileWithIndex(InputFilename, Err, Context, + nullptr, SetDataLayout); + } std::unique_ptr<Module> M = std::move(ModuleAndIndex.Mod); if (!M.get()) { Err.print(argv[0], errs()); |