summaryrefslogtreecommitdiff
path: root/tests/webtbs/uw0555.pp
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.