aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2024-03-06 20:49:12 +0100
committerGitHub <noreply@github.com>2024-03-06 20:49:12 +0100
commit15b7b3182cc28f4f0b950bd73d931caa27b833ec (patch)
tree506822fb16f553c6c0b1251f95bf32b47689c5a4 /clang/lib/Frontend/CompilerInvocation.cpp
parentf95a76391c527ba23574cb1d8d8803c9a1d0b7c4 (diff)
downloadllvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.zip
llvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.tar.gz
llvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.tar.bz2
[libomptarget] Support BE ELF files in plugins-nextgen (#83976)
Code in plugins-nextgen reading ELF files is currently hard-coded to assume a 64-bit little-endian ELF format. Unfortunately, this assumption is even embedded in the interface between GlobalHandler and Utils/ELF routines, which use ELF64LE types. To fix this, I've refactored the interface to push all ELF specific types into Utils/ELF. Specifically, this patch removes both the getSymbol and getSymbolAddress routines and replaces them with a single findSymbolInImage, which gets a StringRef identifying the raw object file image as input, and returns a StringRef covering the data addressed by the symbol (address and size) if found, or std::nullopt otherwise. This allows properly templating over multiple ELF format variants inside Utils/ELF; specifically, this patch adds support for 64-bit big-endian ELF files in addition to 64-bit little-endian files.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions