summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/AliasSetTracker.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-08-29 04:14:47 +0000
committerChris Lattner <sabre@nondot.org>2010-08-29 04:14:47 +0000
commitdc8070ed6d169fd50b5403becb20b4ab33ff6004 (patch)
tree9b81aebd223421431f14bccc053ff5b3d91d0aab /llvm/lib/Analysis/AliasSetTracker.cpp
parenteef6b19dcb4a6c99f99fc28d37e25655122093fe (diff)
downloadbcm5719-llvm-dc8070ed6d169fd50b5403becb20b4ab33ff6004.tar.gz
bcm5719-llvm-dc8070ed6d169fd50b5403becb20b4ab33ff6004.zip
when merging two alias sets, the result set is volatile if either
of the sets is volatile. We were dropping the volatile bit of the merged in set, leading (luckily) to assertions in cases like PR7535. I cannot produce a testcase that repros with opt, but this is obviously correct. llvm-svn: 112402
Diffstat (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp')
-rw-r--r--llvm/lib/Analysis/AliasSetTracker.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/AliasSetTracker.cpp b/llvm/lib/Analysis/AliasSetTracker.cpp
index 6c18f227005..d52085e5754 100644
--- a/llvm/lib/Analysis/AliasSetTracker.cpp
+++ b/llvm/lib/Analysis/AliasSetTracker.cpp
@@ -35,6 +35,7 @@ void AliasSet::mergeSetIn(AliasSet &AS, AliasSetTracker &AST) {
// Update the alias and access types of this set...
AccessTy |= AS.AccessTy;
AliasTy |= AS.AliasTy;
+ Volatile |= AS.Volatile;
if (AliasTy == MustAlias) {
// Check that these two merged sets really are must aliases. Since both
OpenPOWER on IntegriCloud