llvm/test/Transforms/GlobalOpt/compiler-used.ll
Rafael Espindola 64f2f910bd Don't crash when llvm.compiler.used becomes empty.
GlobalOpt simplifies llvm.compiler.used by removing any members that are also
in the more strict llvm.used. Handle the special case where llvm.compiler.used
becomes empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186778 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-20 23:33:15 +00:00

17 lines
587 B
LLVM

; RUN: opt < %s -globalopt -S | FileCheck %s
; Test that when all members of llvm.compiler.used are found to be redundant
; we delete it instead of crashing.
define void @foo() {
ret void
}
@llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
@llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
; CHECK-NOT: @llvm.compiler.used
; CHECK: @llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
; CHECK-NOT: @llvm.compiler.used