Open Bug 1445530 Opened 2 years ago Updated 2 years 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
You need to log in before you can comment on or make changes to this bug.