Browse Source

* don't halt with an internal error, but add an asm comment instead, when a
stack underflow is detected in thlcgwasm.decstack and when the compiler is
compiled with the DEBUG_WASMSTACK define

Nikolay Nikolov 3 years ago
parent
commit
d4bd1f1e9b
1 changed files with 4 additions and 0 deletions
  1. 4 0
      compiler/wasm32/hlcgcpu.pas

+ 4 - 0
compiler/wasm32/hlcgcpu.pas

@@ -334,7 +334,11 @@ implementation
       dec(fevalstackheight,slots);
       if (fevalstackheight<0) and
          not(cs_no_regalloc in current_settings.globalswitches) then
+{$ifdef DEBUG_WASMSTACK}
+        list.concat(tai_comment.Create(strpnew('!!! stack underflow')));
+{$else DEBUG_WASMSTACK}
         internalerror(2010120501);
+{$endif DEBUG_WASMSTACK}
       if cs_asm_regalloc in current_settings.globalswitches then
         list.concat(tai_comment.Create(strpnew('    freed '+tostr(slots)+', stack height = '+tostr(fevalstackheight))));
     end;