diff options
Diffstat (limited to 'llvm/lib/Analysis/ScopedNoAliasAA.cpp')
-rw-r--r-- | llvm/lib/Analysis/ScopedNoAliasAA.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/ScopedNoAliasAA.cpp b/llvm/lib/Analysis/ScopedNoAliasAA.cpp index e34a221e9f0..1fc6e027a95 100644 --- a/llvm/lib/Analysis/ScopedNoAliasAA.cpp +++ b/llvm/lib/Analysis/ScopedNoAliasAA.cpp @@ -151,12 +151,14 @@ bool ScopedNoAliasAAResult::mayAliasInScopes(const MDNode *Scopes, // We alias unless, for some domain, the set of noalias scopes in that domain // is a superset of the set of alias scopes in that domain. for (const MDNode *Domain : Domains) { - SmallPtrSet<const MDNode *, 16> NANodes, ScopeNodes; - collectMDInDomain(NoAlias, Domain, NANodes); + SmallPtrSet<const MDNode *, 16> ScopeNodes; collectMDInDomain(Scopes, Domain, ScopeNodes); if (ScopeNodes.empty()) continue; + SmallPtrSet<const MDNode *, 16> NANodes; + collectMDInDomain(NoAlias, Domain, NANodes); + // To not alias, all of the nodes in ScopeNodes must be in NANodes. bool FoundAll = true; for (const MDNode *SMD : ScopeNodes) |