1 ; Check the linkage types in both the per-module and combined summaries. 2 ; RUN: opt -module-summary %s -o %t.o 3 ; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s 4 ; RUN: llvm-lto -thinlto -o %t2 %t.o 5 ; RUN: llvm-bcanalyzer -dump %t2.thinlto.bc | FileCheck %s --check-prefix=COMBINED 6 7 define private void @private() 8 ; CHECK: <PERMODULE {{.*}} op1=8 9 ; COMBINED-DAG: <COMBINED {{.*}} op2=8 10 { 11 ret void 12 } 13 14 define internal void @internal() 15 ; CHECK: <PERMODULE {{.*}} op1=7 16 ; COMBINED-DAG: <COMBINED {{.*}} op2=7 17 { 18 ret void 19 } 20 21 define available_externally void @available_externally() 22 ; CHECK: <PERMODULE {{.*}} op1=1 23 ; COMBINED-DAG: <COMBINED {{.*}} op2=1 24 { 25 ret void 26 } 27 28 define linkonce void @linkonce() 29 ; CHECK: <PERMODULE {{.*}} op1=2 30 ; COMBINED-DAG: <COMBINED {{.*}} op2=2 31 { 32 ret void 33 } 34 35 define weak void @weak() 36 ; CHECK: <PERMODULE {{.*}} op1=4 37 ; COMBINED-DAG: <COMBINED {{.*}} op2=4 38 { 39 ret void 40 } 41 42 define linkonce_odr void @linkonce_odr() 43 ; CHECK: <PERMODULE {{.*}} op1=3 44 ; COMBINED-DAG: <COMBINED {{.*}} op2=3 45 { 46 ret void 47 } 48 49 define weak_odr void @weak_odr() 50 ; CHECK: <PERMODULE {{.*}} op1=5 51 ; COMBINED-DAG: <COMBINED {{.*}} op2=5 52 { 53 ret void 54 } 55 56 define external void @external() 57 ; CHECK: <PERMODULE {{.*}} op1=0 58 ; COMBINED-DAG: <COMBINED {{.*}} op2=0 59 { 60 ret void 61 } 62