1*f2b5ec6eSTeresa Johnson; RUN: opt -module-summary %s -o %t1.o
2*f2b5ec6eSTeresa Johnson; RUN: opt -module-summary %p/Inputs/common_thinlto.ll -o %t2.o
3*f2b5ec6eSTeresa Johnson
4*f2b5ec6eSTeresa Johnson; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
5*f2b5ec6eSTeresa Johnson; RUN:    --plugin-opt=save-temps \
6*f2b5ec6eSTeresa Johnson; RUN:    --plugin-opt=thinlto \
7*f2b5ec6eSTeresa Johnson; RUN:    -shared %t1.o %t2.o -o %t3
8*f2b5ec6eSTeresa Johnson
9*f2b5ec6eSTeresa Johnson; RUN: llvm-dis %t1.o.2.internalize.bc -o - | FileCheck %s --check-prefix=INTERNALIZE
10*f2b5ec6eSTeresa Johnson; We should not have internalized P, and it should still be common.
11*f2b5ec6eSTeresa Johnson; INTERNALIZE: @P = common global
12*f2b5ec6eSTeresa Johnson
13*f2b5ec6eSTeresa Johnson; RUN: llvm-dis %t1.o.4.opt.bc -o - | FileCheck %s --check-prefix=OPT
14*f2b5ec6eSTeresa Johnson; bar should still exist (if we had internalized P it would look dead).
15*f2b5ec6eSTeresa Johnson; OPT: @bar
16*f2b5ec6eSTeresa Johnson
17*f2b5ec6eSTeresa Johnson; RUN: llvm-nm %t3.o | FileCheck %s --check-prefix=NM
18*f2b5ec6eSTeresa Johnson; NM: bar
19*f2b5ec6eSTeresa Johnson
20*f2b5ec6eSTeresa Johnsonsource_filename = "common1.c"
21*f2b5ec6eSTeresa Johnsontarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
22*f2b5ec6eSTeresa Johnsontarget triple = "x86_64-unknown-linux-gnu"
23*f2b5ec6eSTeresa Johnson
24*f2b5ec6eSTeresa Johnson@P = common global i8* (...)* null, align 8
25*f2b5ec6eSTeresa Johnson
26*f2b5ec6eSTeresa Johnsondefine i32 @main() {
27*f2b5ec6eSTeresa Johnsonentry:
28*f2b5ec6eSTeresa Johnson  store i8* (...)* bitcast (i8* ()* @bar to i8* (...)*), i8* (...)** @P, align 8
29*f2b5ec6eSTeresa Johnson  %call = call i32 (...) @foo()
30*f2b5ec6eSTeresa Johnson  ret i32 0
31*f2b5ec6eSTeresa Johnson}
32*f2b5ec6eSTeresa Johnson
33*f2b5ec6eSTeresa Johnsondeclare i32 @foo(...)
34*f2b5ec6eSTeresa Johnson
35*f2b5ec6eSTeresa Johnsondefine internal i8* @bar() {
36*f2b5ec6eSTeresa Johnsonentry:
37*f2b5ec6eSTeresa Johnson  ret i8* null
38*f2b5ec6eSTeresa Johnson}
39