blob: 5062432ad6e3487fba4c32f1d5457da5b9412a46 (
plain)
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
|
{ %CPU=i386 }
{ FPC behaves interestingly once encountered virtual method
declared as
procedure TWhateverObject.Method1; assembler; asm ... end;
if you ever try to overload such method _in another unit_,
than compile _second unit_, and than try to compile it again (???)-
you will end up with the message "Function header does not match
forward declaration of TNewObject.Method1" although in reality
it does match perfectly.
sometimes i encounter the same message even on non-assembler methods,
but i have not been able to reproduce them cleanly nor find the
reason for such behavior.}
unit uw0555;
interface
type
TBugObj = Object
constructor Init;
procedure Method1;
procedure Method2;virtual;
procedure Method3;
procedure Method4;virtual;
destructor Done;virtual;
end;
implementation
Constructor TBugObj.Init;
begin
end;
{$ASMMODE ATT}
procedure TBugObj.Method1;assembler;
asm
movl $1,%eax
end;
procedure TBugObj.Method2;assembler;
asm
movl $1,%eax
end;
procedure TBugObj.Method3;
begin
end;
procedure TBugObj.Method4;
begin
end;
Destructor TBugObj.Done;
begin
end;
end.
|