lazarus/components/lazdebuggers/lazdebuggerfpgdbmi/test/TestApps/TestWatchesUnitSimple.pas
martin 620840c586 FpGdbmiDebugger: tests
git-svn-id: trunk@45031 -
2014-05-13 20:42:21 +00:00

1013 lines
27 KiB
ObjectPascal

unit TestWatchesUnitSimple;
{$mode objfpc}{$H+}{$NOTES off}
interface
uses sysutils, types;
procedure Test1;
// TODO types in another unit / yet brea in this unit
// Nested procedure
implementation
type
TSimpleEnum1 = (eval1, eval2, eval3);
TSimpleSet1 = set of TSimpleEnum1;
PSimpleEnum1 = ^TSimpleEnum1;
PSimpleSet1 = ^TSimpleSet1;
TString25 = String[25];
PString25 = ^TString25;
{ TSimpleClass0 }
TSimpleClass0 = class
// NO fields // NO param
procedure Test0Method;
end;
{ TSimpleClass1 }
TSimpleClass1 = class(TSimpleClass0)
public
{%region Fields}
Field_Short1: ShortInt;
Field_Small1: Smallint;
Field_Int1: LongInt;
Field_QInt1: Int64;
Field_Byte1: Byte;
Field_Word1: Word;
Field_DWord1: LongWord;
Field_QWord1: QWord;
Field_Single1: Single;
Field_Double1: Double;
Field_Ext1: Extended;
Field_Comp1: Comp;
Field_Currency1, Field_Currency2: Currency;
Field_Bool1, Field_Bool2: Boolean;
Field_Enum1, Field_Enum2: TSimpleEnum1;
Field_Set1, Field_Set2: TSimpleSet1;
Field_SString1, Field_SString2: TString25;
Field_AString1, Field_AString2: AnsiString;
Field_PShort1: PShortInt;
Field_PSmall1: PSmallint;
Field_PInt1: PLongInt;
Field_PQInt1: PInt64;
Field_PByte1: PByte;
Field_PWord1: PWord;
Field_PDWord1: PLongWord;
Field_PQWord1: PQWord;
Field_PSingle1: PSingle;
Field_PDouble1: PDouble;
Field_PExt1: PExtended;
Field_PComp1: PComp;
Field_PCurrency1, Field_PCurrency2: PCurrency;
Field_PBool1, Field_PBool2: PBoolean;
Field_PEnum1, Field_PEnum2: PSimpleEnum1;
Field_PSet1, Field_PSet2: PSimpleSet1;
Field_PSString1, Field_PSString2: PString25;
Field_PAString1, Field_PAString2: PAnsiString;
{%endregion Fields}
procedure InitFields;
procedure Test1Method(
{%region Param}
Arg_Short1: ShortInt;
Arg_Small1: Smallint;
Arg_Int1: LongInt;
Arg_QInt1: Int64;
Arg_Byte1: Byte;
Arg_Word1: Word;
Arg_DWord1: LongWord;
Arg_QWord1: QWord;
Arg_Single1: Single;
Arg_Double1: Double;
Arg_Ext1: Extended;
Arg_Comp1: Comp;
Arg_Currency1, Arg_Currency2: Currency;
Arg_Bool1, Arg_Bool2: Boolean;
Arg_Enum1, Arg_Enum2: TSimpleEnum1;
Arg_Set1, Arg_Set2: TSimpleSet1;
Arg_SString1, Arg_SString2: TString25;
Arg_AString1, Arg_AString2: AnsiString;
Arg_PShort1: PShortInt;
Arg_PSmall1: PSmallint;
Arg_PInt1: PLongInt;
Arg_PQInt1: PInt64;
Arg_PByte1: PByte;
Arg_PWord1: PWord;
Arg_PDWord1: PLongWord;
Arg_PQWord1: PQWord;
Arg_PSingle1: PSingle;
Arg_PDouble1: PDouble;
Arg_PExt1: PExtended;
Arg_PComp1: PComp;
Arg_PCurrency1, Arg_PCurrency2: PCurrency;
Arg_PBool1, Arg_PBool2: PBoolean;
Arg_PEnum1, Arg_PEnum2: PSimpleEnum1;
Arg_PSet1, Arg_PSet2: PSimpleSet1;
Arg_PSString1, Arg_PSString2: PString25;
Arg_PAString1, Arg_PAString2: PAnsiString;
var VArg_Short1: ShortInt;
var VArg_Small1: Smallint;
var VArg_Int1: LongInt;
var VArg_QInt1: Int64;
var VArg_Byte1: Byte;
var VArg_Word1: Word;
var VArg_DWord1: LongWord;
var VArg_QWord1: QWord;
var VArg_Single1: Single;
var VArg_Double1: Double;
var VArg_Ext1: Extended;
var VArg_Comp1: Comp;
var VArg_Currency1, VArg_Currency2: Currency;
var VArg_Bool1, VArg_Bool2: Boolean;
var VArg_Enum1, VArg_Enum2: TSimpleEnum1;
var VArg_Set1, VArg_Set2: TSimpleSet1;
var VArg_SString1, VArg_SString2: TString25;
var VArg_AString1, VArg_AString2: AnsiString;
var VArg_PShort1: PShortInt;
var VArg_PSmall1: PSmallint;
var VArg_PInt1: PLongInt;
var VArg_PQInt1: PInt64;
var VArg_PByte1: PByte;
var VArg_PWord1: PWord;
var VArg_PDWord1: PLongWord;
var VArg_PQWord1: PQWord;
var VArg_PSingle1: PSingle;
var VArg_PDouble1: PDouble;
var VArg_PExt1: PExtended;
var VArg_PComp1: PComp;
var VArg_PCurrency1, VArg_PCurrency2: PCurrency;
var VArg_PBool1, VArg_PBool2: PBoolean;
var VArg_PEnum1, VArg_PEnum2: PSimpleEnum1;
var VArg_PSet1, VArg_PSet2: PSimpleSet1;
var VArg_PSString1, VArg_PSString2: PString25;
var VArg_PAString1, VArg_PAString2: PAnsiString
{%endregion Param}
);
end;
{ TSimpleClass2 }
TSimpleClass2 = class(TSimpleClass1)
procedure Test2Method; // read inherited fields
end;
var
{%region Global}
SimpleGlob_Short1: ShortInt;
SimpleGlob_Small1: Smallint;
SimpleGlob_Int1: LongInt;
SimpleGlob_QInt1: Int64;
SimpleGlob_Byte1: Byte;
SimpleGlob_Word1: Word;
SimpleGlob_DWord1: LongWord;
SimpleGlob_QWord1: QWord;
SimpleGlob_Single1: Single;
SimpleGlob_Double1: Double;
SimpleGlob_Ext1: Extended;
SimpleGlob_Comp1: Comp;
SimpleGlob_Currency1, SimpleGlob_Currency2: Currency;
SimpleGlob_Bool1, SimpleGlob_Bool2: Boolean;
SimpleGlob_Enum1, SimpleGlob_Enum2: TSimpleEnum1;
SimpleGlob_Set1, SimpleGlob_Set2: TSimpleSet1;
SimpleGlob_SString1, SimpleGlob_SString2: TString25;
SimpleGlob_AString1, SimpleGlob_AString2: AnsiString;
SimpleGlob_PShort1: PShortInt;
SimpleGlob_PSmall1: PSmallint;
SimpleGlob_PInt1: PLongInt;
SimpleGlob_PQInt1: PInt64;
SimpleGlob_PByte1: PByte;
SimpleGlob_PWord1: PWord;
SimpleGlob_PDWord1: PLongWord;
SimpleGlob_PQWord1: PQWord;
SimpleGlob_PSingle1: PSingle;
SimpleGlob_PDouble1: PDouble;
SimpleGlob_PExt1: PExtended;
SimpleGlob_PComp1: PComp;
SimpleGlob_PCurrency1, SimpleGlob_PCurrency2: PCurrency;
SimpleGlob_PBool1, SimpleGlob_PBool2: PBoolean;
SimpleGlob_PEnum1, SimpleGlob_PEnum2: PSimpleEnum1;
SimpleGlob_PSet1, SimpleGlob_PSet2: PSimpleSet1;
SimpleGlob_PSString1, SimpleGlob_PSString2: PString25;
SimpleGlob_PAString1, SimpleGlob_PAString2: PAnsiString;
// Copy of pointers for var param
SimpleGlob_P2Short1: PShortInt;
SimpleGlob_P2Small1: PSmallint;
SimpleGlob_P2Int1: PLongInt;
SimpleGlob_P2QInt1: PInt64;
SimpleGlob_P2Byte1: PByte;
SimpleGlob_P2Word1: PWord;
SimpleGlob_P2DWord1: PLongWord;
SimpleGlob_P2QWord1: PQWord;
SimpleGlob_P2Single1: PSingle;
SimpleGlob_P2Double1: PDouble;
SimpleGlob_P2Ext1: PExtended;
SimpleGlob_P2Comp1: PComp;
SimpleGlob_P2Currency1, SimpleGlob_P2Currency2: PCurrency;
SimpleGlob_P2Bool1, SimpleGlob_P2Bool2: PBoolean;
SimpleGlob_P2Enum1, SimpleGlob_P2Enum2: PSimpleEnum1;
SimpleGlob_P2Set1, SimpleGlob_P2Set2: PSimpleSet1;
SimpleGlob_P2SString1, SimpleGlob_P2SString2: PString25;
SimpleGlob_P2AString1, SimpleGlob_P2AString2: PAnsiString;
{%endregion Global}
// Additional Globals
SimpleGlob_Short2, SimpleGlob_Short3, SimpleGlob_Short4, SimpleGlob_Short5: ShortInt;
SimpleGlob_Small2, SimpleGlob_Small3, SimpleGlob_Small4, SimpleGlob_Small5: Smallint;
SimpleGlob_Int2, SimpleGlob_Int3, SimpleGlob_Int4, SimpleGlob_Int5: LongInt;
SimpleGlob_QInt2, SimpleGlob_QInt3, SimpleGlob_QInt4, SimpleGlob_QInt5: Int64;
SimpleGlob_Byte2, SimpleGlob_Byte3, SimpleGlob_Byte4, SimpleGlob_Byte5: Byte;
SimpleGlob_Word2, SimpleGlob_Word3, SimpleGlob_Word4, SimpleGlob_Word5: Word;
SimpleGlob_DWord2, SimpleGlob_DWord3, SimpleGlob_DWord4, SimpleGlob_DWord5: LongWord;
SimpleGlob_QWord2, SimpleGlob_QWord3, SimpleGlob_QWord4, SimpleGlob_QWord5: QWord;
SimpleGlob_Single2, SimpleGlob_Single3, SimpleGlob_Single4, SimpleGlob_Single5: Single;
SimpleGlob_Double2, SimpleGlob_Double3, SimpleGlob_Double4, SimpleGlob_Double5: Double;
SimpleGlob_Ext2, SimpleGlob_Ext3, SimpleGlob_Ext4, SimpleGlob_Ext5: Extended;
SimpleGlob_Comp2, SimpleGlob_Comp3: Comp;
SimpleGlob_Class0: TSimpleClass0;
SimpleGlob_Class1: TSimpleClass1;
SimpleGlob_Class2: TSimpleClass2;
SimpleGlob_Dummy: Integer;
procedure Test1Sub(
{%region Param}
SimpleArg_Short1: ShortInt;
SimpleArg_Small1: Smallint;
SimpleArg_Int1: LongInt;
SimpleArg_QInt1: Int64;
SimpleArg_Byte1: Byte;
SimpleArg_Word1: Word;
SimpleArg_DWord1: LongWord;
SimpleArg_QWord1: QWord;
SimpleArg_Single1: Single;
SimpleArg_Double1: Double;
SimpleArg_Ext1: Extended;
var SimpleVArg_Short1: ShortInt;
var SimpleVArg_Small1: Smallint;
var SimpleVArg_Int1 : LongInt;
var SimpleVArg_QInt1: Int64;
var SimpleVArg_Byte1: Byte;
var SimpleVArg_Word1: Word;
var SimpleVArg_DWord1: LongWord;
var SimpleVArg_QWord1: QWord;
var SimpleVArg_Single1: Single;
var SimpleVArg_Double1: Double;
var SimpleVArg_Ext1: Extended;
SimpleArg_Class1: TSimpleClass1;
SimpleArg_Class2: TSimpleClass2;
var SimpleVArg_Class1: TSimpleClass1;
var SimpleVArg_Class2: TSimpleClass2
{%endregion Param}
);
var
{%region Local}
Local_Short1: ShortInt;
Local_Small1: Smallint;
Local_Int1 : LongInt;
Local_QInt1: Int64;
Local_Byte1: Byte;
Local_Word1: Word;
Local_DWord1: LongWord;
Local_QWord1: QWord;
Local_Single1: Single;
Local_Double1: Double;
Local_Ext1: Extended;
SimplePArg_Int1, SimplePVArg_Int1, SimplePLocal_Int1, SimplePGlob_Int1: PLongInt;
{%endregion Local}
begin
Local_Short1 := 39;
SimpleGlob_Short1 := 29;
SimpleGlob_Short2 := 0;
SimpleGlob_Short3 := -1;
SimpleGlob_Short4 := high(ShortInt);
SimpleGlob_Short5 := low(ShortInt);
Local_Small1 := 391;
SimpleGlob_Small1 := 291;
SimpleGlob_Small2 := 0;
SimpleGlob_Small3 := -1;
SimpleGlob_Small4 := high(SmallInt);
SimpleGlob_Small5 := low(SmallInt);
Local_Int1 := 3901;
SimpleGlob_Int1 := 2901;
SimpleGlob_Int2 := 0;
SimpleGlob_Int3 := -1;
SimpleGlob_Int4 := high(LongInt);
SimpleGlob_Int5 := low(LongInt);
Local_QInt1 := 39001;
SimpleGlob_QInt1 := 29001;
SimpleGlob_QInt2 := 0;
SimpleGlob_QInt3 := -1;
SimpleGlob_QInt4 := high(Int64);
SimpleGlob_QInt5 := low(Int64);
Local_Byte1 := 59;
SimpleGlob_Byte1 := 49;
SimpleGlob_Byte2 := $7f;
SimpleGlob_Byte3 := $80;
SimpleGlob_Byte4 := high(Byte);
SimpleGlob_Byte5 := low(Byte);
Local_Word1 := 591;
SimpleGlob_Word1 := 491;
SimpleGlob_Word2 := $7fff;
SimpleGlob_Word3 := $8000;
SimpleGlob_Word4 := high(Word);
SimpleGlob_Word5 := low(Word);
Local_DWord1 := 5901;
SimpleGlob_DWord1 := 4901;
SimpleGlob_DWord2 := $7fffffff;
SimpleGlob_DWord3 := $80000000;
SimpleGlob_DWord4 := high(LongWORD);
SimpleGlob_DWord5 := low(LongWORD);
Local_QWord1 := 59001;
SimpleGlob_QWord1 := 49001;
SimpleGlob_QWord2 := $7fffffffffffffff;
SimpleGlob_QWord3 := qword($8000000000000000);
SimpleGlob_QWord4 := high(QWord);
SimpleGlob_QWord5 := low(QWord);
SimpleGlob_Single1 := 99.2;
SimpleGlob_Double1 := 199.3;
SimpleGlob_Ext1 := 299.4;
SimpleGlob_Comp1 := -2;
SimpleGlob_Currency1 := -2.30;
SimpleGlob_Currency2 := 1.92;
SimplePArg_Int1 := @SimpleArg_Int1;
SimplePVArg_Int1 := @SimpleVArg_Int1;
SimplePLocal_Int1 := @Local_Int1;
SimplePGlob_Int1 := @SimpleGlob_Int1;
inc(SimpleGlob_Dummy); // BREAK Single 1
end;
procedure Simple_NoneNested;
begin
inc(SimpleGlob_Dummy); // BREAK Single 2
end;
{ TSimpleClass0 }
procedure TSimpleClass0.Test0Method;
procedure Nested0;
begin
inc(SimpleGlob_Dummy); // BREAK Single 10
end;
begin
inc(SimpleGlob_Dummy); // BREAK Single 9
Nested0;
end;
{ TSimpleClass1 }
procedure TSimpleClass1.InitFields;
begin
{%region Field }
Field_Short1 := 11;
Field_Small1 := 112;
Field_Int1 := 1123;
Field_QInt1 := 11234;
Field_Byte1 := 22;
Field_Word1 := 223;
Field_DWord1 := 2234;
Field_QWord1 := 22345;
Field_Single1 := 0.5;
Field_Double1 := 0.25;
Field_Ext1 := 0.75;
Field_Comp1 := -9;
Field_Currency1 := -2.30;
Field_Currency2 := 1.92;
Field_Bool1 := True;
Field_Bool2 := False;
Field_Enum1 := (eval2);
Field_Enum2 := (eval1);
Field_Set1 := [eval2];
Field_Set2 := [];
Field_SString1 := 'stest ü1'+#27+'';
Field_SString2 := '';
Field_AString1 := 'atest ü1'+#27+'';
Field_AString2 := '';
Field_PShort1 := @Field_Short1;
Field_PSmall1 := @Field_Small1;
Field_PInt1 := @Field_Int1;
Field_PQInt1 := @Field_QInt1;
Field_PByte1 := @Field_Byte1;
Field_PWord1 := @Field_Word1;
Field_PDWord1 := @Field_DWord1;
Field_PQWord1 := @Field_QWord1;
Field_PSingle1 := @Field_Single1;
Field_PDouble1 := @Field_Double1;
Field_PExt1 := @Field_Ext1;
Field_PComp1 := @Field_Comp1;
Field_PCurrency1 := @Field_Currency1;
Field_PCurrency2 := @Field_Currency2;
Field_PBool1 := @Field_Bool1;
Field_PBool2 := @Field_Bool2;
Field_PEnum1 := @Field_Enum1;
Field_PEnum2 := @Field_Enum2;
Field_PSet1 := @Field_Set1;
Field_PSet2 := @Field_Set2;
Field_PSString1 := @Field_SString1;
Field_PSString2 := @Field_SString2;
Field_PAString1 := @Field_AString1;
Field_PAString2 := @Field_AString2;
{%endregion Field }
end;
procedure TSimpleClass1.Test1Method(Arg_Short1: ShortInt; Arg_Small1: Smallint;
Arg_Int1: LongInt; Arg_QInt1: Int64; Arg_Byte1: Byte; Arg_Word1: Word; Arg_DWord1: LongWord;
Arg_QWord1: QWord; Arg_Single1: Single; Arg_Double1: Double; Arg_Ext1: Extended;
Arg_Comp1: Comp; Arg_Currency1, Arg_Currency2: Currency; Arg_Bool1, Arg_Bool2: Boolean;
Arg_Enum1, Arg_Enum2: TSimpleEnum1; Arg_Set1, Arg_Set2: TSimpleSet1; Arg_SString1,
Arg_SString2: TString25; Arg_AString1, Arg_AString2: AnsiString; Arg_PShort1: PShortInt;
Arg_PSmall1: PSmallint; Arg_PInt1: PLongInt; Arg_PQInt1: PInt64; Arg_PByte1: PByte;
Arg_PWord1: PWord; Arg_PDWord1: PLongWord; Arg_PQWord1: PQWord; Arg_PSingle1: PSingle;
Arg_PDouble1: PDouble; Arg_PExt1: PExtended; Arg_PComp1: PComp; Arg_PCurrency1,
Arg_PCurrency2: PCurrency; Arg_PBool1, Arg_PBool2: PBoolean; Arg_PEnum1,
Arg_PEnum2: PSimpleEnum1; Arg_PSet1, Arg_PSet2: PSimpleSet1; Arg_PSString1,
Arg_PSString2: PString25; Arg_PAString1, Arg_PAString2: PAnsiString;
var VArg_Short1: ShortInt; var VArg_Small1: Smallint; var VArg_Int1: LongInt;
var VArg_QInt1: Int64; var VArg_Byte1: Byte; var VArg_Word1: Word;
var VArg_DWord1: LongWord; var VArg_QWord1: QWord; var VArg_Single1: Single;
var VArg_Double1: Double; var VArg_Ext1: Extended; var VArg_Comp1: Comp; var VArg_Currency1,
VArg_Currency2: Currency; var VArg_Bool1, VArg_Bool2: Boolean; var VArg_Enum1,
VArg_Enum2: TSimpleEnum1; var VArg_Set1, VArg_Set2: TSimpleSet1; var VArg_SString1,
VArg_SString2: TString25; var VArg_AString1, VArg_AString2: AnsiString;
var VArg_PShort1: PShortInt; var VArg_PSmall1: PSmallint; var VArg_PInt1: PLongInt;
var VArg_PQInt1: PInt64; var VArg_PByte1: PByte; var VArg_PWord1: PWord;
var VArg_PDWord1: PLongWord; var VArg_PQWord1: PQWord; var VArg_PSingle1: PSingle;
var VArg_PDouble1: PDouble; var VArg_PExt1: PExtended; var VArg_PComp1: PComp;
var VArg_PCurrency1, VArg_PCurrency2: PCurrency; var VArg_PBool1, VArg_PBool2: PBoolean;
var VArg_PEnum1, VArg_PEnum2: PSimpleEnum1; var VArg_PSet1, VArg_PSet2: PSimpleSet1;
var VArg_PSString1, VArg_PSString2: PString25; var VArg_PAString1,
VArg_PAString2: PAnsiString);
var
Local_Short1: ShortInt;
Local_Small1: Smallint;
Local_Int1: LongInt;
Local_QInt1: Int64;
Local_Byte1: Byte;
Local_Word1: Word;
Local_DWord1: LongWord;
Local_QWord1: QWord;
Local_Single1: Single;
Local_Double1: Double;
Local_Ext1: Extended;
Local_Comp1: Comp;
Local_Currency1, Local_Currency2: Currency;
Local_Bool1, Local_Bool2: Boolean;
Local_Enum1, Local_Enum2: TSimpleEnum1;
Local_Set1, Local_Set2: TSimpleSet1;
Local_SString1, Local_SString2: TString25;
Local_AString1, Local_AString2: AnsiString;
Local_PShort1: PShortInt;
Local_PSmall1: PSmallint;
Local_PInt1: PLongInt;
Local_PQInt1: PInt64;
Local_PByte1: PByte;
Local_PWord1: PWord;
Local_PDWord1: PLongWord;
Local_PQWord1: PQWord;
Local_PSingle1: PSingle;
Local_PDouble1: PDouble;
Local_PExt1: PExtended;
Local_PComp1: PComp;
Local_PCurrency1, Local_PCurrency2: PCurrency;
Local_PBool1, Local_PBool2: PBoolean;
Local_PEnum1, Local_PEnum2: PSimpleEnum1;
Local_PSet1, Local_PSet2: PSimpleSet1;
Local_PSString1, Local_PSString2: PString25;
Local_PAString1, Local_PAString2: PAnsiString;
procedure Nested1;
begin
inc(SimpleGlob_Dummy); // BREAK Single 4
Simple_NoneNested;
end;
begin
InitFields;
{%region local }
Local_Short1 := 11;
Local_Small1 := 112;
Local_Int1 := 1123;
Local_QInt1 := 11234;
Local_Byte1 := 22;
Local_Word1 := 223;
Local_DWord1 := 2234;
Local_QWord1 := 22345;
Local_Single1 := 0.5;
Local_Double1 := 0.25;
Local_Ext1 := 0.75;
Local_Comp1 := -9;
Local_Currency1 := -2.30;
Local_Currency2 := 1.92;
Local_Bool1 := True;
Local_Bool2 := False;
Local_Enum1 := (eval2);
Local_Enum2 := (eval1);
Local_Set1 := [eval2];
Local_Set2 := [];
Local_SString1 := 'stest ü1'+#27+'';
Local_SString2 := '';
Local_AString1 := 'atest ü1'+#27+'';
Local_AString2 := '';
Local_PShort1 := @Local_Short1;
Local_PSmall1 := @Local_Small1;
Local_PInt1 := @Local_Int1;
Local_PQInt1 := @Local_QInt1;
Local_PByte1 := @Local_Byte1;
Local_PWord1 := @Local_Word1;
Local_PDWord1 := @Local_DWord1;
Local_PQWord1 := @Local_QWord1;
Local_PSingle1 := @Local_Single1;
Local_PDouble1 := @Local_Double1;
Local_PExt1 := @Local_Ext1;
Local_PComp1 := @Local_Comp1;
Local_PCurrency1 := @Local_Currency1;
Local_PCurrency2 := @Local_Currency2;
Local_PBool1 := @Local_Bool1;
Local_PBool2 := @Local_Bool2;
Local_PEnum1 := @Local_Enum1;
Local_PEnum2 := @Local_Enum2;
Local_PSet1 := @Local_Set1;
Local_PSet2 := @Local_Set2;
Local_PSString1 := @Local_SString1;
Local_PSString2 := @Local_SString2;
Local_PAString1 := @Local_AString1;
Local_PAString2 := @Local_AString2;
{%endregion local }
{%region ARG}
Arg_PShort1 := @Arg_Short1;
Arg_PSmall1 := @Arg_Small1;
Arg_PInt1 := @Arg_Int1;
Arg_PQInt1 := @Arg_QInt1;
Arg_PByte1 := @Arg_Byte1;
Arg_PWord1 := @Arg_Word1;
Arg_PDWord1 := @Arg_DWord1;
Arg_PQWord1 := @Arg_QWord1;
Arg_PSingle1 := @Arg_Single1;
Arg_PDouble1 := @Arg_Double1;
Arg_PExt1 := @Arg_Ext1;
Arg_PComp1 := @Arg_Comp1;
Arg_PCurrency1 := @Arg_Currency1;
Arg_PCurrency2 := @Arg_Currency2;
Arg_PBool1 := @Arg_Bool1;
Arg_PBool2 := @Arg_Bool2;
Arg_PEnum1 := @Arg_Enum1;
Arg_PEnum2 := @Arg_Enum2;
Arg_PSet1 := @Arg_Set1;
Arg_PSet2 := @Arg_Set2;
Arg_PSString1 := @Arg_SString1;
Arg_PSString2 := @Arg_SString2;
Arg_PAString1 := @Arg_AString1;
Arg_PAString2 := @Arg_AString2;
{%endregion ARG}
{%region VARG}
VArg_PShort1 := @VArg_Short1;
VArg_PSmall1 := @VArg_Small1;
VArg_PInt1 := @VArg_Int1;
VArg_PQInt1 := @VArg_QInt1;
VArg_PByte1 := @VArg_Byte1;
VArg_PWord1 := @VArg_Word1;
VArg_PDWord1 := @VArg_DWord1;
VArg_PQWord1 := @VArg_QWord1;
VArg_PSingle1 := @VArg_Single1;
VArg_PDouble1 := @VArg_Double1;
VArg_PExt1 := @VArg_Ext1;
VArg_PComp1 := @VArg_Comp1;
VArg_PCurrency1 := @VArg_Currency1;
VArg_PCurrency2 := @VArg_Currency2;
VArg_PBool1 := @VArg_Bool1;
VArg_PBool2 := @VArg_Bool2;
VArg_PEnum1 := @VArg_Enum1;
VArg_PEnum2 := @VArg_Enum2;
VArg_PSet1 := @VArg_Set1;
VArg_PSet2 := @VArg_Set2;
VArg_PSString1 := @VArg_SString1;
VArg_PSString2 := @VArg_SString2;
VArg_PAString1 := @VArg_AString1;
VArg_PAString2 := @VArg_AString2;
{%endregion VARG}
inc(SimpleGlob_Dummy); // BREAK Single 3
Nested1;
Simple_NoneNested;
Test0Method;
end;
{ TSimpleClass2 }
procedure TSimpleClass2.Test2Method;
procedure Nested2a;
begin
inc(SimpleGlob_Dummy); // BREAK Single 6
end;
procedure Nested2b(x: Boolean = False);
procedure Nested2c;
begin
inc(SimpleGlob_Dummy); // BREAK Single 7
Nested2a;
end;
begin
inc(SimpleGlob_Dummy); // BREAK Single 8
if x then
Nested2c
else
Nested2b(True);
end;
begin
InitFields;
inc(SimpleGlob_Dummy); // BREAK Single 5
Nested2a;
Nested2b;
end;
procedure Test1;
var
i1: shortint;
i2: smallint;
i3: LongInt;
i4: Int64;
u1: byte;
u2: word;
u3: Longword;
u4: qword;
d1: Single;
d2: double;
d3: Extended;
begin
i1 := -91;
i2 := -191;
i3 := -1901;
i4 := -190000000000001;
u1 := 91;
u2 := 191;
u3 := 1901;
u4 := 190000000000001;
d1 := -1234;
d2 := -2345;
d3 := -3456;
SimpleGlob_Class0 := TSimpleClass0.Create;
SimpleGlob_Class1 := TSimpleClass1.Create;
SimpleGlob_Class2 := TSimpleClass2.Create;
with SimpleGlob_Class1 do begin
Field_Short1 := 11;
Field_Small1 := 12;
Field_Int1 := 13;
Field_QInt1 := 14;
Field_Byte1 := 15;
Field_Word1 := 16;
Field_DWord1 := 17;
Field_QWord1 := 18;
Field_Single1 := 21;
Field_Double1 := 21;
Field_Ext1 := 21;
end;
with SimpleGlob_Class2 do begin
Field_Short1 := 111;
Field_Small1 := 112;
Field_Int1 := 113;
Field_QInt1 := 114;
Field_Byte1 := 115;
Field_Word1 := 116;
Field_DWord1 := 117;
Field_QWord1 := 118;
Field_Single1 := 121.3;
Field_Double1 := 121.4;
Field_Ext1 := 121.5;
end;
SimpleGlob_Comp1 := 0;
SimpleGlob_Comp1 := 1;
SimpleGlob_Comp1 := -1;
Test1Sub(
-92, -192, -1902, -190000000000002, 92, 192, 1902, 190000000000002,
1234, 2345, 3456,
i1, i2, i3, i4, u1, u2, u3, u4, d1, d2, d3,
SimpleGlob_Class1, SimpleGlob_Class2, SimpleGlob_Class1, SimpleGlob_Class2
);
{%region global }
SimpleGlob_Short1 := 11;
SimpleGlob_Small1 := 112;
SimpleGlob_Int1 := 1123;
SimpleGlob_QInt1 := 11234;
SimpleGlob_Byte1 := 22;
SimpleGlob_Word1 := 223;
SimpleGlob_DWord1 := 2234;
SimpleGlob_QWord1 := 22345;
SimpleGlob_Single1 := 0.5;
SimpleGlob_Double1 := 0.25;
SimpleGlob_Ext1 := 0.75;
SimpleGlob_Comp1 := -9;
SimpleGlob_Currency1 := -2.30;
SimpleGlob_Currency2 := 1.92;
SimpleGlob_Bool1 := True;
SimpleGlob_Bool2 := False;
SimpleGlob_Enum1 := (eval2);
SimpleGlob_Enum2 := (eval1);
SimpleGlob_Set1 := [eval2];
SimpleGlob_Set2 := [];
SimpleGlob_SString1 := 'stest ü1'+#27+'';
SimpleGlob_SString2 := '';
SimpleGlob_AString1 := 'atest ü1'+#27+'';
SimpleGlob_AString2 := '';
SimpleGlob_PShort1 := @SimpleGlob_Short1;
SimpleGlob_PSmall1 := @SimpleGlob_Small1;
SimpleGlob_PInt1 := @SimpleGlob_Int1;
SimpleGlob_PQInt1 := @SimpleGlob_QInt1;
SimpleGlob_PByte1 := @SimpleGlob_Byte1;
SimpleGlob_PWord1 := @SimpleGlob_Word1;
SimpleGlob_PDWord1 := @SimpleGlob_DWord1;
SimpleGlob_PQWord1 := @SimpleGlob_QWord1;
SimpleGlob_PSingle1 := @SimpleGlob_Single1;
SimpleGlob_PDouble1 := @SimpleGlob_Double1;
SimpleGlob_PExt1 := @SimpleGlob_Ext1;
SimpleGlob_PComp1 := @SimpleGlob_Comp1;
SimpleGlob_PCurrency1 := @SimpleGlob_Currency1;
SimpleGlob_PCurrency2 := @SimpleGlob_Currency2;
SimpleGlob_PBool1 := @SimpleGlob_Bool1;
SimpleGlob_PBool2 := @SimpleGlob_Bool2;
SimpleGlob_PEnum1 := @SimpleGlob_Enum1;
SimpleGlob_PEnum2 := @SimpleGlob_Enum2;
SimpleGlob_PSet1 := @SimpleGlob_Set1;
SimpleGlob_PSet2 := @SimpleGlob_Set2;
SimpleGlob_PSString1 := @SimpleGlob_SString1;
SimpleGlob_PSString2 := @SimpleGlob_SString2;
SimpleGlob_PAString1 := @SimpleGlob_AString1;
SimpleGlob_PAString2 := @SimpleGlob_AString2;
{%endregion global }
// Copy of pointers for var param
SimpleGlob_P2Short1 := @SimpleGlob_Short1;
SimpleGlob_P2Small1 := @SimpleGlob_Small1;
SimpleGlob_P2Int1 := @SimpleGlob_Int1;
SimpleGlob_P2QInt1 := @SimpleGlob_QInt1;
SimpleGlob_P2Byte1 := @SimpleGlob_Byte1;
SimpleGlob_P2Word1 := @SimpleGlob_Word1;
SimpleGlob_P2DWord1 := @SimpleGlob_DWord1;
SimpleGlob_P2QWord1 := @SimpleGlob_QWord1;
SimpleGlob_P2Single1 := @SimpleGlob_Single1;
SimpleGlob_P2Double1 := @SimpleGlob_Double1;
SimpleGlob_P2Ext1 := @SimpleGlob_Ext1;
SimpleGlob_P2Comp1 := @SimpleGlob_Comp1;
SimpleGlob_P2Currency1 := @SimpleGlob_Currency1;
SimpleGlob_P2Currency2 := @SimpleGlob_Currency2;
SimpleGlob_P2Bool1 := @SimpleGlob_Bool1;
SimpleGlob_P2Bool2 := @SimpleGlob_Bool2;
SimpleGlob_P2Enum1 := @SimpleGlob_Enum1;
SimpleGlob_P2Enum2 := @SimpleGlob_Enum2;
SimpleGlob_P2Set1 := @SimpleGlob_Set1;
SimpleGlob_P2Set2 := @SimpleGlob_Set2;
SimpleGlob_P2SString1 := @SimpleGlob_SString1;
SimpleGlob_P2SString2 := @SimpleGlob_SString2;
SimpleGlob_P2AString1 := @SimpleGlob_AString1;
SimpleGlob_P2AString2 := @SimpleGlob_AString2;
SimpleGlob_Class1.Test1Method(
SimpleGlob_Short1,
SimpleGlob_Small1,
SimpleGlob_Int1,
SimpleGlob_QInt1,
SimpleGlob_Byte1,
SimpleGlob_Word1,
SimpleGlob_DWord1,
SimpleGlob_QWord1,
SimpleGlob_Single1,
SimpleGlob_Double1,
SimpleGlob_Ext1,
SimpleGlob_Comp1,
SimpleGlob_Currency1, SimpleGlob_Currency2,
SimpleGlob_Bool1, SimpleGlob_Bool2,
SimpleGlob_Enum1, SimpleGlob_Enum2,
SimpleGlob_Set1, SimpleGlob_Set2,
SimpleGlob_SString1, SimpleGlob_SString2,
SimpleGlob_AString1, SimpleGlob_AString2,
SimpleGlob_PShort1,
SimpleGlob_PSmall1,
SimpleGlob_PInt1,
SimpleGlob_PQInt1,
SimpleGlob_PByte1,
SimpleGlob_PWord1,
SimpleGlob_PDWord1,
SimpleGlob_PQWord1,
SimpleGlob_PSingle1,
SimpleGlob_PDouble1,
SimpleGlob_PExt1,
SimpleGlob_PComp1,
SimpleGlob_PCurrency1, SimpleGlob_PCurrency2,
SimpleGlob_PBool1, SimpleGlob_PBool2,
SimpleGlob_PEnum1, SimpleGlob_PEnum2,
SimpleGlob_PSet1, SimpleGlob_PSet2,
SimpleGlob_PSString1, SimpleGlob_PSString2,
SimpleGlob_PAString1, SimpleGlob_PAString2,
SimpleGlob_Short1,
SimpleGlob_Small1,
SimpleGlob_Int1,
SimpleGlob_QInt1,
SimpleGlob_Byte1,
SimpleGlob_Word1,
SimpleGlob_DWord1,
SimpleGlob_QWord1,
SimpleGlob_Single1,
SimpleGlob_Double1,
SimpleGlob_Ext1,
SimpleGlob_Comp1,
SimpleGlob_Currency1, SimpleGlob_Currency2,
SimpleGlob_Bool1, SimpleGlob_Bool2,
SimpleGlob_Enum1, SimpleGlob_Enum2,
SimpleGlob_Set1, SimpleGlob_Set2,
SimpleGlob_SString1, SimpleGlob_SString2,
SimpleGlob_AString1, SimpleGlob_AString2,
SimpleGlob_P2Short1,
SimpleGlob_P2Small1,
SimpleGlob_P2Int1,
SimpleGlob_P2QInt1,
SimpleGlob_P2Byte1,
SimpleGlob_P2Word1,
SimpleGlob_P2DWord1,
SimpleGlob_P2QWord1,
SimpleGlob_P2Single1,
SimpleGlob_P2Double1,
SimpleGlob_P2Ext1,
SimpleGlob_P2Comp1,
SimpleGlob_P2Currency1, SimpleGlob_P2Currency2,
SimpleGlob_P2Bool1, SimpleGlob_P2Bool2,
SimpleGlob_P2Enum1, SimpleGlob_P2Enum2,
SimpleGlob_P2Set1, SimpleGlob_P2Set2,
SimpleGlob_PSString1, SimpleGlob_PSString2,
SimpleGlob_PAString1, SimpleGlob_PAString2
);
SimpleGlob_Class2.Test2Method;
SimpleGlob_Class2.Test0Method;
SimpleGlob_Class0.Test0Method;
end;
end.