-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Closed
oboukli/tromino-puzzle
#2Description
Closure compiler is warning that the null; line at the begging of JavaScript files is useless. Code won't build with strict compiler flags.
Works fine with emsdk 3.1.22, probably because it uses an older version of the Closure compiler, but not with 3.1.23.
Version of emscripten/emsdk:
docker run emscripten/emsdk emcc -vemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.23 (5ae63ce7dd955df449cb419bfe5afc51d1bd57f2)
clang version 16.0.0 (https://github.com/llvm/llvm-project 8b587113b746f31b63fd6473083df78cef30a72e)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /emsdk/upstream/bin
Failing command line in full:
Sample code:main.c
#include <stdio.h>
int main() {
printf("hello, world!\n");
return 0;
}Command
docker run \
-v $(pwd):/src \
-v $(pwd)/emscripten_cache:/emsdk/upstream/emscripten/cache \
-v $(pwd)/emscripten_tmp:/tmp \
--workdir=/src emscripten/emsdk \
emcc -v -Wall -Werror -O3 \
--closure 1 \
-s ASSERTIONS=0 \
-s EXPORTED_FUNCTIONS='["_main"]' \
-s STRICT=1 \
-o main.js main.cOutput
"/emsdk/upstream/bin/clang" --version
"/emsdk/upstream/bin/clang" -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -Werror=implicit-function-declaration -I/emsdk/upstream/emscripten/cache/sysroot/include/SDL --sysroot=/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -v -Wall -Werror -O3 main.c -c -o /tmp/emscripten_temp_bscia4h5/main_0.o
clang version 16.0.0 (https://github.com/llvm/llvm-project 8b587113b746f31b63fd6473083df78cef30a72e)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /emsdk/upstream/bin
(in-process)
"/emsdk/upstream/bin/clang-16" -cc1 -triple wasm32-unknown-emscripten -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.c -mrelocation-model static -mframe-pointer=none -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/src -resource-dir /emsdk/upstream/lib/clang/16.0.0 -I /emsdk/upstream/emscripten/cache/sysroot/include/SDL -isysroot /emsdk/upstream/emscripten/cache/sysroot -internal-isystem /emsdk/upstream/lib/clang/16.0.0/include -internal-isystem /emsdk/upstream/emscripten/cache/sysroot/include/wasm32-emscripten -internal-isystem /emsdk/upstream/emscripten/cache/sysroot/include -O3 -Werror=implicit-function-declaration -Wall -Werror -fdebug-compilation-dir=/src -ferror-limit 19 -fvisibility=default -fgnuc-version=4.2.1 -fignore-exceptions -vectorize-loops -vectorize-slp -iwithsysroot/include/compat -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -o /tmp/emscripten_temp_bscia4h5/main_0.o -x c main.c
clang -cc1 version 16.0.0 based upon LLVM 16.0.0git default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/emsdk/upstream/emscripten/cache/sysroot/include/wasm32-emscripten"
#include "..." search starts here:
#include <...> search starts here:
/emsdk/upstream/emscripten/cache/sysroot/include/SDL
/emsdk/upstream/emscripten/cache/sysroot/include/compat
/emsdk/upstream/lib/clang/16.0.0/include
/emsdk/upstream/emscripten/cache/sysroot/include
End of search list.
"/emsdk/upstream/bin/wasm-ld" -o main.wasm /tmp/emscripten_temp_bscia4h5/main_0.o -L/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten -lnoexit -lc -ldlmalloc -lcompiler_rt -lsockets --fatal-warnings -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --strip-debug --export-if-defined=main --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=__main_argc_argv --export=stackSave --export=stackRestore --export=stackAlloc --export=__wasm_call_ctors --export=__errno_location --export=__get_temp_ret --export=__set_temp_ret --export-table -z stack-size=5242880 --initial-memory=16777216 --no-entry --max-memory=16777216 --global-base=1024
"/emsdk/upstream/bin/wasm-emscripten-finalize" --dyncalls-i64 --pass-arg=legalize-js-interface-exported-helpers main.wasm -o main.wasm --detect-features
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/src/compiler.js /tmp/tmpxi0cn2o6.json
"/emsdk/upstream/bin/wasm-opt" --strip-dwarf --post-emscripten -O3 --low-memory-unused --zero-filled-memory --pass-arg=directize-initial-contents-immutable --strip-debug --strip-producers main.wasm -o main.wasm --mvp-features
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emscripten_temp_bscia4h5/main.js AJSDCE --closureFriendly
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emcc_acorn_info_9ysik92g.js emitDCEGraph noPrint --closureFriendly
"/emsdk/upstream/bin/wasm-metadce" --graph-file=/tmp/emcc_dce_graph_6p5aj3bz.json main.wasm -o main.wasm --mvp-features
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emcc_acorn_info_q3mi6lll.js applyDCEGraphRemovals --closureFriendly
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emscripten_temp_bscia4h5/main.js.jso.js.jso.js AJSDCE --closureFriendly
"/emsdk/upstream/bin/wasm-opt" --strip-dwarf --minify-imports-and-exports-and-modules main.wasm -o main.wasm --mvp-features
"/emsdk/node/14.18.2_64bit/bin/node" /emsdk/upstream/emscripten/tools/acorn-optimizer.js /tmp/emcc_acorn_info_bm4m2tez.js applyImportAndExportNameChanges --closureFriendly
"/emsdk/node/14.18.2_64bit/bin/node" --max_old_space_size=8192 /emsdk/upstream/emscripten/node_modules/.bin/google-closure-compiler --compilation_level ADVANCED_OPTIMIZATIONS --language_in ECMASCRIPT_2020 --language_out NO_TRANSPILE --emit_use_strict=false --externs /emsdk/upstream/emscripten/src/closure-externs/closure-externs.js --externs /emsdk/upstream/emscripten/src/closure-externs/node-externs.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/buffer.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/assert.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/string_decoder.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/os.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/tty.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/domain.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/process.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/readline.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/path.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/vm.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/dgram.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/events.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/util.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/dns.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/zlib.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/punycode.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/url.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/cluster.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/stream.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/repl.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/child_process.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/https.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/querystring.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/net.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/tls.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/fs.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/http.js --externs /emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/core.js --js /tmp/emscripten_temp_bscia4h5/main.js.jso.js.jso.js.jso.js.jso.js --js_output_file tmp12ftzcj7.cc.js
building:ERROR: Closure compiler completed with warnings and -Werror=closure enabled, aborting!
building:ERROR: /tmp/emscripten_temp_bscia4h5/main.js.jso.js.jso.js.jso.js.jso.js:1:0: WARNING - [JSC_USELESS_CODE] Suspicious code. This code lacks side-effects. Is there a bug?
1| null;
^^^^
0 error(s), 1 warning(s), 80.0% typed
building:WARNING: (rerun with -g1 linker flag for an unminified output)
emcc: error: closure compiler produced warnings and -W=error=closure enabled
Metadata
Metadata
Assignees
Labels
No labels