diff options
Diffstat (limited to 'lib/MC/MCWasmStreamer.cpp')
| -rw-r--r-- | lib/MC/MCWasmStreamer.cpp | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/MC/MCWasmStreamer.cpp b/lib/MC/MCWasmStreamer.cpp index 59b62b8d37c3..02fa070f0c57 100644 --- a/lib/MC/MCWasmStreamer.cpp +++ b/lib/MC/MCWasmStreamer.cpp @@ -98,18 +98,30 @@ bool MCWasmStreamer::EmitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {    case MCSA_WeakDefAutoPrivate:    case MCSA_Invalid:    case MCSA_IndirectSymbol: +  case MCSA_Hidden:      return false; + +  case MCSA_Weak: +  case MCSA_WeakReference: +    Symbol->setWeak(true); +    Symbol->setExternal(true); +    break; +    case MCSA_Global:      Symbol->setExternal(true);      break; +    case MCSA_ELF_TypeFunction:      Symbol->setIsFunction(true);      break; +    case MCSA_ELF_TypeObject:      Symbol->setIsFunction(false);      break; +    default:      // unrecognized directive +    llvm_unreachable("unexpected MCSymbolAttr");      return false;    }  | 
