mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-03 01:38:26 +02:00
+ test I forgot to commit earlier
git-svn-id: trunk@13309 -
This commit is contained in:
parent
fce899388f
commit
089ff79c3b
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8010,6 +8010,7 @@ tests/test/opt/twpo2.pp svneol=native#text/plain
|
||||
tests/test/opt/twpo3.pp svneol=native#text/plain
|
||||
tests/test/opt/twpo4.pp svneol=native#text/plain
|
||||
tests/test/opt/twpo5.pp svneol=native#text/plain
|
||||
tests/test/opt/twpo6.pp svneol=native#text/plain
|
||||
tests/test/opt/twpo7.pp svneol=native#text/plain
|
||||
tests/test/opt/uwpo2.pp svneol=native#text/plain
|
||||
tests/test/packages/fcl-base/tascii85.pp svneol=native#text/plain
|
||||
|
51
tests/test/opt/twpo6.pp
Normal file
51
tests/test/opt/twpo6.pp
Normal file
@ -0,0 +1,51 @@
|
||||
{ %wpoparas=devirtcalls,optvmts }
|
||||
{ %wpopasses=1 }
|
||||
|
||||
{$mode objfpc}
|
||||
{$m+}
|
||||
|
||||
{ check that multiple descendents properly mark parent class method as
|
||||
non-optimisable
|
||||
}
|
||||
|
||||
type
|
||||
tbase = class
|
||||
procedure test; virtual;
|
||||
end;
|
||||
|
||||
tchild1 = class(tbase)
|
||||
procedure test; override;
|
||||
end;
|
||||
|
||||
tchild2 = class(tbase)
|
||||
published
|
||||
procedure test; override;
|
||||
end;
|
||||
|
||||
procedure tbase.test;
|
||||
begin
|
||||
halt(1);
|
||||
end;
|
||||
|
||||
var
|
||||
a: longint;
|
||||
|
||||
procedure tchild1.test;
|
||||
begin
|
||||
if a<>1 then
|
||||
halt(2);
|
||||
end;
|
||||
|
||||
procedure tchild2.test;
|
||||
begin
|
||||
if a<>2 then
|
||||
halt(3);
|
||||
end;
|
||||
|
||||
var
|
||||
bb: tbase;
|
||||
begin
|
||||
bb:=tchild1.create;
|
||||
if (bb is tchild2) then
|
||||
halt(1);
|
||||
end.
|
Loading…
Reference in New Issue
Block a user