summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2015-11-04 20:33:45 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2015-11-04 20:33:45 +0000
commitb11b440f8e354b858579af454e72988a3e5d768d (patch)
tree2d4344db0b056c81c5bdf246abd3160281f7b2e1 /llvm/lib/Target/X86/X86FastISel.cpp
parent2c38141423f6ed6ec4db641be76f61631366cbb1 (diff)
downloadbcm5719-llvm-b11b440f8e354b858579af454e72988a3e5d768d.tar.gz
bcm5719-llvm-b11b440f8e354b858579af454e72988a3e5d768d.zip
[IR] Add bounds checking to paramHasAttr
Summary: This is intended to make a later change simpler. Note: adding this bounds checking required fixing `X86FastISel`. As far I can tell I've preserved original behavior but a careful review will be appreciated. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14304 llvm-svn: 252073
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FastISel.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp
index 2cda8211ba9..914fd04ad6b 100644
--- a/llvm/lib/Target/X86/X86FastISel.cpp
+++ b/llvm/lib/Target/X86/X86FastISel.cpp
@@ -2817,10 +2817,12 @@ static unsigned computeBytesPoppedByCallee(const X86Subtarget *Subtarget,
if (CC == CallingConv::Fast || CC == CallingConv::GHC ||
CC == CallingConv::HiPE)
return 0;
- if (CS && !CS->paramHasAttr(1, Attribute::StructRet))
- return 0;
- if (CS && CS->paramHasAttr(1, Attribute::InReg))
- return 0;
+
+ if (CS)
+ if (CS->arg_empty() || !CS->paramHasAttr(1, Attribute::StructRet) ||
+ CS->paramHasAttr(1, Attribute::InReg))
+ return 0;
+
return 4;
}
OpenPOWER on IntegriCloud