llvm-project/llvm/test/Object/Inputs/bitcode-sym32.ll
zhijian 38d3c6cb9b [AIX] support 64bit global symbol table for big archive
Summary:

In big archive , there is 32bit global symbol table and 64 bit global symbol table. llvm-ar only support 32bit global symbol table this moment, we need to support the 64 bit global symbol table.

https://www.ibm.com/docs/en/aix/7.2?topic=formats-ar-file-format-big

Global Symbol Tables

Immediately following the member table, the archive file contains two global symbol tables. The first global symbol table locates 32-bit file members that define global symbols; the second global symbol table does the same for 64-bit file members. If the archive has no 32-bit or 64-bit file members, the respective global symbol table is omitted. The strip command can be used to delete one or both global symbol tables from the archive. The fl_gstoff field in the fixed-length header contains the offset to the 32-bit global symbol table, and the fl_gst64off contains the offset to the 64-bit global symbol table.

Reviewers: James Henderson,Stephen Peckham
Differential Revision: https://reviews.llvm.org/D142479
2023-05-18 10:54:14 -04:00

15 lines
384 B
LLVM

target triple = "powerpcle-unknown-linux-gnu"
@C32 = dso_local global i32 5, align 4
@undef_var32 = external dso_local global i32, align 4
define dso_local i32 @foo32(i32 %i) #0 {
entry:
%i.addr = alloca i32, align 4
store i32 %i, ptr %i.addr, align 4
%0 = load i32, ptr %i.addr, align 4
%1 = load i32, ptr @undef_var32, align 4
%add = add nsw i32 %0, %1
ret i32 %add
}