[llvm] f23b259 - [WebAssembly] Improve error messages regarding missing indirect function table. NFC

Sam Clegg via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 7 07:59:00 PDT 2021


Author: Sam Clegg
Date: 2021-04-07T07:58:43-07:00
New Revision: f23b259e1877115794c0bb5654a329c7bdefadb0

URL: https://github.com/llvm/llvm-project/commit/f23b259e1877115794c0bb5654a329c7bdefadb0
DIFF: https://github.com/llvm/llvm-project/commit/f23b259e1877115794c0bb5654a329c7bdefadb0.diff

LOG: [WebAssembly] Improve error messages regarding missing indirect function table. NFC

Use report_fatal_error here since this is an internal error, and not
something the user can/should be trying to fix.

Also distinguish between the symbol being missing and the symbol having
the wrong type.

We have a failure internally where the symbol is missing.  Currently
trying to reduce the test case to something we can attach to an llvm
bug.

Differential Revision: https://reviews.llvm.org/D99960

Added: 
    

Modified: 
    llvm/lib/MC/WasmObjectWriter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp
index 0eda8b5a3234a..c0faf85523aac 100644
--- a/llvm/lib/MC/WasmObjectWriter.cpp
+++ b/llvm/lib/MC/WasmObjectWriter.cpp
@@ -536,11 +536,11 @@ void WasmObjectWriter::recordRelocation(MCAssembler &Asm,
     // We require the function table to have already been defined.
     auto TableName = "__indirect_function_table";
     MCSymbolWasm *Sym = cast_or_null<MCSymbolWasm>(Ctx.lookupSymbol(TableName));
-    if (!Sym || !Sym->isFunctionTable()) {
-      Ctx.reportError(
-          Fixup.getLoc(),
-          "symbol '__indirect_function_table' is not a function table");
+    if (!Sym) {
+      report_fatal_error("missing indirect function table symbol");
     } else {
+      if (!Sym->isFunctionTable())
+        report_fatal_error("__indirect_function_table symbol has wrong type");
       // Ensure that __indirect_function_table reaches the output.
       Sym->setNoStrip();
       Asm.registerSymbol(*Sym);


        


More information about the llvm-commits mailing list