mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-23 07:29:32 +02:00
* force static; being repeated in the procedure body, this avoids trouble as in #12242
+ add static when using fullprocname git-svn-id: trunk@11835 -
This commit is contained in:
parent
20a8aced3c
commit
8c9baed5cb
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8564,6 +8564,7 @@ tests/webtbs/tw1222.pp svneol=native#text/plain
|
||||
tests/webtbs/tw12224.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1223.pp svneol=native#text/plain
|
||||
tests/webtbs/tw12233.pp svneol=native#text/plain
|
||||
tests/webtbs/tw12242.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1228.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1229.pp svneol=native#text/plain
|
||||
tests/webtbs/tw1250.pp svneol=native#text/plain
|
||||
|
@ -1920,7 +1920,7 @@ const
|
||||
mutexclpo : []
|
||||
),(
|
||||
idtok:_STATIC;
|
||||
pd_flags : [pd_interface,pd_object,pd_notobjintf];
|
||||
pd_flags : [pd_interface,pd_implemen,pd_body,pd_object,pd_notobjintf];
|
||||
handler : @pd_static;
|
||||
pocall : pocall_none;
|
||||
pooption : [po_staticmethod];
|
||||
|
@ -3149,9 +3149,12 @@ implementation
|
||||
not(is_void(returndef)) then
|
||||
s:=s+':'+returndef.GetTypeName;
|
||||
end;
|
||||
s:=s+';';
|
||||
{ forced calling convention? }
|
||||
if (po_hascallingconvention in procoptions) then
|
||||
s:=s+';'+ProcCallOptionStr[proccalloption];
|
||||
s:=s+' '+ProcCallOptionStr[proccalloption]+';';
|
||||
if po_staticmethod in procoptions then
|
||||
s:=s+' Static;';
|
||||
fullprocname:=s;
|
||||
end;
|
||||
|
||||
|
29
tests/webtbs/tw12242.pp
Normal file
29
tests/webtbs/tw12242.pp
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
staticbug.pas
|
||||
|
||||
With FPC 2.2.2:
|
||||
|
||||
staticbug.lpr(24,31) Error: function header doesn't match the previous declaration "class TMyController.doClose(Pointer, Pointer, Pointer);CDecl"
|
||||
}
|
||||
program staticbug;
|
||||
|
||||
{$mode delphi}{$STATIC ON}
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
type
|
||||
|
||||
{ TMyController }
|
||||
|
||||
TMyController = class
|
||||
public
|
||||
class procedure doClose(_self: Pointer; _cmd: Pointer; sender: Pointer); cdecl; static;
|
||||
end;
|
||||
|
||||
class procedure TMyController.doClose(_self: Pointer; _cmd: Pointer; sender: Pointer); cdecl; static;
|
||||
begin
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
Loading…
Reference in New Issue
Block a user