[fpc-devel] Exception handling failure

Adriaan van Os adriaan at adriaan.biz
Thu Mar 12 10:18:42 CET 2026


I see that fpc source commit 4921be35 
https://gitlab.com/freepascal.org/fpc/source/-/commit/4921be352392c32c401dd689de50980fdaa7b578 adds 
"some exception related tests that currently fail on aarch64-win64". I see no committed fixes in 
the history after that.  My 3.3.1 compiler was built from the jan 10 sources (as a more recent 
revision failed to bootstrap). This 3.3.1 compiler fails a simple exception handling test on macOS, 
which previous compilers did handle.


[Mac-mini:~/fpc-test/simple-crashme] administrator% cat crashme2.pas

{$modeswitch exceptions}
program crashme2;
type
   pinteger = ^integer;
var
   p: pinteger;
begin
   try
     p := pinteger( 1234);
     p^ := 1
   except
     writeln
       ( 'the exception was catched')
   end


[Mac-mini:~/fpc-test/simple-crashme] administrator% /usr/local/lib/fpc/3.3.1/ppca64 crashme2.pas
Free Pascal Compiler version 3.3.1 [2026/01/10] for aarch64
Copyright (c) 1993-2026 by Florian Klaempfl and others
Target OS: Darwin for AArch64
Compiling crashme2.pas
Assembling (pipe) crashme2.s
Linking crashme2
-macosx_version_min has been renamed to -macos_version_min
16 lines compiled, 0.4 sec, 180224 bytes code, 98303 bytes data

[Mac-mini:~/fpc-test/simple-crashme] administrator% ./crashme2
Runtime error 216 at $0000000104EC36A8
   $0000000104EC36A8
   $0000000104EEB4CC
   $0000000104EC35E0
   $0000000104EC3638
   $00000001820C7154
   $4E35800000000000


[Mac-mini:~/fpc-test/simple-crashme] administrator% /usr/local/lib/fpc/3.2.4/ppca64 crashme2.pas
Free Pascal Compiler version 3.2.4-rc1 [2025/10/15] for aarch64
Copyright (c) 1993-2024 by Florian Klaempfl and others
Target OS: Darwin for AArch64
Compiling crashme2.pas
Assembling crashme2
Linking crashme2
ld: warning: -multiply_defined is obsolete
-macosx_version_min has been renamed to -macos_version_min
16 lines compiled, 0.1 sec

[Mac-mini:~/fpc-test/simple-crashme] administrator% ./crashme2
the exception was catched


[Mac-mini:~/fpc-test/simple-crashme] administrator% /usr/local/lib/fpc/3.0.4/ppcx64 crashme2.pas
Free Pascal Compiler version 3.0.4 [2017/11/26] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling crashme2.pas
Assembling (pipe) crashme2.s
Linking crashme2
ld: warning: -multiply_defined is obsolete
-macosx_version_min has been renamed to -macos_version_min
ld: warning: support for macOS with 10.5 minimum deployment target is deprecated and will be 
removed in future release
ld: warning: building for macOS 10.5 is deprecated
16 lines compiled, 0.2 sec

[Mac-mini:~/fpc-test/simple-crashme] administrator% ./crashme2
the exception was catched


[Mac-mini:~] administrator% sw_vers
ProductName:		macOS
ProductVersion:		14.7.4
BuildVersion:		23H420



More information about the fpc-devel mailing list