In the  below code compiled with 3.2.3 (today and early Dec)
when the exception is reached the app exits.

There is no code from finally, nor from except block executed.

The "randomize" is just to put some code into each block. No special meaning otherwise.

This issue is on Win64. (works for 32 bit Win)
And appears to be ok in 3.3.1.

    program Project1;
    {$mode objfpc}{$H+}

    uses SysUtils;

    var
      bar: boolean;

    procedure Foo;
    begin
      while true do begin
        try
          try
            try
              if bar then
                raise Exception.Create('');
              Randomize;
            finally
              Randomize;
              try
                Randomize;
              finally
                Randomize;
              end;
            end;
            Randomize;
          finally
            Randomize;
          end;
          Randomize;
        except
          bar := false;
          Randomize;
        end;
      end;
    end;

    begin
      bar := true;
      Foo;
    end.

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to