Globals with “available_externally” linkage should never be emitted into the
object file corresponding to the LLVM module.
However, AIX system assembler default print error for undefined reference .
so AIX chose to emit the available externally symbols into .s,
so that users won't run into errors in situations like:
clang -target powerpc-ibm-aix -xc -<<<$'extern inline
__attribute__((__gnu_inline__)) void foo() {}\nvoid bar() { foo(); }' -O
-Xclang -disable-llvm-passes
Reviewed By: hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D102377
; RUN: llc -verify-machine-dom-info < %s | not grep test_
+; XFAIL: aix
+; AIX system assembler default print error for undefined reference .
+; so AIX chose to emit the available externally symbols into .s,
+; so that users won't run into errors in situations like:
+; clang -target powerpc-ibm-aix -xc -<<<$'extern inline __attribute__((__gnu_inline__)) void foo() {}\nvoid bar() { foo(); }' -O -Xclang -disable-llvm-passes
+
; test_function should not be emitted to the .s file.
define available_externally i32 @test_function() {
ret i32 4