[llvm] [llvm-objdump][AVR] Detect AVR architecture from ELF flags for disassembling (PR #174731)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 27 01:19:45 PST 2026
================
@@ -2696,12 +2696,16 @@ static void disassembleObject(ObjectFile *Obj, bool InlineRelocs,
// silent failures.
if (const auto *Elf = dyn_cast<ELFObjectFileBase>(Obj)) {
unsigned AVRVersion = Elf->getPlatformFlags() & ELF::EF_AVR_ARCH_MASK;
- std::string Version = AVR::getFeatureSetForEFlag(AVRVersion);
- if (Version == "avr0")
- reportWarning("unknown AVR EFlags value: " + toHex(AVRVersion) +
- ", defaulting to avr0",
+ if (Expected<std::string> VersionOrErr =
+ AVR::getFeatureSetFromEFlag(AVRVersion)) {
+ Features.AddFeature('+' + *VersionOrErr);
+ } else {
+ reportWarning("unknown AVR EFlags value: 0x" +
+ Twine::utohexstr(AVRVersion) + ", defaulting to avr0",
Obj->getFileName());
- Features.AddFeature('+' + Version);
+ consumeError(VersionOrErr.takeError());
----------------
jh7370 wrote:
The whole point of passing the Error back from the lower function is that you use the information in that error in the `reportWarning` call, possibly via `toString` or similar.
https://github.com/llvm/llvm-project/pull/174731
More information about the llvm-commits
mailing list