Open Bug 1445530 Opened 7 years ago Updated 1 year ago

arm64 error-as-warnings failure to build with gcc 7 (error: this statement may fall through)

Categories

(Core :: JavaScript Engine: JIT, defect, P3)

defect

Tracking

()

People

(Reporter: glandium, Unassigned)

References

(Blocks 1 open bug)

Details

[task 2018-03-14T01:25:53.633Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src24.cpp:38:0: [task 2018-03-14T01:25:53.633Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Debugger-vixl.cpp: In static member function 'static vixl::Token* vixl::FormatToken::Tokenize(const char*)': [task 2018-03-14T01:25:53.633Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Debugger-vixl.cpp:1022:7: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:53.633Z] if (length == 1) return js_new<Format<uint32_t>>("%08" PRIx32, 'i'); [task 2018-03-14T01:25:53.633Z] ^~ [task 2018-03-14T01:25:53.633Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Debugger-vixl.cpp:1024:5: note: here [task 2018-03-14T01:25:53.634Z] default: return NULL; [task 2018-03-14T01:25:53.634Z] ^~~~~~~ [task 2018-03-14T01:25:54.025Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src24.cpp:47:0: [task 2018-03-14T01:25:54.025Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Decoder-vixl.cpp: In member function 'void vixl::Decoder::DecodeDataProcessing(const vixl::Instruction*)': [task 2018-03-14T01:25:54.026Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Decoder-vixl.cpp:487:11: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.026Z] if (instr->Bit(29) == 0x1) { [task 2018-03-14T01:25:54.026Z] ^~ [task 2018-03-14T01:25:54.026Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Decoder-vixl.cpp:518:9: note: here [task 2018-03-14T01:25:54.026Z] case 1: [task 2018-03-14T01:25:54.026Z] ^~~~ [task 2018-03-14T01:25:54.772Z] /builds/worker/workspace/gcc/bin/g++ -o Unified_cpp_js_src28.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DENABLE_BINARYDATA -DENABLE_SIMD -DENABLE_WASM_SATURATING_TRUNC_OPS -DENABLE_WASM_SIGNEXTEND_OPS -DENABLE_WASM_THREAD_OPS -DENABLE_WASM_GLOBAL -DWASM_HUGE_MEMORY -DJS_CACHEIR_SPEW -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/workspace/build/src/js/src -I/builds/worker/workspace/build/src/obj-spider/js/src -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -Werror -Wno-shadow -Werror=format -fno-strict-aliasing -MD -MP -MF .deps/Unified_cpp_js_src28.o.pp /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src28.cpp [task 2018-03-14T01:25:54.888Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src25.cpp:2:0: [task 2018-03-14T01:25:54.888Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp: In member function 'virtual void vixl::Disassembler::VisitLoadStoreUnscaledOffset(const vixl::Instruction*)': [task 2018-03-14T01:25:54.888Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:894:25: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.888Z] case LDURSB_x: form = form_x; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:54.888Z] ~~~~~^~~~~~~~ [task 2018-03-14T01:25:54.888Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:895:5: note: here [task 2018-03-14T01:25:54.889Z] case LDURSB_w: mnemonic = "ldursb"; break; [task 2018-03-14T01:25:54.889Z] ^~~~ [task 2018-03-14T01:25:54.889Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:896:25: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.889Z] case LDURSH_x: form = form_x; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:54.889Z] ~~~~~^~~~~~~~ [task 2018-03-14T01:25:54.889Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:897:5: note: here [task 2018-03-14T01:25:54.889Z] case LDURSH_w: mnemonic = "ldursh"; break; [task 2018-03-14T01:25:54.889Z] ^~~~ [task 2018-03-14T01:25:54.889Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp: In member function 'virtual void vixl::Disassembler::VisitFPCompare(const vixl::Instruction*)': [task 2018-03-14T01:25:54.889Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:1058:28: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.889Z] case FCMP_d_zero: form = form_zero; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:54.889Z] ~~~~~^~~~~~~~~~~ [task 2018-03-14T01:25:54.890Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:1059:5: note: here [task 2018-03-14T01:25:54.890Z] case FCMP_s: [task 2018-03-14T01:25:54.890Z] ^~~~ [task 2018-03-14T01:25:54.890Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:1062:29: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.890Z] case FCMPE_d_zero: form = form_zero; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:54.890Z] ~~~~~^~~~~~~~~~~ [task 2018-03-14T01:25:54.890Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:1063:5: note: here [task 2018-03-14T01:25:54.890Z] case FCMPE_s: [task 2018-03-14T01:25:54.890Z] ^~~~ [task 2018-03-14T01:25:54.898Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp: In member function 'int vixl::Disassembler::SubstituteImmediateField(const vixl::Instruction*, const char*)': [task 2018-03-14T01:25:54.898Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:3103:29: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.898Z] VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:54.898Z] ^ [task 2018-03-14T01:25:54.898Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:3105:9: note: here [task 2018-03-14T01:25:54.898Z] case 'L': { // IVLSLane[0123] - suffix indicates access size shift. [task 2018-03-14T01:25:54.898Z] ^~~~ [task 2018-03-14T01:25:54.898Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:2994:7: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.898Z] } [task 2018-03-14T01:25:54.898Z] ^ [task 2018-03-14T01:25:54.899Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:2996:5: note: here [task 2018-03-14T01:25:54.899Z] case 'C': { // ICondB - Immediate Conditional Branch. [task 2018-03-14T01:25:54.899Z] ^~~~ [task 2018-03-14T01:25:54.900Z] In file included from /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Globals-vixl.h:43:0, [task 2018-03-14T01:25:54.900Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:30, [task 2018-03-14T01:25:54.900Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.h:30, [task 2018-03-14T01:25:54.900Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:27, [task 2018-03-14T01:25:54.900Z] from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src25.cpp:2: [task 2018-03-14T01:25:54.901Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp: In member function 'int vixl::Disassembler::SubstituteShiftField(const vixl::Instruction*, const char*)': [task 2018-03-14T01:25:54.901Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/Assertions.h:433:5: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:54.901Z] if (MOZ_UNLIKELY(!MOZ_CHECK_ASSERT_ASSIGNMENT(expr))) { \ [task 2018-03-14T01:25:54.901Z] ^ [task 2018-03-14T01:25:54.901Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/Assertions.h:450:39: note: in expansion of macro 'MOZ_ASSERT_HELPER1' [task 2018-03-14T01:25:54.901Z] #define MOZ_RELEASE_ASSERT_GLUE(a, b) a b [task 2018-03-14T01:25:54.901Z] ^ [task 2018-03-14T01:25:54.901Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/Assertions.h:452:3: note: in expansion of macro 'MOZ_RELEASE_ASSERT_GLUE' [task 2018-03-14T01:25:54.901Z] MOZ_RELEASE_ASSERT_GLUE( \ [task 2018-03-14T01:25:54.901Z] ^~~~~~~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:54.901Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/MacroArgs.h:16:26: note: in expansion of macro 'MOZ_CONCAT2' [task 2018-03-14T01:25:54.901Z] #define MOZ_CONCAT(x, y) MOZ_CONCAT2(x, y) [task 2018-03-14T01:25:54.901Z] ^~~~~~~~~~~ [task 2018-03-14T01:25:54.902Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/MacroArgs.h:73:51: note: in expansion of macro 'MOZ_CONCAT' [task 2018-03-14T01:25:54.902Z] #define MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE(a, b) a b [task 2018-03-14T01:25:54.902Z] ^ [task 2018-03-14T01:25:54.902Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/MacroArgs.h:75:3: note: in expansion of macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE' [task 2018-03-14T01:25:54.902Z] MOZ_PASTE_PREFIX_AND_ARG_COUNT_GLUE( \ [task 2018-03-14T01:25:54.902Z] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:54.902Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/Assertions.h:453:5: note: in expansion of macro 'MOZ_PASTE_PREFIX_AND_ARG_COUNT' [task 2018-03-14T01:25:54.902Z] MOZ_PASTE_PREFIX_AND_ARG_COUNT(MOZ_ASSERT_HELPER, __VA_ARGS__), \ [task 2018-03-14T01:25:54.902Z] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:54.902Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/Assertions.h:457:27: note: in expansion of macro 'MOZ_RELEASE_ASSERT' [task 2018-03-14T01:25:54.903Z] # define MOZ_ASSERT(...) MOZ_RELEASE_ASSERT(__VA_ARGS__) [task 2018-03-14T01:25:54.903Z] ^~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:54.903Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Globals-vixl.h:69:34: note: in expansion of macro 'MOZ_ASSERT' [task 2018-03-14T01:25:54.903Z] #define VIXL_ASSERT(condition) MOZ_ASSERT(condition) [task 2018-03-14T01:25:54.903Z] ^~~~~~~~~~ [task 2018-03-14T01:25:54.903Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:3252:7: note: in expansion of macro 'VIXL_ASSERT' [task 2018-03-14T01:25:54.903Z] VIXL_ASSERT(instr->ShiftDP() != ROR); [task 2018-03-14T01:25:54.903Z] ^~~~~~~~~~~ [task 2018-03-14T01:25:54.903Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src25.cpp:2:0: [task 2018-03-14T01:25:54.903Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:3255:5: note: here [task 2018-03-14T01:25:54.903Z] case 'L': { // HLo. [task 2018-03-14T01:25:54.903Z] ^~~~ [task 2018-03-14T01:25:57.614Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src26.cpp:20:0: [task 2018-03-14T01:25:57.615Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'virtual void vixl::Simulator::VisitUnconditionalBranch(const vixl::Instruction*)': [task 2018-03-14T01:25:57.615Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:764:13: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.615Z] set_lr(instr->NextInstruction()); [task 2018-03-14T01:25:57.615Z] ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:57.615Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:766:5: note: here [task 2018-03-14T01:25:57.615Z] case B: [task 2018-03-14T01:25:57.615Z] ^~~~ [task 2018-03-14T01:25:57.615Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'virtual void vixl::Simulator::VisitUnconditionalBranchToRegister(const vixl::Instruction*)': [task 2018-03-14T01:25:57.615Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:787:13: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.615Z] set_lr(instr->NextInstruction()); [task 2018-03-14T01:25:57.616Z] ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ [task 2018-03-14T01:25:57.616Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:789:5: note: here [task 2018-03-14T01:25:57.616Z] case BR: [task 2018-03-14T01:25:57.616Z] ^~~~ [task 2018-03-14T01:25:57.617Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'void vixl::Simulator::LogicalHelper(const vixl::Instruction*, int64_t)': [task 2018-03-14T01:25:57.617Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:931:29: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.617Z] case ANDS: update_flags = true; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:57.617Z] ~~~~~~~~~~~~~^~~~~~ [task 2018-03-14T01:25:57.618Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:932:5: note: here [task 2018-03-14T01:25:57.618Z] case AND: result = op1 & op2; break; [task 2018-03-14T01:25:57.618Z] ^~~~ [task 2018-03-14T01:25:57.628Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'virtual void vixl::Simulator::VisitFPCompare(const vixl::Instruction*)': [task 2018-03-14T01:25:57.628Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2069:24: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.628Z] case FCMPE_s: trap = EnableTrap; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:57.628Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.628Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2070:5: note: here [task 2018-03-14T01:25:57.629Z] case FCMP_s: FPCompare(sreg(instr->Rn()), sreg(instr->Rm()), trap); break; [task 2018-03-14T01:25:57.629Z] ^~~~ [task 2018-03-14T01:25:57.629Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2071:24: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.629Z] case FCMPE_d: trap = EnableTrap; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:57.629Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.629Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2072:5: note: here [task 2018-03-14T01:25:57.629Z] case FCMP_d: FPCompare(dreg(instr->Rn()), dreg(instr->Rm()), trap); break; [task 2018-03-14T01:25:57.629Z] ^~~~ [task 2018-03-14T01:25:57.629Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2073:29: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.629Z] case FCMPE_s_zero: trap = EnableTrap; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:57.629Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.630Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2074:5: note: here [task 2018-03-14T01:25:57.630Z] case FCMP_s_zero: FPCompare(sreg(instr->Rn()), 0.0f, trap); break; [task 2018-03-14T01:25:57.630Z] ^~~~ [task 2018-03-14T01:25:57.630Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2075:29: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.630Z] case FCMPE_d_zero: trap = EnableTrap; VIXL_FALLTHROUGH(); [task 2018-03-14T01:25:57.630Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.630Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2076:5: note: here [task 2018-03-14T01:25:57.630Z] case FCMP_d_zero: FPCompare(dreg(instr->Rn()), 0.0, trap); break; [task 2018-03-14T01:25:57.630Z] ^~~~ [task 2018-03-14T01:25:57.630Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'virtual void vixl::Simulator::VisitFPConditionalCompare(const vixl::Instruction*)': [task 2018-03-14T01:25:57.630Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2087:25: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.631Z] case FCCMPE_s: trap = EnableTrap; [task 2018-03-14T01:25:57.631Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.631Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2089:5: note: here [task 2018-03-14T01:25:57.631Z] case FCCMP_s: [task 2018-03-14T01:25:57.631Z] ^~~~ [task 2018-03-14T01:25:57.631Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2097:25: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.631Z] case FCCMPE_d: trap = EnableTrap; [task 2018-03-14T01:25:57.631Z] ~~~~~^~~~~~~~~~~~ [task 2018-03-14T01:25:57.631Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2099:5: note: here [task 2018-03-14T01:25:57.631Z] case FCCMP_d: [task 2018-03-14T01:25:57.631Z] ^~~~ [task 2018-03-14T01:25:57.639Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'void vixl::Simulator::NEONLoadStoreMultiStructHelper(const vixl::Instruction*, vixl::AddrMode)': [task 2018-03-14T01:25:57.639Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2925:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.639Z] case NEON_LD1_4v_post: ld1(vf, vreg(reg[3]), addr[3]); count++; [task 2018-03-14T01:25:57.639Z] ~~~~~^~ [task 2018-03-14T01:25:57.639Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2927:5: note: here [task 2018-03-14T01:25:57.639Z] case NEON_LD1_3v: [task 2018-03-14T01:25:57.639Z] ^~~~ [task 2018-03-14T01:25:57.639Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2928:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.639Z] case NEON_LD1_3v_post: ld1(vf, vreg(reg[2]), addr[2]); count++; [task 2018-03-14T01:25:57.640Z] ~~~~~^~ [task 2018-03-14T01:25:57.640Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2930:5: note: here [task 2018-03-14T01:25:57.640Z] case NEON_LD1_2v: [task 2018-03-14T01:25:57.640Z] ^~~~ [task 2018-03-14T01:25:57.640Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2931:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.640Z] case NEON_LD1_2v_post: ld1(vf, vreg(reg[1]), addr[1]); count++; [task 2018-03-14T01:25:57.640Z] ~~~~~^~ [task 2018-03-14T01:25:57.640Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2933:5: note: here [task 2018-03-14T01:25:57.640Z] case NEON_LD1_1v: [task 2018-03-14T01:25:57.640Z] ^~~~ [task 2018-03-14T01:25:57.640Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2939:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.641Z] case NEON_ST1_4v_post: st1(vf, vreg(reg[3]), addr[3]); count++; [task 2018-03-14T01:25:57.641Z] ~~~~~^~ [task 2018-03-14T01:25:57.641Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2941:5: note: here [task 2018-03-14T01:25:57.641Z] case NEON_ST1_3v: [task 2018-03-14T01:25:57.641Z] ^~~~ [task 2018-03-14T01:25:57.641Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2942:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.641Z] case NEON_ST1_3v_post: st1(vf, vreg(reg[2]), addr[2]); count++; [task 2018-03-14T01:25:57.641Z] ~~~~~^~ [task 2018-03-14T01:25:57.641Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2944:5: note: here [task 2018-03-14T01:25:57.641Z] case NEON_ST1_2v: [task 2018-03-14T01:25:57.641Z] ^~~~ [task 2018-03-14T01:25:57.641Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2945:65: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.642Z] case NEON_ST1_2v_post: st1(vf, vreg(reg[1]), addr[1]); count++; [task 2018-03-14T01:25:57.642Z] ~~~~~^~ [task 2018-03-14T01:25:57.642Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:2947:5: note: here [task 2018-03-14T01:25:57.642Z] case NEON_ST1_1v: [task 2018-03-14T01:25:57.642Z] ^~~~ [task 2018-03-14T01:25:57.642Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp: In member function 'void vixl::Simulator::NEONLoadStoreSingleStructHelper(const vixl::Instruction*, vixl::AddrMode)': [task 2018-03-14T01:25:57.642Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:3070:35: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.642Z] case NEON_LD4_h_post: do_load = true; [task 2018-03-14T01:25:57.642Z] ~~~~~~~~^~~~~~ [task 2018-03-14T01:25:57.642Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:3072:5: note: here [task 2018-03-14T01:25:57.642Z] case NEON_ST1_h: [task 2018-03-14T01:25:57.643Z] ^~~~ [task 2018-03-14T01:25:57.643Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:3087:35: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T01:25:57.643Z] case NEON_LD4_s_post: do_load = true; [task 2018-03-14T01:25:57.643Z] ~~~~~~~~^~~~~~ [task 2018-03-14T01:25:57.643Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Simulator-vixl.cpp:3089:5: note: here [task 2018-03-14T01:25:57.643Z] case NEON_ST1_s: [task 2018-03-14T01:25:57.643Z] ^~~~ [task 2018-03-14T01:25:59.329Z] /builds/worker/workspace/gcc/bin/g++ -o Unified_cpp_js_src29.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DENABLE_BINARYDATA -DENABLE_SIMD -DENABLE_WASM_SATURATING_TRUNC_OPS -DENABLE_WASM_SIGNEXTEND_OPS -DENABLE_WASM_THREAD_OPS -DENABLE_WASM_GLOBAL -DWASM_HUGE_MEMORY -DJS_CACHEIR_SPEW -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/workspace/build/src/js/src -I/builds/worker/workspace/build/src/obj-spider/js/src -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -Werror -Wno-shadow -Werror=format -fno-strict-aliasing -MD -MP -MF .deps/Unified_cpp_js_src29.o.pp /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src29.cpp [task 2018-03-14T01:26:01.017Z] cc1plus: all warnings being treated as errors It seems all that's missing is a VIXL_FALLTHROUGH definition for gcc, like MOZ_FALLTHROUGH has.
> It seems all that's missing is a VIXL_FALLTHROUGH definition for gcc, like MOZ_FALLTHROUGH has. After doing that, there's a remaining error: [task 2018-03-14T02:36:11.302Z] In file included from /builds/worker/workspace/build/src/obj-spider/js/src/Unified_cpp_js_src25.cpp:2:0: [task 2018-03-14T02:36:11.302Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp: In member function 'int vixl::Disassembler::SubstituteImmediateField(const vixl::Instruction*, const char*)': [task 2018-03-14T02:36:11.302Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:2994:7: error: this statement may fall through [-Werror=implicit-fallthrough=] [task 2018-03-14T02:36:11.302Z] } [task 2018-03-14T02:36:11.302Z] ^ [task 2018-03-14T02:36:11.302Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Disasm-vixl.cpp:2996:5: note: here [task 2018-03-14T02:36:11.302Z] case 'C': { // ICondB - Immediate Conditional Branch. [task 2018-03-14T02:36:11.302Z] ^~~~ And that could well be a real bug. Lars, you've touched this code, can you look whether the fallthrough is correct here and should be annotated, or if it's wrong and should be fixed?
Flags: needinfo?(lhansen)
I will investigate.
Assignee: nobody → lhansen
Blocks: 1445162
Status: NEW → ASSIGNED
Flags: needinfo?(lhansen)
Priority: -- → P3
What we want in the fallthrough for the 'L' case is default: VIXL_UNREACHABLE() - the switch is exhaustive, there are only the four cases. See eg the 's' case further down. This has been fixed upstream: https://git.linaro.org/arm/vixl.git/tree/src/aarch64/disasm-aarch64.cc#n4371.
Upstream also has a fix for VIXL_FALLTHROUGH, although they should have just used [[gcc::fallthrough]]: https://git.linaro.org/arm/vixl.git/tree/src/globals-vixl.h#n210
We want to import a new version of vixl (bug 1435968) but IIUC that is a substantial undertaking with low priority, so I don't know if you want to block on that... (Unassigning self.)
Assignee: lhansen → nobody
Status: ASSIGNED → NEW
See Also: → 1435968
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.