According to the IR verifier, "Declaration[s] may not be in a Comdat!" This is a re-commit of76b3f0b4d5and87d7838202with updates to the test: * Force emission of the extra-module, to trigger the bug after D138264, by providing a second symbol @g, and making the comdat nodeduplicate. (Technically only one is needed, but two should be safer.) * Name the comdat $f to avoid failure on Windows: LLVM ERROR: Associative COMDAT symbol 'c' does not exist. * Mark the test as UNSUPPORTED on macOS, MachO doesn't support COMDATs. Differential Revision: https://reviews.llvm.org/D142443
19 lines
283 B
LLVM
19 lines
283 B
LLVM
; RUN: lli -extra-module %p/Inputs/weak-comdat-def.ll %s
|
|
; UNSUPPORTED: target={{.*}}-darwin{{.*}}
|
|
|
|
declare i32 @g()
|
|
|
|
$f = comdat nodeduplicate
|
|
|
|
define weak i32 @f() comdat {
|
|
entry:
|
|
%0 = call i32 @g()
|
|
ret i32 %0
|
|
}
|
|
|
|
define i32 @main() {
|
|
entry:
|
|
%0 = call i32 @f()
|
|
ret i32 %0
|
|
}
|