diff options
author | Chris Lattner <sabre@nondot.org> | 2010-08-29 04:14:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-08-29 04:14:47 +0000 |
commit | fedac7d9b0c83c94f0f8cc2aaa6b4cce4a6e9a55 (patch) | |
tree | eea6373985c32634dd991b6479e9cc422e987a3f /lib/Analysis/AliasSetTracker.cpp | |
parent | 9476d746d655524b5460724fbcb9507dd96d2791 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112402 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/AliasSetTracker.cpp')
-rw-r--r-- | lib/Analysis/AliasSetTracker.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Analysis/AliasSetTracker.cpp b/lib/Analysis/AliasSetTracker.cpp index 6c18f22700..d52085e575 100644 --- a/lib/Analysis/AliasSetTracker.cpp +++ b/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 |