If a function does a volatile load from a global constant, do not

consider it to be readonly.  In fact, don't even consider it to be
readonly if it does a volatile load from an AllocaInst either (it
is debatable as to whether readonly would be correct or not in this
case; play safe for the moment).  This fixes PR8279.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117783 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands committed 2010-10-30 12:59:44 +00:00
1 parent 4aaf59d8ed
commit ad6f541840
2 files changed
+14 -4

No files matched your search

@@ -0,0 +1,10 @@
; RUN: opt < %s -functionattrs -S | FileCheck %s
; PR8279
@g = constant i32 1
define void @foo() {
; CHECK: void @foo() {
%tmp = volatile load i32* @g
ret void
}