Skip to content

Commit 33757cd

Browse files
authored
[LTO] Fix the issue of resetting the triple to default when it's empty (#157829)
The empty triple is passed to lookupTarget function and it's not set to default one. This issue is exposed after changes in #157591.
1 parent 14cf515 commit 33757cd

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

llvm/lib/LTO/LTOCodeGenerator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,11 +376,11 @@ bool LTOCodeGenerator::determineTarget() {
376376
return true;
377377

378378
TripleStr = MergedModule->getTargetTriple().str();
379-
llvm::Triple Triple(TripleStr);
380379
if (TripleStr.empty()) {
381380
TripleStr = sys::getDefaultTargetTriple();
382-
MergedModule->setTargetTriple(Triple);
381+
MergedModule->setTargetTriple(Triple(TripleStr));
383382
}
383+
llvm::Triple Triple(TripleStr);
384384

385385
// create target machine from info for merged modules
386386
std::string ErrMsg;

llvm/test/LTO/empty-triple.ll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
; RUN: llvm-as < %s >%t1
2+
; RUN: llvm-lto -exported-symbol=main -filetype=asm -o - %t1 2>&1 | FileCheck %s
3+
4+
; The test is to check the triple is set to default one when it's empty.
5+
; Otherwise, an error will be raised by llvm-lto.
6+
7+
; CHECK-LABEL: main
8+
; CHECK-NOT: error
9+
define void @main() {
10+
entry:
11+
ret void
12+
}

0 commit comments

Comments
 (0)