We were not previously testing the comdat exclusion in bitcode objects because we were linking two copies of the .bc file and the `linkonce_odr` linkage type was removing the duplicate `_start` at the LTO stage. Now we link an bitcode and non-bitcode version both of which contains a copy of _start. We link them in both orders, which means this test will fail if comdat exclusion is not working correctly in bitcode parsing. Differential Revision: https://reviews.llvm.org/D62923 llvm-svn: 362650
18 lines
479 B
LLVM
18 lines
479 B
LLVM
; Verify that comdat symbols can be defined in LTO objects. We had a
|
|
; regression where the comdat handling code was causing symbol in the lto object
|
|
; to be ignored.
|
|
; RUN: llvm-as %s -o %t.bc
|
|
; RUN: llc -filetype=obj %s -o %t.o
|
|
; RUN: wasm-ld %t.bc %t.o -o %t.wasm
|
|
; RUN: wasm-ld %t.o %t.bc -o %t.wasm
|
|
|
|
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
|
|
target triple = "wasm32-unknown-unknown"
|
|
|
|
$foo = comdat any
|
|
|
|
define void @_start() comdat($foo) {
|
|
entry:
|
|
ret void
|
|
}
|