Hello all, I'm using FreePascal 2.6.0 under Win32 here and I'm seeing a very weird behavior as I'm not getting EZeroDivide when doing float divisions, but a rather surprising EControlC. As I was writing the code in assembly, I also tried with plain Pascal code, but I get the same result. Here is the code:
program test; uses classes, sysutils; procedure DirectTestExcept; const A: Double = 5; B: Double = 0; asm movsd xmm0, A divsd xmm0, B end; procedure MyTestExcept; var Tmp: Double; begin Tmp := 0.0; Tmp := 5.0 / Tmp; end; begin try MyTestExcept; except on E: Exception do WriteLn(E.ClassName + ': ' + E.Message); end; try DirectTestExcept; except on E: Exception do WriteLn(E.ClassName + ': ' + E.Message); end; end. When I first saw the EControlC, I thought that maybe the initial exception was eaten up, but it seems it's not the case because the above program gives this output: EControlC: Control-C hit EControlC: Control-C hit The command line used to compile is the following: ppc386.exe -alt -gl -CF64 -Cfsse2 -Mdelphi test.dpr Looking at the generated assembly, the pure pascal one uses the same operands that my assembly, so it makes sense it behaves similarly. Does any of you have any suggestion as to explain this behavior, and best of all, how to fix it? Regards Olivier _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal