diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binary-reader-objdump.cc | 18 | ||||
-rw-r--r-- | src/common.h | 6 |
2 files changed, 22 insertions, 2 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index 836bf7fa..5fe39adb 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -1072,8 +1072,22 @@ Result BinaryReaderObjdump::OnSymbolInfoCount(Index count) { } Result BinaryReaderObjdump::OnSymbolInfo(string_view name, uint32_t flags) { - PrintDetails(" - <" PRIstringview "> flags=0x%x\n", - WABT_PRINTF_STRING_VIEW_ARG(name), flags); + const char* binding_name = nullptr; + SymbolBinding binding = static_cast<SymbolBinding>(flags & 0x3); + switch (binding) { + case SymbolBinding::Global: + binding_name = "GLOBAL"; + break; + case SymbolBinding::Local: + binding_name = "LOCAL "; + break; + case SymbolBinding::Weak: + binding_name = "WEAK "; + break; + } + + PrintDetails(" - %s <" PRIstringview ">\n", binding_name, + WABT_PRINTF_STRING_VIEW_ARG(name)); return Result::Ok; } diff --git a/src/common.h b/src/common.h index 78fe710f..2b14c242 100644 --- a/src/common.h +++ b/src/common.h @@ -227,6 +227,12 @@ enum class LinkingEntryType { SymbolInfo = 2, }; +enum class SymbolBinding { + Global = 0, + Weak = 1, + Local = 2, +}; + /* matches binary format, do not change */ enum class ExternalKind { Func = 0, |