Skip to content

Internal error 200706092 (Int64 comparison)

Summary

I'm testing trunk because I want to give feedback about issues and help on the way onto a 3.4 release. I stumbled upon an "Internal error 200706092" in an external unit (see below). This code works fine with FPC 3.2.

System Information

  • Operating system: Windows
  • Processor architecture: x86
  • Compiler version: trunk
  • Device: Computer

Example Project

The error occurs in the first line of the following function:

class function TDataConverters.InternalInt64ToInt8(Value: Int64; Dest: IntPtr; IgnoreConvertErrors: Boolean): TConvertStatus;
begin
  if (Value and $FFFFFFFFFFFFFF80 <> 0) and (Value and $FFFFFFFFFFFFFF80 <> $FFFFFFFFFFFFFF80) then begin
  // remainder not relevant
  end;
end;  

What is the current bug behavior?

An "Internal error 200706092" is raised.

What is the expected (correct) behavior?

The compiler should produce a more helpful error message or not raise an error at all.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information