File: tcppcl1.pp

package info (click to toggle)
fpc 3.2.2%2Bdfsg-49
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 341,452 kB
  • sloc: pascal: 3,820,194; xml: 194,356; ansic: 9,637; asm: 8,482; java: 5,346; sh: 4,813; yacc: 3,956; makefile: 2,705; lex: 2,661; javascript: 2,454; sql: 929; php: 474; cpp: 145; perl: 136; sed: 132; csh: 34; tcl: 7
file content (96 lines) | stat: -rw-r--r-- 2,660 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{ %FILES=cpptcl1.o }
{%TARGET=linux,darwin,go32v2}
{ Test the C++ name mangling for different parameter combinations }
program tcppclass1;

{$mode objfpc}
{$L cpptcl1.o}

type
  TestClass = cppclass external
    class procedure Test1;
    { boolean }
    class procedure Test2(aArg1: Boolean);
    { unsigned ordinals }
    class procedure Test3(aArg1: Byte);
    class procedure Test4(aArg1: Word);
    class procedure Test5(aArg1: LongWord);
    class procedure Test6(aArg1: QWord);
    { signed ordinals }
    class procedure Test7(aArg1: ShortInt);
    class procedure Test8(aArg1: SmallInt);
    class procedure Test9(aArg1: LongInt);
    class procedure Test10(aArg1: Int64);
    { floating point }
    class procedure Test11(aArg1: Single);
    class procedure Test12(aArg1: Double);
    { chars }
    class procedure Test13(aArg1: Char);
    class procedure Test14(aArg1: WideChar);
    { pointers }
    class procedure Test15(aArg1: Pointer);
    class procedure Test16(aArg1: PChar);
    class procedure Test17(aArg1: PWideChar);
    class procedure Test18(aArg1: PLongWord);
    class procedure Test19(aArg1: PSingle);
    { by reference }
    class procedure Test20(var aArg1: LongInt);
    class procedure Test21(var aArg1: LongWord);
    class procedure Test22(var aArg1: Pointer);
    class procedure Test23(var aArg1: Char);
    class procedure Test24(var aArg1: Single);
    { combinations }
    class procedure Test25(aArg1: Byte; aArg2: Word; aArg3: LongWord; aArg4: QWord);
    class procedure Test26(aArg1: Pointer; var aArg2: Char; aArg3: Single);
  end;

const
  HelloWorld = 'Hello World';
var
  li: LongInt = -42;
  lw: LongWord = 42;
  p: Pointer = Nil;
  c: Char = 'a';
  s: Single = 3.1416;
begin
  try
    TestClass.Test1;
    { boolean}
    TestClass.Test2(True);
    { unsigned ordinals }
    TestClass.Test3(42);
    TestClass.Test4(42);
    TestClass.Test5(42);
    TestClass.Test6(42);
    { signed ordinals }
    TestClass.Test7(-42);
    TestClass.Test8(-42);
    TestClass.Test9(-42);
    TestClass.Test10(-42);
    { floating point }
    TestClass.Test11(3.1416);
    TestClass.Test12(3.1416);
    { chars }
    TestClass.Test13('a');
    TestClass.Test14('a');
    { pointers }
    TestClass.Test15(Nil);
    TestClass.Test16(Nil);
    TestClass.Test17(Nil);
    TestClass.Test18(Nil);
    TestClass.Test19(Nil);
    { by reference }
    TestClass.Test20(li);
    TestClass.Test21(lw);
    TestClass.Test22(p);
    TestClass.Test23(c);
    TestClass.Test24(s);
    { combinations }
    TestClass.Test25(42, 42, 42, 42);
    TestClass.Test26(Nil, c, 3.1416);
  except
    ExitCode := 1;
    writeln('error');
  end;
end.