39 lines
926 B
LLVM
39 lines
926 B
LLVM
|
; RUN: opt -disable-output -passes=print-lcg %s 2>&1 | FileCheck %s
|
||
|
;
|
||
|
; Aliased function should be reachable in CGSCC.
|
||
|
|
||
|
target triple = "x86_64-grtev4-linux-gnu"
|
||
|
|
||
|
; CHECK: Edges in function: foo
|
||
|
; CHECK: Edges in function: bar
|
||
|
; CHECK: Edges in function: baz
|
||
|
|
||
|
; CHECK: RefSCC with 1 call SCCs:
|
||
|
; CHECK-NEXT: SCC with 1 functions:
|
||
|
; CHECK-NEXT: foo
|
||
|
; CHECK-EMPTY:
|
||
|
; CHECK: RefSCC with 1 call SCCs:
|
||
|
; CHECK-NEXT: SCC with 1 functions:
|
||
|
; CHECK-NEXT: bar
|
||
|
|
||
|
; CHECK-NOT: baz
|
||
|
|
||
|
@alias1 = weak dso_local alias i8* (i8*), i8* (i8*)* @foo
|
||
|
|
||
|
define dso_local i8* @foo(i8* %returned) {
|
||
|
ret i8* %returned
|
||
|
}
|
||
|
|
||
|
@alias2 = weak dso_local alias i8* (i8*), i8* (i8*)* @bar
|
||
|
|
||
|
define internal i8* @bar(i8* %returned) {
|
||
|
ret i8* %returned
|
||
|
}
|
||
|
|
||
|
; Internal alias is not reachable.
|
||
|
@alias3 = internal alias i8* (i8*), i8* (i8*)* @baz
|
||
|
|
||
|
define internal i8* @baz(i8* %returned) {
|
||
|
ret i8* %returned
|
||
|
}
|