Static methods not recognized as valid function reference in FPC mode.
## Summary
When taking the address of a static class method, the compiler works correctly in mode Delphi, but not in mode objfpc.
## System Information
- **Operating system:** N/A
- **Processor architecture:** N/A
- **Compiler version:** 3.3.1
- **Device:** N/A
## Steps to reproduce
* Compile below program without define USEOBJFPC. It will compile in mode delphi
* Compile below program with define USEOBJFPC. It will compile in mode ObjFPC, but the compiler will give an error
```
ta.pp(30,6) Error: Incompatible types: got "<class method type of procedure(LongInt) of object;Register>" expected "TSOMEPROC"
```
## Example Project
```delphi
program ttestproc;
{$IFDEF USEOBJFPC}
{$mode objfpc}
{$modeswitch functionreferences}
{$ELSE}
{$MODE DELPHI}
{$ENDIF}
Type
TSomeClass = class(TObject)
class procedure Y (X : Integer); static;
end;
TSomeProc = reference to procedure (X : integer);
Var
P : TSomeProc;
class procedure TSomeClass.Y(X : Integer);
begin
Writeln(X);
end;
var
C : TSomeClass;
begin
C:=TSomeClass.Create;
{$IFDEF USEOBJFPC}
P:=@C.Y;
{$ELSE}
P:=C.Y;
{$ENDIF}
end.
```
## What is the current bug behavior?
Compiler gives an error in mode objfpc but not in mode Delphi
## What is the expected (correct) behavior?
Compiler compiles in mode objfpc as in mode delphi.
issue