mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 05:08:06 +02:00
* moved the default procedure CurrRaiseLabel to the end of the procedure, not
at the exit label. This fixes problems when using units with finalization code that contain classes with class destructors in branchful WebAssembly exceptions mode.
This commit is contained in:
parent
470e77a572
commit
6fe647ee3d
@ -353,8 +353,6 @@ implementation
|
||||
list.concat(taicpu.op_none(a_end_block));
|
||||
thlcgwasm(hlcg).decblock;
|
||||
inherited generate_exit_label(list);
|
||||
if ts_wasm_bf_exceptions in current_settings.targetswitches then
|
||||
hlcg.a_label(list,CurrRaiseLabel);
|
||||
end;
|
||||
|
||||
procedure tcpuprocinfo.postprocess_code;
|
||||
|
@ -2191,10 +2191,16 @@ implementation
|
||||
inherited;
|
||||
list.concat(taicpu.op_none(a_block));
|
||||
incblock;
|
||||
list.concat(taicpu.op_none(a_block));
|
||||
incblock;
|
||||
end;
|
||||
|
||||
procedure thlcgwasm.gen_exit_code(list: TAsmList);
|
||||
begin
|
||||
list.concat(taicpu.op_none(a_end_block));
|
||||
thlcgwasm(hlcg).decblock;
|
||||
if ts_wasm_bf_exceptions in current_settings.targetswitches then
|
||||
a_label(list,tcpuprocinfo(current_procinfo).CurrRaiseLabel);
|
||||
if fevalstackheight<>0 then
|
||||
{$ifdef DEBUG_WASMSTACK}
|
||||
list.concat(tai_comment.Create(strpnew('!!! values remaining on stack at end of block !!!')));
|
||||
|
Loading…
Reference in New Issue
Block a user