xref: /llvm-project/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll (revision d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6)
18ebb3eacSBjorn Pettersson; RUN: opt < %s -passes=globalopt -S | FileCheck %s
2cee313d2SEric Christopher
3cee313d2SEric Christopherdefine internal void @f() {
4cee313d2SEric Christopher; CHECK-NOT: @f(
5c6692f81SFangrui Song; CHECK: define dso_local void @a
6cee313d2SEric Christopher	ret void
7cee313d2SEric Christopher}
8cee313d2SEric Christopher
9*d586bd5cSNikita Popov@a = dso_local alias void (), ptr @f
10cee313d2SEric Christopher
11c6692f81SFangrui Songdefine hidden void @g() {
12cee313d2SEric Christopher	call void() @a()
13cee313d2SEric Christopher	ret void
14cee313d2SEric Christopher}
15cee313d2SEric Christopher
16*d586bd5cSNikita Popov@b = internal alias  void (),  ptr @g
17cee313d2SEric Christopher; CHECK-NOT: @b
18cee313d2SEric Christopher
19cee313d2SEric Christopherdefine void @h() {
20cee313d2SEric Christopher	call void() @b()
21cee313d2SEric Christopher; CHECK: call void @g
22cee313d2SEric Christopher	ret void
23cee313d2SEric Christopher}
24cee313d2SEric Christopher
25