diff options
author | Dan Gohman <gohman@apple.com> | 2010-11-11 19:23:51 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-11-11 19:23:51 +0000 |
commit | f3b8c7659979ff481e7a15fa3406b280e425cf0d (patch) | |
tree | 726eb3c229d88e8c7c5651e585fa2128465142e3 /lib/Analysis/Lint.cpp | |
parent | c7139a6f0d3acd198ab9eb536ea1ec52e61ff130 (diff) |
Avoid calling alias on non-pointer values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118822 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/Lint.cpp')
-rw-r--r-- | lib/Analysis/Lint.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Analysis/Lint.cpp b/lib/Analysis/Lint.cpp index b27ca47142..4318a30fa6 100644 --- a/lib/Analysis/Lint.cpp +++ b/lib/Analysis/Lint.cpp @@ -231,10 +231,11 @@ void Lint::visitCallSite(CallSite CS) { // to do. Known partial overlap is not distinguished from the case // where nothing is known. if (Formal->hasNoAliasAttr() && Actual->getType()->isPointerTy()) - for (CallSite::arg_iterator BI = CS.arg_begin(); BI != AE; ++BI) { - Assert1(AI == BI || AA->alias(*AI, *BI) != AliasAnalysis::MustAlias, + for (CallSite::arg_iterator BI = CS.arg_begin(); BI != AE; ++BI) + Assert1(AI == BI || + !(*BI)->getType()->isPointerTy() || + AA->alias(*AI, *BI) != AliasAnalysis::MustAlias, "Unusual: noalias argument aliases another argument", &I); - } // Check that an sret argument points to valid memory. if (Formal->hasStructRetAttr() && Actual->getType()->isPointerTy()) { |