llvm-6502/test/Transforms/GlobalOpt/blockaddress.ll
Hans Wennborg fbeb956876 Constant::IsThreadDependent(): Use dyn_cast<Constant> instead of cast
It turns out that the operands of a Constant are not always themselves
Constant. For example, one of the operands of BlockAddress is
BasicBlock, which is not a Constant.

This should fix the dragonegg-x86_64-linux-gcc-4.6-test build which
broke in r168037.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168147 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16 10:33:25 +00:00

21 lines
357 B
LLVM

; RUN: opt < %s -globalopt -S | FileCheck %s
@x = internal global i8* zeroinitializer
define void @f() {
; CHECK: @f
; Check that we don't hit an assert in Constant::IsThreadDependent()
; when storing this blockaddress into a global.
store i8* blockaddress(@g, %here), i8** @x, align 8
ret void
}
define void @g() {
; CHECK: @g
here:
ret void
}