[llvm] r312294 - [WebAssembly] Fix getSymbolValue() for data symbols

Bill Seurer via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 5 08:17:50 PDT 2017


This patch breaks things on powerpc64 big endian (works fine on little 
endian).  See

http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/10335

For example:

******************** TEST 'LLVM :: tools/llvm-nm/wasm/exports.yaml' 
FAILED ********************
Script:
--
/home/buildbots/ppc64be-clang-test/clang-ppc64be/stage1/./bin/yaml2obj < 
/home/buildbots/ppc64be-clang-test/clang-ppc64be/llvm/test/tools/llvm-nm/wasm/exports.yaml 
| /home/buildbots/ppc64be-clang-test/clang-ppc64be/stage1/./bin/llvm-nm 
- | 
/home/buildbots/ppc64be-clang-test/clang-ppc64be/stage1/./bin/FileCheck 
/home/buildbots/ppc64be-clang-test/clang-ppc64be/llvm/test/tools/llvm-nm/wasm/exports.yaml
--
Exit Code: 1

Command Output (stderr):
--
/home/buildbots/ppc64be-clang-test/clang-ppc64be/llvm/test/tools/llvm-nm/wasm/exports.yaml:43:10: 
error: expected string not found in input
# CHECK: 00000400 D bar
          ^
<stdin>:1:1: note: scanning from here
00000000 D bar
^

--


On 08/31/2017 06:22 PM, Sam Clegg via llvm-commits wrote:
> Author: sbc
> Date: Thu Aug 31 16:22:44 2017
> New Revision: 312294
> 
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D312294-26view-3Drev&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=L-QGmfsra7uMLXZYlnaz1j_vCKuYV-qXAS0I33w2U5c&e=
> Log:
> [WebAssembly] Fix getSymbolValue() for data symbols
> 
> This is mostly a fix for the output of `llvm-nm`
> 
> See Bug 34392: https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.llvm.org__show-5Fbug.cgi-3Fid-3D34392&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=HaJ-tUeGVEpo2AjGxnM76idU6XaOOpmXey6afeH4fNU&e=
> 
> Differential Revision: https://urldefense.proofpoint.com/v2/url?u=https-3A__reviews.llvm.org_D37359&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=OVlmNWRMQixOOFdNC01AIz1E21QlfmLotVJb9JTuG98&e=
> 
> Modified:
>      llvm/trunk/lib/Object/WasmObjectFile.cpp
>      llvm/trunk/test/Object/nm-trivial-object.test
>      llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml
>      llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml
>      llvm/trunk/test/tools/llvm-objdump/WebAssembly/symbol-table.test
> 
> Modified: llvm/trunk/lib/Object/WasmObjectFile.cpp
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Object_WasmObjectFile.cpp-3Frev-3D312294-26r1-3D312293-26r2-3D312294-26view-3Ddiff&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=hSZ7-RHwu9srJzJ9y0tkrEIU2bk4cHufxjnPwqwFS6I&e=
> ==============================================================================
> --- llvm/trunk/lib/Object/WasmObjectFile.cpp (original)
> +++ llvm/trunk/lib/Object/WasmObjectFile.cpp Thu Aug 31 16:22:44 2017
> @@ -786,8 +786,13 @@ uint64_t WasmObjectFile::getSymbolValueI
>     case WasmSymbol::SymbolType::GLOBAL_IMPORT:
>       return 0;
>     case WasmSymbol::SymbolType::FUNCTION_EXPORT:
> -  case WasmSymbol::SymbolType::GLOBAL_EXPORT:
>       return Exports[Sym.ElementIndex].Index;
> +  case WasmSymbol::SymbolType::GLOBAL_EXPORT: {
> +    uint32_t GlobalIndex = Exports[Sym.ElementIndex].Index;
> +    assert(GlobalIndex < Globals.size());
> +    const wasm::WasmGlobal& Global = Globals[GlobalIndex];
> +    return Global.InitExpr.Value.Int32;
> +  }
>     case WasmSymbol::SymbolType::DEBUG_FUNCTION_NAME:
>       return Sym.ElementIndex;
>     }
> 
> Modified: llvm/trunk/test/Object/nm-trivial-object.test
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_Object_nm-2Dtrivial-2Dobject.test-3Frev-3D312294-26r1-3D312293-26r2-3D312294-26view-3Ddiff&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=AeT7RmlIoL1Vp20Svjtg7qG-nrObeFgxtkiTK0IfMzM&e=
> ==============================================================================
> --- llvm/trunk/test/Object/nm-trivial-object.test (original)
> +++ llvm/trunk/test/Object/nm-trivial-object.test Thu Aug 31 16:22:44 2017
> @@ -62,7 +62,7 @@ COFF32-NEXT:          U _puts
>   WASM:               U SomeOtherFunction
>   WASM-NEXT: 00000002 T main
>   WASM-NEXT:          U puts
> -WASM-NEXT: 00000001 D var
> +WASM-NEXT: 00000010 D var
>   
>   COFF64: 00000000 d .data
>   COFF64-NEXT: 00000000 t .text
> 
> Modified: llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_tools_llvm-2Dnm_wasm_exports.yaml-3Frev-3D312294-26r1-3D312293-26r2-3D312294-26view-3Ddiff&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=ukq_YTlH0h04Fvjwr6DULghMXrYc6eU4Yc6M6kWcfAQ&e=
> ==============================================================================
> --- llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml (original)
> +++ llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml Thu Aug 31 16:22:44 2017
> @@ -40,5 +40,5 @@ Sections:
>           Kind:            GLOBAL
>           Index:           0x00000002
>   
> -# CHECK: 00000002 D bar
> +# CHECK: 00000400 D bar
>   # CHECK: 00000004 T foo
> 
> Modified: llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_tools_llvm-2Dnm_wasm_weak-2Dsymbols.yaml-3Frev-3D312294-26r1-3D312293-26r2-3D312294-26view-3Ddiff&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=ce662DZzCeyaKTEdtZSTjQrGIkvGJKxdZzoHMHIRQl8&e=
> ==============================================================================
> --- llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml (original)
> +++ llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml Thu Aug 31 16:22:44 2017
> @@ -64,7 +64,7 @@ Sections:
>         - Name:            weak_import_data
>           Flags:           1
>   
> -# CHECK: 00000002 W weak_global_data
> +# CHECK: 00000400 W weak_global_data
>   # CHECK: 00000004 W weak_global_func
>   # CHECK:          w weak_import_data
>   # CHECK:          w weak_import_func
> 
> Modified: llvm/trunk/test/tools/llvm-objdump/WebAssembly/symbol-table.test
> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_tools_llvm-2Dobjdump_WebAssembly_symbol-2Dtable.test-3Frev-3D312294-26r1-3D312293-26r2-3D312294-26view-3Ddiff&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=HdlEOeEbtBhjBCND95HCb3WP3cvK97_m4UY4yon7Jpc&e=
> ==============================================================================
> --- llvm/trunk/test/tools/llvm-objdump/WebAssembly/symbol-table.test (original)
> +++ llvm/trunk/test/tools/llvm-objdump/WebAssembly/symbol-table.test Thu Aug 31 16:22:44 2017
> @@ -4,7 +4,7 @@ CHECK:      SYMBOL TABLE:
>   CHECK-NEXT: 00000000 l     F IMPORT	puts
>   CHECK-NEXT: 00000000 l     F IMPORT	SomeOtherFunction
>   CHECK-NEXT: 00000002 g     F EXPORT	main
> -CHECK-NEXT: 00000001 g       EXPORT	var
> +CHECK-NEXT: 00000010 g       EXPORT	var
>   CHECK-NEXT: 00000000 l     F name	puts
>   CHECK-NEXT: 00000001 l     F name	SomeOtherFunction
>   CHECK-NEXT: 00000002 l     F name	main
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=08Lou2FfvTHzIjPRPuZtkUo7poBdUsd2pP3L7P8swck&m=N2mDk00Hq3RPVuu3wnU39zjWdLHzDfFpe34KIX7n7G4&s=_Q8yc-IhS7qaHXldpRabjAbkstDsP-cm6pRxY-4IeeA&e=
> 


-- 

-Bill Seurer



More information about the llvm-commits mailing list