mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-30 04:35:00 +00:00
fix PR8602, a bug in an assertion: a volatile store *of* a pointer
does not make the alias set for that pointer volatile, just stores *to* the pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122171 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96ba57fdda
commit
1c0af0ed25
@ -691,8 +691,8 @@ void LICM::PromoteAliasSet(AliasSet &AS) {
|
||||
if (isa<LoadInst>(Use))
|
||||
assert(!cast<LoadInst>(Use)->isVolatile() && "AST broken");
|
||||
else if (isa<StoreInst>(Use)) {
|
||||
assert(!cast<StoreInst>(Use)->isVolatile() && "AST broken");
|
||||
if (Use->getOperand(0) == ASIV) return;
|
||||
assert(!cast<StoreInst>(Use)->isVolatile() && "AST broken");
|
||||
} else
|
||||
return; // Not a load or store.
|
||||
|
||||
|
@ -59,3 +59,16 @@ for.end: ; preds = %for.cond, %entry
|
||||
}
|
||||
|
||||
declare i32* @test3helper(i32*)
|
||||
|
||||
|
||||
; PR8602
|
||||
@g_47 = external global i32, align 4
|
||||
|
||||
define void @test4() noreturn nounwind {
|
||||
br label %1
|
||||
|
||||
; <label>:1 ; preds = %1, %0
|
||||
volatile store i32* @g_47, i32** undef, align 8
|
||||
store i32 undef, i32* @g_47, align 4
|
||||
br label %1
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user