diff options
author | Nicholas Wilson <nicholas@nicholaswilson.me.uk> | 2018-03-13 13:12:03 +0000 |
---|---|---|
committer | Nicholas Wilson <nicholas@nicholaswilson.me.uk> | 2018-03-13 13:12:03 +0000 |
commit | 08cff615723f7de637e04402e79bd19cf4fcfcf7 (patch) | |
tree | 1ce7e9b58e6ae20ea010b92193d570954c5a8836 | |
parent | 844f22d3c3806f372c1bec258a4bc559f974081d (diff) | |
download | bcm5719-llvm-08cff615723f7de637e04402e79bd19cf4fcfcf7.tar.gz bcm5719-llvm-08cff615723f7de637e04402e79bd19cf4fcfcf7.zip |
[WebAssembly] Add missing --demangle arg
Previously, Config->Demangle was uninitialised (not hooked up to
commandline handling)
Differential Revision: https://reviews.llvm.org/D44301
llvm-svn: 327390
-rw-r--r-- | lld/test/wasm/demangle.ll | 17 | ||||
-rw-r--r-- | lld/wasm/Driver.cpp | 1 | ||||
-rw-r--r-- | lld/wasm/Options.td | 9 |
3 files changed, 27 insertions, 0 deletions
diff --git a/lld/test/wasm/demangle.ll b/lld/test/wasm/demangle.ll new file mode 100644 index 00000000000..07f99274556 --- /dev/null +++ b/lld/test/wasm/demangle.ll @@ -0,0 +1,17 @@ +; RUN: llc -filetype=obj %s -o %t.o +; RUN: not wasm-ld --check-signatures --undefined _Z3fooi \ +; RUN: -o %t.wasm %t.o 2>&1 | FileCheck %s + +; CHECK: error: undefined symbol: foo(int) + +; RUN: not wasm-ld --check-signatures --no-demangle --undefined _Z3fooi \ +; RUN: -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-NODEMANGLE %s + +; CHECK-NODEMANGLE: error: undefined symbol: _Z3fooi + +target triple = "wasm32-unknown-unknown-wasm" + +define hidden void @_start() local_unnamed_addr { +entry: + ret void +} diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp index 0de180a2c94..443def7587d 100644 --- a/lld/wasm/Driver.cpp +++ b/lld/wasm/Driver.cpp @@ -280,6 +280,7 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) { Config->AllowUndefined = Args.hasArg(OPT_allow_undefined); Config->CheckSignatures = Args.hasFlag(OPT_check_signatures, OPT_no_check_signatures, false); + Config->Demangle = Args.hasFlag(OPT_demangle, OPT_no_demangle, true); Config->Entry = getEntry(Args, Args.hasArg(OPT_relocatable) ? "" : "_start"); Config->ImportMemory = Args.hasArg(OPT_import_memory); Config->OutputFile = Args.getLastArgValue(OPT_o); diff --git a/lld/wasm/Options.td b/lld/wasm/Options.td index 6260d4d9843..8c9baad2eec 100644 --- a/lld/wasm/Options.td +++ b/lld/wasm/Options.td @@ -11,6 +11,11 @@ multiclass Eq<string name> { def _eq: Joined<["--", "-"], name # "=">, Alias<!cast<Separate>(NAME)>; } +multiclass B<string name, string help1, string help2> { + def NAME: Flag<["--", "-"], name>, HelpText<help1>; + def no_ # NAME: Flag<["--", "-"], "no-" # name>, HelpText<help2>; +} + // The follow flags are shared with the ELF linker def color_diagnostics: F<"color-diagnostics">, HelpText<"Use colors in diagnostics">; @@ -18,6 +23,10 @@ def color_diagnostics: F<"color-diagnostics">, def color_diagnostics_eq: J<"color-diagnostics=">, HelpText<"Use colors in diagnostics">; +defm demangle: B<"demangle", + "Demangle symbol names", + "Do not demangle symbol names">; + def entry: S<"entry">, MetaVarName<"<entry>">, HelpText<"Name of entry point symbol">; |