summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc
diff options
context:
space:
mode:
authorChris Dewhurst <chris.dewhurst@lero.ie>2016-04-22 08:13:47 +0000
committerChris Dewhurst <chris.dewhurst@lero.ie>2016-04-22 08:13:47 +0000
commit431fc8af7bece9bfc733227218254b3d64d8a0f6 (patch)
tree695579b352acd6a4496068ab0ac3744049a11739 /llvm/lib/Target/Sparc
parentf8997cf5aee8b4bf0210ca156e1b2fbb8cf6bc07 (diff)
downloadbcm5719-llvm-431fc8af7bece9bfc733227218254b3d64d8a0f6.tar.gz
bcm5719-llvm-431fc8af7bece9bfc733227218254b3d64d8a0f6.zip
The following code would not work before this patch, due to the inability to take the address of a global object:
void func1() { ... } int main(int argc, char** argv) { void (*pFunc)(); pFunc = &func1 pFunc(); ... } Phabricator review: http://reviews.llvm.org/D19368 llvm-svn: 267120
Diffstat (limited to 'llvm/lib/Target/Sparc')
-rw-r--r--llvm/lib/Target/Sparc/DelaySlotFiller.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
index 31244398ca4..0062428f40a 100644
--- a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
+++ b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
@@ -296,7 +296,7 @@ void Filler::insertCallDefsUses(MachineBasicBlock::iterator MI,
RegUses.insert(Reg.getReg());
const MachineOperand &RegOrImm = MI->getOperand(1);
- if (RegOrImm.isImm())
+ if (RegOrImm.isImm() || RegOrImm.isGlobal())
break;
assert(RegOrImm.isReg() && "CALLrr second operand is not a register.");
assert(RegOrImm.isUse() && "CALLrr second operand is not a use.");
OpenPOWER on IntegriCloud