mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 02:59:13 +02:00
* str(...) for ansi/long and widestrings fixed
This commit is contained in:
parent
1ae82e5987
commit
9920e3ffef
@ -431,6 +431,7 @@ implementation
|
|||||||
hp,node : ptree;
|
hp,node : ptree;
|
||||||
dummycoll : tdefcoll;
|
dummycoll : tdefcoll;
|
||||||
is_real,has_length : boolean;
|
is_real,has_length : boolean;
|
||||||
|
procedureprefix : string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
pushusedregisters(pushed,$ff);
|
pushusedregisters(pushed,$ff);
|
||||||
@ -455,6 +456,19 @@ implementation
|
|||||||
dummycoll.data:=openshortstringdef
|
dummycoll.data:=openshortstringdef
|
||||||
else
|
else
|
||||||
dummycoll.data:=hp^.resulttype;
|
dummycoll.data:=hp^.resulttype;
|
||||||
|
case pstringdef(hp^.resulttype)^.string_typ of
|
||||||
|
st_widestring:
|
||||||
|
procedureprefix:='FPC_STRWIDE_';
|
||||||
|
|
||||||
|
st_ansistring:
|
||||||
|
procedureprefix:='FPC_STRANSI_';
|
||||||
|
|
||||||
|
st_shortstring:
|
||||||
|
procedureprefix:='FPC_STR_';
|
||||||
|
|
||||||
|
st_longstring:
|
||||||
|
procedureprefix:='FPC_STRLONG_';
|
||||||
|
end;
|
||||||
secondcallparan(hp,@dummycoll,false,false,0);
|
secondcallparan(hp,@dummycoll,false,false,0);
|
||||||
if codegenerror then
|
if codegenerror then
|
||||||
exit;
|
exit;
|
||||||
@ -516,20 +530,20 @@ implementation
|
|||||||
exit;
|
exit;
|
||||||
|
|
||||||
if is_real then
|
if is_real then
|
||||||
emitcall('FPC_STR_'+float_name[pfloatdef(hp^.resulttype)^.typ],true)
|
emitcall(procedureprefix++float_name[pfloatdef(hp^.resulttype)^.typ],true)
|
||||||
else
|
else
|
||||||
case porddef(hp^.resulttype)^.typ of
|
case porddef(hp^.resulttype)^.typ of
|
||||||
u32bit:
|
u32bit:
|
||||||
emitcall('FPC_STR_CARDINAL',true);
|
emitcall(procedureprefix+'CARDINAL',true);
|
||||||
|
|
||||||
u64bit:
|
u64bit:
|
||||||
emitcall('FPC_STR_QWORD',true);
|
emitcall(procedureprefix+'QWORD',true);
|
||||||
|
|
||||||
s64bitint:
|
s64bitint:
|
||||||
emitcall('FPC_STR_INT64',true);
|
emitcall(procedureprefix+'INT64',true);
|
||||||
|
|
||||||
else
|
else
|
||||||
emitcall('FPC_STR_LONGINT',true);
|
emitcall(procedureprefix+'LONGINT',true);
|
||||||
end;
|
end;
|
||||||
popusedregisters(pushed);
|
popusedregisters(pushed);
|
||||||
end;
|
end;
|
||||||
@ -990,7 +1004,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.22 1998-12-11 23:36:07 florian
|
Revision 1.23 1999-01-06 12:23:29 florian
|
||||||
|
* str(...) for ansi/long and widestrings fixed
|
||||||
|
|
||||||
|
Revision 1.22 1998/12/11 23:36:07 florian
|
||||||
+ again more stuff for int64/qword:
|
+ again more stuff for int64/qword:
|
||||||
- comparision operators
|
- comparision operators
|
||||||
- code generation for: str, read(ln), write(ln)
|
- code generation for: str, read(ln), write(ln)
|
||||||
|
Loading…
Reference in New Issue
Block a user