55 lines · plain
1; RUN: rm -rf %t && split-file %s %t2; RUN: llvm-link -S %t/1.ll %t/1-aux.ll -o - | FileCheck %s3; RUN: llvm-link -S %t/2.ll %t/2-aux.ll -o - | FileCheck %s --check-prefix=CHECK24 5;--- 1.ll6$c = comdat any7 8@v = global i32 0, comdat ($c)9 10; CHECK: @v = global i32 0, comdat($c)11; CHECK: @v3 = external global i3212; CHECK: @v2 = external dllexport global i3213 14;--- 1-aux.ll15$c = comdat any16 17@v2 = weak dllexport global i32 0, comdat ($c)18define ptr @f2() {19 ret ptr @v220}21 22@v3 = weak alias i32, ptr @v223define ptr @f3() {24 ret ptr @v325}26 27;--- 2.ll28;; Check that a private global variable from a non-prevailing comdat group is29;; converted into 'available_externally' and excluded from the comdat group.30 31; CHECK2: $__profc_foo = comdat any32; CHECK2: @llvm.compiler.used = appending global [2 x ptr] [ptr @__profd_foo.[[SUFFIX:[0-9]+]], ptr @__profd_foo]33; CHECK2: @__profd_foo.[[SUFFIX]] = private global ptr @__profc_foo, comdat($__profc_foo)34; CHECK2: @__profc_foo = linkonce_odr global i64 1, comdat35; CHECK2: @__profd_foo = available_externally dso_local global ptr @__profc_foo{{$}}36 37$__profc_foo = comdat any38@__profc_foo = linkonce_odr global i64 1, comdat39@__profd_foo = private global ptr @__profc_foo, comdat($__profc_foo)40@llvm.compiler.used = appending global [1 x ptr] [ ptr @__profd_foo ]41 42define ptr @bar() {43 ret ptr @__profc_foo44}45 46;--- 2-aux.ll47$__profc_foo = comdat any48@__profc_foo = linkonce_odr global i64 1, comdat49@__profd_foo = private global ptr @__profc_foo, comdat($__profc_foo)50@llvm.compiler.used = appending global [1 x ptr] [ ptr @__profd_foo ]51 52define ptr @baz() {53 ret ptr @__profc_foo54}55