@@ -0,0 +1,11 @@
+{ %target=win32 }
+
+{ Source provided for Free Pascal Bug Report 2676 }
+{ Submitted by "Coenraad Loubser" on 2003-09-12 }
+{ e-mail: [email protected] }
+var
+ x: dword absolute 123;
+begin
+ writeln(dword(@x));
+end.
@@ -0,0 +1,16 @@
+{ Source provided for Free Pascal Bug Report 2678 }
+{ Submitted by "darek mazur" on 2003-09-13 }
+{$H-,I-,C-,D+,E-,L+,M-,P-,Q-,R-,S-,T-,X+,Z1}
+{$Y+}
+unit tw2678;
+{$mode delphi}
+interface
+ var
+ uii : integer;
+ function aa(a: string):string;
+implementation
+ function aa;
+end;
@@ -0,0 +1,17 @@
+{ %result=201 }
+{ Source provided for Free Pascal Bug Report 2690 }
+{ Submitted by "Tom Verhoeff" on 2003-09-22 }
+program RangeError;
+{$R+} { Range Checking Enabled }
+ c: Char;
+ d: 'a' .. 'z'; { subtype of Char }
+ a: array [ 'a' .. 'z' ] of Integer;
+ c := chr ( ord ( 'a' ) - 1 ) { OK }
+; d := c { value of c is outside the range of d,
+ should be caught, but is not }
+; a [ d ] := 0 { this is now dangerous! }
@@ -0,0 +1,15 @@
+{ Source provided for Free Pascal Bug Report 2691 }
+{ Submitted by "Luk Vandelaer" on 2003-09-22 }
+program int64prob;
+uses sysutils;
+ x : int64;
+ x := $FFFF shl 32;
+ writeln (format ('%d %d %d',
+ [x mod $10000, x div $10000, x div $10000]));
@@ -0,0 +1,57 @@
+{ %version=1.1 }
+{ Source provided for Free Pascal Bug Report 2696 }
+{ Submitted by "Vincent Snijders" on 2003-09-28 }
+{$ifdef fpc}
+ {$mode delphi}
+{$endif}
+uses
+ Classes;
+type
+ IBase = interface
+ procedure a(i: integer); overload;
+ procedure a(s: string); overload;
+ end;
+ IBase2 = interface(IBase)
+ procedure c;
+ TBase = class(TInterfacedObject, IBase)
+ public
+ procedure a(s: string); overload; virtual;
+ TSubClass = class(TBase, IBase2)
+ procedure a(s: string); overload; override;
+{ TBase }
+procedure TBase.a(i: integer);
+procedure TBase.a(s: string);
+{ TSubClass }
+procedure TSubClass.a(s: string);
+procedure TSubClass.c;
@@ -0,0 +1,26 @@
+{ Source provided for Free Pascal Bug Report 2702 }
+{ Submitted by "Johannes Berg" on 2003-10-01 }
+{ e-mail: johannes -at- sipsolutions -dot- de }
+ TDummy = class(TObject)
+ TF = class(TObject)
+ function GetDummy: TDummy; virtual; abstract;
+ property dummy: TDummy read GetDummy;
+ procedure dada;
+procedure TF.dada;
+ if Assigned(dummy) then begin
@@ -0,0 +1,46 @@
+{ %OPT=-Sew }
+{ Source provided for Free Pascal Bug Report 2710 }
+{ Submitted by "Micha Nelissen" on 2003-10-04 }
+unit tw2710;
+TAbstract = class(TObject)
+public
+ constructor Create;
+ procedure AbstractMethod; virtual; abstract;
+TDerived = class(TAbstract)
+ procedure AbstractMethod; override;
+constructor TAbstract.Create;
+ inherited;
+constructor TDerived.Create;
+procedure TDerived.AbstractMethod;