* fix insert_typeconv to handle new varargs which don't have a

paraitem set
This commit is contained in:
peter 2003-04-22 09:53:33 +00:00
parent 0e0a581230
commit 8edbb7afed

View File

@ -607,9 +607,6 @@ type
begin begin
inc(parsing_para_level); inc(parsing_para_level);
if not assigned(paraitem) then
internalerror(200104261);
{$ifdef extdebug} {$ifdef extdebug}
if do_count then if do_count then
begin begin
@ -623,19 +620,21 @@ type
{ Handle varargs and hidden paras directly, no typeconvs or } { Handle varargs and hidden paras directly, no typeconvs or }
{ typechecking needed } { typechecking needed }
if (nf_varargs_para in flags) or if (nf_varargs_para in flags) then
(paraitem.paratyp = vs_hidden) then begin
{ convert pascal to C types }
case left.resulttype.def.deftype of
stringdef :
inserttypeconv(left,charpointertype);
floatdef :
inserttypeconv(left,s64floattype);
end;
set_varstate(left,true);
resulttype:=left.resulttype;
end
else
if (paraitem.paratyp = vs_hidden) then
begin begin
if (paraitem.paratyp <> vs_hidden) then
begin
{ convert pascal to C types }
case left.resulttype.def.deftype of
stringdef :
inserttypeconv(left,charpointertype);
floatdef :
inserttypeconv(left,s64floattype);
end;
end;
set_varstate(left,true); set_varstate(left,true);
resulttype:=left.resulttype; resulttype:=left.resulttype;
end end
@ -1681,6 +1680,7 @@ type
if assigned(pt) then if assigned(pt) then
aktfilepos:=pt.fileinfo; aktfilepos:=pt.fileinfo;
CGMessage(parser_e_wrong_parameter_size); CGMessage(parser_e_wrong_parameter_size);
goto errorexit;
end; end;
end end
else else
@ -2372,7 +2372,11 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.137 2003-04-11 16:02:05 peter Revision 1.138 2003-04-22 09:53:33 peter
* fix insert_typeconv to handle new varargs which don't have a
paraitem set
Revision 1.137 2003/04/11 16:02:05 peter
* don't firstpass typen * don't firstpass typen
Revision 1.136 2003/04/11 15:51:04 peter Revision 1.136 2003/04/11 15:51:04 peter