|
@@ -148,7 +148,7 @@ interface
|
|
varregable : tvarregable;
|
|
varregable : tvarregable;
|
|
varstate : tvarstate;
|
|
varstate : tvarstate;
|
|
notifications : Tlinkedlist;
|
|
notifications : Tlinkedlist;
|
|
- constructor create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
destructor destroy;override;
|
|
destructor destroy;override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
@@ -167,11 +167,9 @@ interface
|
|
property vartype: ttype read _vartype write setvartype;
|
|
property vartype: ttype read _vartype write setvartype;
|
|
end;
|
|
end;
|
|
|
|
|
|
- tvarsymclass = class of tabstractvarsym;
|
|
|
|
-
|
|
|
|
tfieldvarsym = class(tabstractvarsym)
|
|
tfieldvarsym = class(tabstractvarsym)
|
|
fieldoffset : aint; { offset in record/object }
|
|
fieldoffset : aint; { offset in record/object }
|
|
- constructor create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
{$ifdef GDB}
|
|
{$ifdef GDB}
|
|
@@ -183,7 +181,7 @@ interface
|
|
defaultconstsym : tsym;
|
|
defaultconstsym : tsym;
|
|
defaultconstsymderef : tderef;
|
|
defaultconstsymderef : tderef;
|
|
localloc : TLocation; { register/reference for local var }
|
|
localloc : TLocation; { register/reference for local var }
|
|
- constructor create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure buildderef;override;
|
|
procedure buildderef;override;
|
|
@@ -191,7 +189,7 @@ interface
|
|
end;
|
|
end;
|
|
|
|
|
|
tlocalvarsym = class(tabstractnormalvarsym)
|
|
tlocalvarsym = class(tabstractnormalvarsym)
|
|
- constructor create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
{$ifdef GDB}
|
|
{$ifdef GDB}
|
|
@@ -205,7 +203,7 @@ interface
|
|
{$ifdef EXTDEBUG}
|
|
{$ifdef EXTDEBUG}
|
|
eqval : tequaltype;
|
|
eqval : tequaltype;
|
|
{$endif EXTDEBUG}
|
|
{$endif EXTDEBUG}
|
|
- constructor create(const n : string;nr:word;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;nr:word;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
destructor destroy;override;
|
|
destructor destroy;override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
@@ -218,7 +216,7 @@ interface
|
|
private
|
|
private
|
|
_mangledname : pstring;
|
|
_mangledname : pstring;
|
|
public
|
|
public
|
|
- constructor create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
constructor create_dll(const n : string;vsp:tvarspez;const tt : ttype);
|
|
constructor create_dll(const n : string;vsp:tvarspez;const tt : ttype);
|
|
constructor create_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
|
constructor create_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
constructor ppuload(ppufile:tcompilerppufile);
|
|
@@ -1255,13 +1253,13 @@ implementation
|
|
TABSTRACTVARSYM
|
|
TABSTRACTVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tabstractvarsym.create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tabstractvarsym.create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
inherited create(n);
|
|
inherited create(n);
|
|
vartype:=tt;
|
|
vartype:=tt;
|
|
varspez:=vsp;
|
|
varspez:=vsp;
|
|
varstate:=vs_declared;
|
|
varstate:=vs_declared;
|
|
- varoptions:=[];
|
|
|
|
|
|
+ varoptions:=vopts;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -1416,9 +1414,9 @@ implementation
|
|
TFIELDVARSYM
|
|
TFIELDVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tfieldvarsym.create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tfieldvarsym.create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
- inherited create(n,vsp,tt);
|
|
|
|
|
|
+ inherited create(n,vsp,tt,vopts);
|
|
typ:=fieldvarsym;
|
|
typ:=fieldvarsym;
|
|
fieldoffset:=0;
|
|
fieldoffset:=0;
|
|
end;
|
|
end;
|
|
@@ -1467,9 +1465,9 @@ implementation
|
|
TABSTRACTNORMALVARSYM
|
|
TABSTRACTNORMALVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tabstractnormalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tabstractnormalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
- inherited create(n,vsp,tt);
|
|
|
|
|
|
+ inherited create(n,vsp,tt,vopts);
|
|
fillchar(localloc,sizeof(localloc),0);
|
|
fillchar(localloc,sizeof(localloc),0);
|
|
defaultconstsym:=nil;
|
|
defaultconstsym:=nil;
|
|
end;
|
|
end;
|
|
@@ -1508,9 +1506,9 @@ implementation
|
|
TGLOBALVARSYM
|
|
TGLOBALVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tglobalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tglobalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
- inherited create(n,vsp,tt);
|
|
|
|
|
|
+ inherited create(n,vsp,tt,vopts);
|
|
typ:=globalvarsym;
|
|
typ:=globalvarsym;
|
|
_mangledname:=nil;
|
|
_mangledname:=nil;
|
|
end;
|
|
end;
|
|
@@ -1518,14 +1516,13 @@ implementation
|
|
|
|
|
|
constructor tglobalvarsym.create_dll(const n : string;vsp:tvarspez;const tt : ttype);
|
|
constructor tglobalvarsym.create_dll(const n : string;vsp:tvarspez;const tt : ttype);
|
|
begin
|
|
begin
|
|
- tglobalvarsym(self).create(n,vsp,tt);
|
|
|
|
- include(varoptions,vo_is_dll_var);
|
|
|
|
|
|
+ tglobalvarsym(self).create(n,vsp,tt,[vo_is_dll_var]);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
constructor tglobalvarsym.create_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
|
constructor tglobalvarsym.create_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
|
begin
|
|
begin
|
|
- tglobalvarsym(self).create(n,vsp,tt);
|
|
|
|
|
|
+ tglobalvarsym(self).create(n,vsp,tt,[]);
|
|
set_mangledname(mangled);
|
|
set_mangledname(mangled);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1640,9 +1637,9 @@ implementation
|
|
TLOCALVARSYM
|
|
TLOCALVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tlocalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tlocalvarsym.create(const n : string;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
- inherited create(n,vsp,tt);
|
|
|
|
|
|
+ inherited create(n,vsp,tt,vopts);
|
|
typ:=localvarsym;
|
|
typ:=localvarsym;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1701,9 +1698,9 @@ implementation
|
|
TPARAVARSYM
|
|
TPARAVARSYM
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
- constructor tparavarsym.create(const n : string;nr:word;vsp:tvarspez;const tt : ttype);
|
|
|
|
|
|
+ constructor tparavarsym.create(const n : string;nr:word;vsp:tvarspez;const tt : ttype;vopts:tvaroptions);
|
|
begin
|
|
begin
|
|
- inherited create(n,vsp,tt);
|
|
|
|
|
|
+ inherited create(n,vsp,tt,vopts);
|
|
typ:=paravarsym;
|
|
typ:=paravarsym;
|
|
paranr:=nr;
|
|
paranr:=nr;
|
|
paraloc[calleeside].init;
|
|
paraloc[calleeside].init;
|
|
@@ -1838,7 +1835,7 @@ implementation
|
|
|
|
|
|
constructor tabsolutevarsym.create(const n : string;const tt : ttype);
|
|
constructor tabsolutevarsym.create(const n : string;const tt : ttype);
|
|
begin
|
|
begin
|
|
- inherited create(n,vs_value,tt);
|
|
|
|
|
|
+ inherited create(n,vs_value,tt,[]);
|
|
typ:=absolutevarsym;
|
|
typ:=absolutevarsym;
|
|
ref:=nil;
|
|
ref:=nil;
|
|
end;
|
|
end;
|
|
@@ -1846,7 +1843,7 @@ implementation
|
|
|
|
|
|
constructor tabsolutevarsym.create_ref(const n : string;const tt : ttype;_ref:tsymlist);
|
|
constructor tabsolutevarsym.create_ref(const n : string;const tt : ttype;_ref:tsymlist);
|
|
begin
|
|
begin
|
|
- inherited create(n,vs_value,tt);
|
|
|
|
|
|
+ inherited create(n,vs_value,tt,[]);
|
|
typ:=absolutevarsym;
|
|
typ:=absolutevarsym;
|
|
ref:=_ref;
|
|
ref:=_ref;
|
|
end;
|
|
end;
|
|
@@ -2557,7 +2554,10 @@ implementation
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.195 2004-11-29 20:50:37 peter
|
|
|
|
|
|
+ Revision 1.196 2004-12-07 16:11:52 peter
|
|
|
|
+ * set vo_explicit_paraloc flag
|
|
|
|
+
|
|
|
|
+ Revision 1.195 2004/11/29 20:50:37 peter
|
|
* uninited results
|
|
* uninited results
|
|
|
|
|
|
Revision 1.194 2004/11/17 22:21:35 peter
|
|
Revision 1.194 2004/11/17 22:21:35 peter
|