mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 12:39:25 +02:00
* set vo_explicit_paraloc flag
This commit is contained in:
parent
a266052fd9
commit
78c2af7b3c
@ -990,7 +990,7 @@ type
|
||||
for i:=0 to varargsparas.count-1 do
|
||||
begin
|
||||
hp:=tparavarsym(varargsparas[i]);
|
||||
hpn:=tparavarsym.create(hp.realname,hp.paranr,hp.varspez,hp.vartype);
|
||||
hpn:=tparavarsym.create(hp.realname,hp.paranr,hp.varspez,hp.vartype,[]);
|
||||
n.varargsparas.add(hpn);
|
||||
end;
|
||||
end
|
||||
@ -1410,7 +1410,7 @@ type
|
||||
begin
|
||||
if cpf_varargs_para in pt.callparaflags then
|
||||
begin
|
||||
varargspara:=tparavarsym.create('va'+tostr(i),i,vs_value,pt.resulttype);
|
||||
varargspara:=tparavarsym.create('va'+tostr(i),i,vs_value,pt.resulttype,[]);
|
||||
dec(i);
|
||||
{ varargspara is left-right, use insert
|
||||
instead of concat }
|
||||
@ -2432,7 +2432,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.268 2004-12-05 12:28:11 peter
|
||||
Revision 1.269 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.268 2004/12/05 12:28:11 peter
|
||||
* procvar handling for tp procvar mode fixed
|
||||
* proc to procvar moved from addrnode to typeconvnode
|
||||
* inlininginfo is now allocated only for inline routines that
|
||||
|
@ -1090,8 +1090,7 @@ implementation
|
||||
exit;
|
||||
with tparavarsym(p) do
|
||||
begin
|
||||
vs:=tparavarsym.create(realname,paranr,varspez,vartype);
|
||||
vs.varoptions:=varoptions;
|
||||
vs:=tparavarsym.create(realname,paranr,varspez,vartype,varoptions);
|
||||
vs.defaultconstsym:=defaultconstsym;
|
||||
newparast.insert(vs);
|
||||
end;
|
||||
@ -2498,7 +2497,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.166 2004-12-05 12:28:11 peter
|
||||
Revision 1.167 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.166 2004/12/05 12:28:11 peter
|
||||
* procvar handling for tp procvar mode fixed
|
||||
* proc to procvar moved from addrnode to typeconvnode
|
||||
* inlininginfo is now allocated only for inline routines that
|
||||
|
@ -105,9 +105,7 @@ implementation
|
||||
else
|
||||
paranr:=paranr_result;
|
||||
{ Generate result variable accessing function result }
|
||||
vs:=tparavarsym.create('$result',paranr,vs_var,pd.rettype);
|
||||
include(vs.varoptions,vo_is_funcret);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$result',paranr,vs_var,pd.rettype,[vo_is_funcret,vo_is_hidden_para]);
|
||||
pd.parast.insert(vs);
|
||||
{ Store the this symbol as funcretsym for procedures }
|
||||
if pd.deftype=procdef then
|
||||
@ -132,9 +130,7 @@ implementation
|
||||
{ Generate result variable accessing function result, it
|
||||
can't be put in a register since it must be accessable
|
||||
from the framepointer }
|
||||
vs:=tparavarsym.create('$parentfp',paranr_parentfp,vs_var,voidpointertype);
|
||||
include(vs.varoptions,vo_is_parentfp);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$parentfp',paranr_parentfp,vs_var,voidpointertype,[vo_is_parentfp,vo_is_hidden_para]);
|
||||
vs.varregable:=vr_none;
|
||||
pd.parast.insert(vs);
|
||||
|
||||
@ -155,9 +151,7 @@ implementation
|
||||
begin
|
||||
{ Generate self variable }
|
||||
tt:=voidpointertype;
|
||||
vs:=tparavarsym.create('$self',paranr_self,vs_value,tt);
|
||||
include(vs.varoptions,vo_is_self);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$self',paranr_self,vs_value,tt,[vo_is_self,vo_is_hidden_para]);
|
||||
pd.parast.insert(vs);
|
||||
end
|
||||
else
|
||||
@ -175,9 +169,7 @@ implementation
|
||||
{ can't use classrefdef as type because inheriting
|
||||
will then always file because of a type mismatch }
|
||||
tt:=voidpointertype;
|
||||
vs:=tparavarsym.create('$vmt',paranr_vmt,vs_value,tt);
|
||||
include(vs.varoptions,vo_is_vmt);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$vmt',paranr_vmt,vs_value,tt,[vo_is_vmt,vo_is_hidden_para]);
|
||||
pd.parast.insert(vs);
|
||||
end;
|
||||
|
||||
@ -197,9 +189,7 @@ implementation
|
||||
vsp:=vs_var;
|
||||
tt.setdef(tprocdef(pd)._class);
|
||||
end;
|
||||
vs:=tparavarsym.create('$self',paranr_self,vsp,tt);
|
||||
include(vs.varoptions,vo_is_self);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$self',paranr_self,vsp,tt,[vo_is_self,vo_is_hidden_para]);
|
||||
pd.parast.insert(vs);
|
||||
|
||||
akttokenpos:=storepos;
|
||||
@ -230,8 +220,7 @@ implementation
|
||||
when it is returning in a register }
|
||||
if not paramanager.ret_in_param(pd.rettype.def,pd.proccalloption) then
|
||||
begin
|
||||
vs:=tlocalvarsym.create('$result',vs_value,pd.rettype);
|
||||
include(vs.varoptions,vo_is_funcret);
|
||||
vs:=tlocalvarsym.create('$result',vs_value,pd.rettype,[vo_is_funcret]);
|
||||
pd.localst.insert(vs);
|
||||
pd.funcretsym:=vs;
|
||||
end;
|
||||
@ -285,9 +274,7 @@ implementation
|
||||
{ needs high parameter ? }
|
||||
if paramanager.push_high_param(varspez,vartype.def,pd.proccalloption) then
|
||||
begin
|
||||
hvs:=tparavarsym.create('$high'+name,paranr+1,vs_const,sinttype);
|
||||
include(hvs.varoptions,vo_is_high_para);
|
||||
include(hvs.varoptions,vo_is_hidden_para);
|
||||
hvs:=tparavarsym.create('$high'+name,paranr+1,vs_const,sinttype,[vo_is_high_para,vo_is_hidden_para]);
|
||||
owner.insert(hvs);
|
||||
end
|
||||
else
|
||||
@ -451,7 +438,7 @@ implementation
|
||||
sc.reset;
|
||||
repeat
|
||||
inc(paranr);
|
||||
vs:=tparavarsym.create(orgpattern,paranr*10,varspez,generrortype);
|
||||
vs:=tparavarsym.create(orgpattern,paranr*10,varspez,generrortype,[]);
|
||||
currparast.insert(vs);
|
||||
if assigned(vs.owner) then
|
||||
sc.insert(vs)
|
||||
@ -586,6 +573,7 @@ implementation
|
||||
if (paranr>1) and not(explicit_paraloc) then
|
||||
Message(parser_e_paraloc_all_paras);
|
||||
explicit_paraloc:=true;
|
||||
include(vs.varoptions,vo_has_explicit_paraloc);
|
||||
if not(paramanager.parseparaloc(vs,upper(locationstr))) then
|
||||
message(parser_e_illegal_explicit_paraloc);
|
||||
end
|
||||
@ -1228,9 +1216,7 @@ begin
|
||||
) then
|
||||
begin
|
||||
tprocdef(pd).libsym:=sym;
|
||||
vs:=tparavarsym.create('$syscalllib',paranr_syscall,vs_value,tabstractvarsym(sym).vartype);
|
||||
include(vs.varoptions,vo_is_syscall_lib);
|
||||
include(vs.varoptions,vo_is_hidden_para);
|
||||
vs:=tparavarsym.create('$syscalllib',paranr_syscall,vs_value,tabstractvarsym(sym).vartype,[vo_is_syscall_lib,vo_is_hidden_para,vo_has_explicit_paraloc]);
|
||||
paramanager.parseparaloc(vs,'A6');
|
||||
pd.parast.insert(vs);
|
||||
end
|
||||
@ -2358,7 +2344,10 @@ const
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.217 2004-12-05 12:28:11 peter
|
||||
Revision 1.218 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.217 2004/12/05 12:28:11 peter
|
||||
* procvar handling for tp procvar mode fixed
|
||||
* proc to procvar moved from addrnode to typeconvnode
|
||||
* inlininginfo is now allocated only for inline routines that
|
||||
|
@ -278,7 +278,7 @@ implementation
|
||||
sc.reset;
|
||||
repeat
|
||||
inc(paranr);
|
||||
hreadparavs:=tparavarsym.create(orgpattern,10*paranr,varspez,generrortype);
|
||||
hreadparavs:=tparavarsym.create(orgpattern,10*paranr,varspez,generrortype,[]);
|
||||
readprocdef.parast.insert(hreadparavs);
|
||||
sc.insert(hreadparavs);
|
||||
consume(_ID);
|
||||
@ -309,7 +309,7 @@ implementation
|
||||
begin
|
||||
hreadparavs.vartype:=tt;
|
||||
{ also update the writeprocdef }
|
||||
hparavs:=tparavarsym.create(hreadparavs.realname,hreadparavs.paranr,vs_value,tt);
|
||||
hparavs:=tparavarsym.create(hreadparavs.realname,hreadparavs.paranr,vs_value,tt,[]);
|
||||
writeprocdef.parast.insert(hparavs);
|
||||
hreadparavs:=tparavarsym(hreadparavs.listnext);
|
||||
end;
|
||||
@ -357,9 +357,9 @@ implementation
|
||||
include(p.propoptions,ppo_indexed);
|
||||
{ concat a longint to the para templates }
|
||||
inc(paranr);
|
||||
hparavs:=tparavarsym.create('$index',10*paranr,vs_value,p.indextype);
|
||||
hparavs:=tparavarsym.create('$index',10*paranr,vs_value,p.indextype,[]);
|
||||
readprocdef.parast.insert(hparavs);
|
||||
hparavs:=tparavarsym.create('$index',10*paranr,vs_value,p.indextype);
|
||||
hparavs:=tparavarsym.create('$index',10*paranr,vs_value,p.indextype,[]);
|
||||
writeprocdef.parast.insert(hparavs);
|
||||
pt.free;
|
||||
end;
|
||||
@ -438,7 +438,7 @@ implementation
|
||||
of the of the property }
|
||||
writeprocdef.rettype:=voidtype;
|
||||
inc(paranr);
|
||||
hparavs:=tparavarsym.create('$value',10*paranr,vs_value,p.proptype);
|
||||
hparavs:=tparavarsym.create('$value',10*paranr,vs_value,p.proptype,[]);
|
||||
writeprocdef.parast.insert(hparavs);
|
||||
{ Insert hidden parameters }
|
||||
handle_calling_convention(writeprocdef);
|
||||
@ -611,7 +611,7 @@ implementation
|
||||
if (symtablestack.symtabletype=objectsymtable) and
|
||||
(sp_static in current_object_option) then
|
||||
begin
|
||||
hstaticvs:=tglobalvarsym.create('$'+lower(symtablestack.name^)+'_'+vs.name,vs_value,tt);
|
||||
hstaticvs:=tglobalvarsym.create('$'+lower(symtablestack.name^)+'_'+vs.name,vs_value,tt,[]);
|
||||
symtablestack.defowner.owner.insert(hstaticvs);
|
||||
insertbssdata(hstaticvs);
|
||||
end
|
||||
@ -725,13 +725,13 @@ implementation
|
||||
repeat
|
||||
case symtablestack.symtabletype of
|
||||
localsymtable :
|
||||
vs:=tlocalvarsym.create(orgpattern,vs_value,generrortype);
|
||||
vs:=tlocalvarsym.create(orgpattern,vs_value,generrortype,[]);
|
||||
staticsymtable,
|
||||
globalsymtable :
|
||||
vs:=tglobalvarsym.create(orgpattern,vs_value,generrortype);
|
||||
vs:=tglobalvarsym.create(orgpattern,vs_value,generrortype,[]);
|
||||
recordsymtable,
|
||||
objectsymtable :
|
||||
vs:=tfieldvarsym.create(orgpattern,vs_value,generrortype);
|
||||
vs:=tfieldvarsym.create(orgpattern,vs_value,generrortype,[]);
|
||||
else
|
||||
internalerror(200411064);
|
||||
end;
|
||||
@ -1206,7 +1206,7 @@ implementation
|
||||
symtablestack:=symtablestack.next;
|
||||
read_type(casetype,'',true);
|
||||
symtablestack:=oldsymtablestack;
|
||||
fieldvs:=tfieldvarsym.create(sorg,vs_value,casetype);
|
||||
fieldvs:=tfieldvarsym.create(sorg,vs_value,casetype,[]);
|
||||
tabstractrecordsymtable(symtablestack).insertfield(fieldvs,true);
|
||||
end;
|
||||
if not(is_ordinal(casetype.def))
|
||||
@ -1265,7 +1265,7 @@ implementation
|
||||
unionsymtable.fieldalignment:=maxalignment;
|
||||
uniontype.def:=uniondef;
|
||||
uniontype.sym:=nil;
|
||||
UnionSym:=tfieldvarsym.create('$case',vs_value,uniontype);
|
||||
UnionSym:=tfieldvarsym.create('$case',vs_value,uniontype,[]);
|
||||
symtablestack:=symtablestack.next;
|
||||
unionsymtable.addalignmentpadding;
|
||||
{$ifdef powerpc}
|
||||
@ -1306,7 +1306,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.86 2004-11-29 18:50:15 peter
|
||||
Revision 1.87 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.86 2004/11/29 18:50:15 peter
|
||||
* os2 fixes for import
|
||||
* asmsymtype support for intel reader
|
||||
|
||||
|
@ -696,11 +696,11 @@ implementation
|
||||
is_class(ttypesym(srsym).restype.def) then
|
||||
begin
|
||||
ot:=ttypesym(srsym).restype;
|
||||
sym:=tlocalvarsym.create(objrealname,vs_value,ot);
|
||||
sym:=tlocalvarsym.create(objrealname,vs_value,ot,[]);
|
||||
end
|
||||
else
|
||||
begin
|
||||
sym:=tlocalvarsym.create(objrealname,vs_value,generrortype);
|
||||
sym:=tlocalvarsym.create(objrealname,vs_value,generrortype,[]);
|
||||
if (srsym.typ=typesym) then
|
||||
Message1(type_e_class_type_expected,ttypesym(srsym).restype.def.typename)
|
||||
else
|
||||
@ -1147,7 +1147,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.147 2004-12-05 12:28:11 peter
|
||||
Revision 1.148 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.147 2004/12/05 12:28:11 peter
|
||||
* procvar handling for tp procvar mode fixed
|
||||
* proc to procvar moved from addrnode to typeconvnode
|
||||
* inlininginfo is now allocated only for inline routines that
|
||||
|
@ -216,12 +216,12 @@ implementation
|
||||
hrecst:=trecordsymtable.create(aktpackrecords);
|
||||
vmttype.setdef(trecorddef.create(hrecst));
|
||||
pvmttype.setdef(tpointerdef.create(vmttype));
|
||||
hrecst.insertfield(tfieldvarsym.create('$parent',vs_value,pvmttype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$length',vs_value,s32inttype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$mlength',vs_value,s32inttype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$parent',vs_value,pvmttype,[]),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$length',vs_value,s32inttype,[]),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$mlength',vs_value,s32inttype,[]),true);
|
||||
vmtarraytype.setdef(tarraydef.create(0,1,s32inttype));
|
||||
tarraydef(vmtarraytype.def).setelementtype(voidpointertype);
|
||||
hrecst.insertfield(tfieldvarsym.create('$__pfn',vs_value,vmtarraytype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$__pfn',vs_value,vmtarraytype,[]),true);
|
||||
addtype('$__vtbl_ptr_type',vmttype);
|
||||
addtype('$pvmt',pvmttype);
|
||||
vmtarraytype.setdef(tarraydef.create(0,1,s32inttype));
|
||||
@ -229,8 +229,8 @@ implementation
|
||||
addtype('$vtblarray',vmtarraytype);
|
||||
{ Add a type for methodpointers }
|
||||
hrecst:=trecordsymtable.create(1);
|
||||
hrecst.insertfield(tfieldvarsym.create('$proc',vs_value,voidpointertype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$self',vs_value,voidpointertype),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$proc',vs_value,voidpointertype,[]),true);
|
||||
hrecst.insertfield(tfieldvarsym.create('$self',vs_value,voidpointertype,[]),true);
|
||||
methodpointertype.setdef(trecorddef.create(hrecst));
|
||||
addtype('$methodpointer',methodpointertype);
|
||||
{ Add functions that require compiler magic }
|
||||
@ -537,7 +537,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.74 2004-12-07 13:52:54 michael
|
||||
Revision 1.75 2004-12-07 16:11:52 peter
|
||||
* set vo_explicit_paraloc flag
|
||||
|
||||
Revision 1.74 2004/12/07 13:52:54 michael
|
||||
* Convert array of widechar to pwidechar instead of pchar
|
||||
|
||||
Revision 1.73 2004/11/08 22:09:59 peter
|
||||
|
@ -148,7 +148,7 @@ interface
|
||||
varregable : tvarregable;
|
||||
varstate : tvarstate;
|
||||
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);
|
||||
destructor destroy;override;
|
||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||
@ -167,11 +167,9 @@ interface
|
||||
property vartype: ttype read _vartype write setvartype;
|
||||
end;
|
||||
|
||||
tvarsymclass = class of tabstractvarsym;
|
||||
|
||||
tfieldvarsym = class(tabstractvarsym)
|
||||
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);
|
||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||
{$ifdef GDB}
|
||||
@ -183,7 +181,7 @@ interface
|
||||
defaultconstsym : tsym;
|
||||
defaultconstsymderef : tderef;
|
||||
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);
|
||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||
procedure buildderef;override;
|
||||
@ -191,7 +189,7 @@ interface
|
||||
end;
|
||||
|
||||
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);
|
||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||
{$ifdef GDB}
|
||||
@ -205,7 +203,7 @@ interface
|
||||
{$ifdef EXTDEBUG}
|
||||
eqval : tequaltype;
|
||||
{$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);
|
||||
destructor destroy;override;
|
||||
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
||||
@ -218,7 +216,7 @@ interface
|
||||
private
|
||||
_mangledname : pstring;
|
||||
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_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
||||
constructor ppuload(ppufile:tcompilerppufile);
|
||||
@ -1255,13 +1253,13 @@ implementation
|
||||
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
|
||||
inherited create(n);
|
||||
vartype:=tt;
|
||||
varspez:=vsp;
|
||||
varstate:=vs_declared;
|
||||
varoptions:=[];
|
||||
varoptions:=vopts;
|
||||
end;
|
||||
|
||||
|
||||
@ -1416,9 +1414,9 @@ implementation
|
||||
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
|
||||
inherited create(n,vsp,tt);
|
||||
inherited create(n,vsp,tt,vopts);
|
||||
typ:=fieldvarsym;
|
||||
fieldoffset:=0;
|
||||
end;
|
||||
@ -1467,9 +1465,9 @@ implementation
|
||||
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
|
||||
inherited create(n,vsp,tt);
|
||||
inherited create(n,vsp,tt,vopts);
|
||||
fillchar(localloc,sizeof(localloc),0);
|
||||
defaultconstsym:=nil;
|
||||
end;
|
||||
@ -1508,9 +1506,9 @@ implementation
|
||||
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
|
||||
inherited create(n,vsp,tt);
|
||||
inherited create(n,vsp,tt,vopts);
|
||||
typ:=globalvarsym;
|
||||
_mangledname:=nil;
|
||||
end;
|
||||
@ -1518,14 +1516,13 @@ implementation
|
||||
|
||||
constructor tglobalvarsym.create_dll(const n : string;vsp:tvarspez;const tt : ttype);
|
||||
begin
|
||||
tglobalvarsym(self).create(n,vsp,tt);
|
||||
include(varoptions,vo_is_dll_var);
|
||||
tglobalvarsym(self).create(n,vsp,tt,[vo_is_dll_var]);
|
||||
end;
|
||||
|
||||
|
||||
constructor tglobalvarsym.create_C(const n,mangled : string;vsp:tvarspez;const tt : ttype);
|
||||
begin
|
||||
tglobalvarsym(self).create(n,vsp,tt);
|
||||
tglobalvarsym(self).create(n,vsp,tt,[]);
|
||||
set_mangledname(mangled);
|
||||
end;
|
||||
|
||||
@ -1640,9 +1637,9 @@ implementation
|
||||
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
|
||||
inherited create(n,vsp,tt);
|
||||
inherited create(n,vsp,tt,vopts);
|
||||
typ:=localvarsym;
|
||||
end;
|
||||
|
||||
@ -1701,9 +1698,9 @@ implementation
|
||||
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
|
||||
inherited create(n,vsp,tt);
|
||||
inherited create(n,vsp,tt,vopts);
|
||||
typ:=paravarsym;
|
||||
paranr:=nr;
|
||||
paraloc[calleeside].init;
|
||||
@ -1838,7 +1835,7 @@ implementation
|
||||
|
||||
constructor tabsolutevarsym.create(const n : string;const tt : ttype);
|
||||
begin
|
||||
inherited create(n,vs_value,tt);
|
||||
inherited create(n,vs_value,tt,[]);
|
||||
typ:=absolutevarsym;
|
||||
ref:=nil;
|
||||
end;
|
||||
@ -1846,7 +1843,7 @@ implementation
|
||||
|
||||
constructor tabsolutevarsym.create_ref(const n : string;const tt : ttype;_ref:tsymlist);
|
||||
begin
|
||||
inherited create(n,vs_value,tt);
|
||||
inherited create(n,vs_value,tt,[]);
|
||||
typ:=absolutevarsym;
|
||||
ref:=_ref;
|
||||
end;
|
||||
@ -2557,7 +2554,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.194 2004/11/17 22:21:35 peter
|
||||
|
Loading…
Reference in New Issue
Block a user