1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

Fix for PR 26378

This patch corresponds to review:
http://reviews.llvm.org/D17712

We were not clearing the TOC vector in PPCAsmPrinter when initializing it. This
caused duplicate definition asserts when the pass is reused on the module
(i.e. with -compile-twice or in JIT contexts).

llvm-svn: 263338
This commit is contained in:
Nemanja Ivanovic 2016-03-12 10:23:07 +00:00
parent 7c4cb4a01e
commit eaa9a4f81a
2 changed files with 12 additions and 0 deletions

View File

@ -82,6 +82,12 @@ public:
MCSymbol *lookUpOrCreateTOCEntry(MCSymbol *Sym);
virtual bool doInitialization(Module &M) override {
if (!TOC.empty())
TOC.clear();
return AsmPrinter::doInitialization(M);
}
void EmitInstruction(const MachineInstr *MI) override;
void printOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);

View File

@ -0,0 +1,6 @@
; RUN: llc -compile-twice -filetype obj \
; RUN: -mtriple=powerpc64le-unknown-unknown -mcpu=pwr8 < %s
@foo = common global i32 0, align 4
define i8* @blah() #0 {
ret i8* bitcast (i32* @foo to i8*)
}