diff options
-rw-r--r-- | clang/lib/CodeGen/CodeGenAction.cpp | 5 | ||||
-rw-r--r-- | clang/test/CodeGen/main-file-name.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp index 2d08c22c51d..5c0b6a9fd8e 100644 --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -551,9 +551,12 @@ ASTConsumer *CodeGenAction::CreateASTConsumer(CompilerInstance &CI, LinkModuleToUse = ModuleOrErr.get(); } + StringRef MainFileName = getCompilerInstance().getCodeGenOpts().MainFileName; + if (MainFileName.empty()) + MainFileName = InFile; BEConsumer = new BackendConsumer(BA, CI.getDiagnostics(), CI.getCodeGenOpts(), CI.getTargetOpts(), CI.getLangOpts(), - CI.getFrontendOpts().ShowTimers, InFile, + CI.getFrontendOpts().ShowTimers, MainFileName, LinkModuleToUse, OS.release(), *VMContext); return BEConsumer; } diff --git a/clang/test/CodeGen/main-file-name.c b/clang/test/CodeGen/main-file-name.c new file mode 100644 index 00000000000..83e2fe3ac23 --- /dev/null +++ b/clang/test/CodeGen/main-file-name.c @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -emit-llvm -o - %s -main-file-name some.name | FileCheck -check-prefix NAMED %s + +// CHECK: ; ModuleID = '{{.*}}main-file-name.c' +// NAMED: ; ModuleID = 'some.name' + |