diff options
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llvm-readobj/WasmDumper.cpp | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/llvm/tools/llvm-readobj/WasmDumper.cpp b/llvm/tools/llvm-readobj/WasmDumper.cpp index e8440f6f8de..42851ab6832 100644 --- a/llvm/tools/llvm-readobj/WasmDumper.cpp +++ b/llvm/tools/llvm-readobj/WasmDumper.cpp @@ -40,6 +40,18 @@ static const EnumEntry<uint32_t> WasmSectionTypes[] = {  #undef ENUM_ENTRY  }; +static const EnumEntry<unsigned> WasmSymbolFlags[] = { +#define ENUM_ENTRY(X)                                                          \ +  { #X, wasm::WASM_SYMBOL_##X } +  ENUM_ENTRY(BINDING_GLOBAL), +  ENUM_ENTRY(BINDING_WEAK), +  ENUM_ENTRY(BINDING_LOCAL), +  ENUM_ENTRY(VISIBILITY_DEFAULT), +  ENUM_ENTRY(VISIBILITY_HIDDEN), +  ENUM_ENTRY(UNDEFINED), +#undef ENUM_ENTRY +}; +  class WasmDumper : public ObjDumper {  public:    WasmDumper(const WasmObjectFile *Obj, ScopedPrinter &Writer) @@ -209,7 +221,8 @@ void WasmDumper::printSymbol(const SymbolRef &Sym) {    WasmSymbol Symbol = Obj->getWasmSymbol(Sym.getRawDataRefImpl());    W.printString("Name", Symbol.Info.Name);    W.printEnum("Type", Symbol.Info.Kind, makeArrayRef(WasmSymbolTypes)); -  W.printHex("Flags", Symbol.Info.Flags); +  W.printFlags("Flags", Symbol.Info.Flags, makeArrayRef(WasmSymbolFlags)); +    if (Symbol.Info.Flags & wasm::WASM_SYMBOL_UNDEFINED)      W.printString("Module", Symbol.Info.Module);    if (Symbol.Info.Kind != wasm::WASM_SYMBOL_TYPE_DATA) { | 

