| ; 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 ptr (ptr), ptr @foo | |
| define dso_local ptr @foo(ptr %returned) { | |
| ret ptr %returned | |
| } | |
| @alias2 = weak dso_local alias ptr (ptr), ptr @bar | |
| define internal ptr @bar(ptr %returned) { | |
| ret ptr %returned | |
| } | |
| ; Internal alias is not reachable. | |
| @alias3 = internal alias ptr (ptr), ptr @baz | |
| define internal ptr @baz(ptr %returned) { | |
| ret ptr %returned | |
| } |