mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
fix a really nasty basicaa mod/ref calculation bug that was causing miscompilation of
UnitTests/ObjC/messages-2.m with the recent optimizer improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131897 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -680,9 +680,12 @@ BasicAliasAnalysis::getModRefInfo(ImmutableCallSite CS,
|
||||
unsigned ArgNo = 0;
|
||||
for (ImmutableCallSite::arg_iterator CI = CS.arg_begin(), CE = CS.arg_end();
|
||||
CI != CE; ++CI, ++ArgNo) {
|
||||
// Only look at the no-capture pointer arguments.
|
||||
// Only look at the no-capture or byval pointer arguments. If this
|
||||
// pointer were passed to arguments that were neither of these, then it
|
||||
// couldn't be no-capture.
|
||||
if (!(*CI)->getType()->isPointerTy() ||
|
||||
!CS.paramHasAttr(ArgNo+1, Attribute::NoCapture))
|
||||
(!CS.paramHasAttr(ArgNo+1, Attribute::NoCapture) &&
|
||||
!CS.paramHasAttr(ArgNo+1, Attribute::ByVal)))
|
||||
continue;
|
||||
|
||||
// If this is a no-capture pointer argument, see if we can tell that it
|
||||
|
Reference in New Issue
Block a user