forked from OSchip/llvm-project
Fix use of uninitialized variable.
Fixes linking bitcode files that use the new style comdats for constructors with ones that don't. llvm-svn: 215364
This commit is contained in:
parent
2ef3f299d5
commit
b16196a3e0
|
@ -644,15 +644,19 @@ bool ModuleLinker::computeResultingSelectionKind(StringRef ComdatName,
|
|||
bool ModuleLinker::getComdatResult(const Comdat *SrcC,
|
||||
Comdat::SelectionKind &Result,
|
||||
bool &LinkFromSrc) {
|
||||
Comdat::SelectionKind SSK = SrcC->getSelectionKind();
|
||||
StringRef ComdatName = SrcC->getName();
|
||||
Module::ComdatSymTabType &ComdatSymTab = DstM->getComdatSymbolTable();
|
||||
Module::ComdatSymTabType::iterator DstCI = ComdatSymTab.find(ComdatName);
|
||||
|
||||
if (DstCI == ComdatSymTab.end())
|
||||
if (DstCI == ComdatSymTab.end()) {
|
||||
// Use the comdat if it is only available in one of the modules.
|
||||
LinkFromSrc = true;
|
||||
Result = SSK;
|
||||
return false;
|
||||
}
|
||||
|
||||
const Comdat *DstC = &DstCI->second;
|
||||
Comdat::SelectionKind SSK = SrcC->getSelectionKind();
|
||||
Comdat::SelectionKind DSK = DstC->getSelectionKind();
|
||||
return computeResultingSelectionKind(ComdatName, SSK, DSK, Result,
|
||||
LinkFromSrc);
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
define weak_odr void @_ZN3fooIiEC2Ev() {
|
||||
ret void
|
||||
}
|
||||
|
||||
define weak_odr void @_ZN3fooIiEC1Ev() {
|
||||
ret void
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
; RUN: llvm-link %s %p/Inputs/constructor-comdat.ll -S -o - 2>&1 | FileCheck %s
|
||||
; RUN: llvm-link %p/Inputs/constructor-comdat.ll %s -S -o - 2>&1 | FileCheck %s
|
||||
|
||||
$_ZN3fooIiEC5Ev = comdat any
|
||||
; CHECK: $_ZN3fooIiEC5Ev = comdat any
|
||||
|
||||
@_ZN3fooIiEC1Ev = weak_odr alias void ()* @_ZN3fooIiEC2Ev
|
||||
; CHECK: @_ZN3fooIiEC1Ev = weak_odr alias void ()* @_ZN3fooIiEC2Ev
|
||||
|
||||
; CHECK: define weak_odr void @_ZN3fooIiEC2Ev() comdat $_ZN3fooIiEC5Ev {
|
||||
define weak_odr void @_ZN3fooIiEC2Ev() comdat $_ZN3fooIiEC5Ev {
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue