mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-09 19:39:51 +01:00
* moved transformation of char-to-chararray type conversion into helpers
to first pass, fixes tbf/tb0215 git-svn-id: trunk@21846 -
This commit is contained in:
parent
27f342225a
commit
99c22b87c1
@ -134,6 +134,7 @@ interface
|
|||||||
function first_cstring_to_int : tnode;virtual;
|
function first_cstring_to_int : tnode;virtual;
|
||||||
function first_string_to_chararray : tnode;virtual;
|
function first_string_to_chararray : tnode;virtual;
|
||||||
function first_char_to_string : tnode;virtual;
|
function first_char_to_string : tnode;virtual;
|
||||||
|
function first_char_to_chararray : tnode; virtual;
|
||||||
function first_nothing : tnode;virtual;
|
function first_nothing : tnode;virtual;
|
||||||
function first_array_to_pointer : tnode;virtual;
|
function first_array_to_pointer : tnode;virtual;
|
||||||
function first_int_to_real : tnode;virtual;
|
function first_int_to_real : tnode;virtual;
|
||||||
@ -163,6 +164,7 @@ interface
|
|||||||
function _first_cstring_to_int : tnode;
|
function _first_cstring_to_int : tnode;
|
||||||
function _first_string_to_chararray : tnode;
|
function _first_string_to_chararray : tnode;
|
||||||
function _first_char_to_string : tnode;
|
function _first_char_to_string : tnode;
|
||||||
|
function _first_char_to_chararray : tnode;
|
||||||
function _first_nothing : tnode;
|
function _first_nothing : tnode;
|
||||||
function _first_array_to_pointer : tnode;
|
function _first_array_to_pointer : tnode;
|
||||||
function _first_int_to_real : tnode;
|
function _first_int_to_real : tnode;
|
||||||
@ -1277,16 +1279,7 @@ implementation
|
|||||||
|
|
||||||
function ttypeconvnode.typecheck_char_to_chararray : tnode;
|
function ttypeconvnode.typecheck_char_to_chararray : tnode;
|
||||||
begin
|
begin
|
||||||
if resultdef.size <> 1 then
|
result:=nil;
|
||||||
begin
|
|
||||||
{ convert first to string, then to chararray }
|
|
||||||
inserttypeconv(left,cshortstringtype);
|
|
||||||
inserttypeconv(left,resultdef);
|
|
||||||
result:=left;
|
|
||||||
left := nil;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
result := nil;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -2825,6 +2818,22 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function ttypeconvnode.first_char_to_chararray : tnode;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if resultdef.size <> 1 then
|
||||||
|
begin
|
||||||
|
{ convert first to string, then to chararray }
|
||||||
|
inserttypeconv(left,cshortstringtype);
|
||||||
|
inserttypeconv(left,resultdef);
|
||||||
|
result:=left;
|
||||||
|
left := nil;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
result := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function ttypeconvnode.first_nothing : tnode;
|
function ttypeconvnode.first_nothing : tnode;
|
||||||
begin
|
begin
|
||||||
first_nothing:=nil;
|
first_nothing:=nil;
|
||||||
@ -3334,6 +3343,11 @@ implementation
|
|||||||
result:=first_char_to_string;
|
result:=first_char_to_string;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ttypeconvnode._first_char_to_chararray: tnode;
|
||||||
|
begin
|
||||||
|
result:=first_char_to_chararray;
|
||||||
|
end;
|
||||||
|
|
||||||
function ttypeconvnode._first_nothing : tnode;
|
function ttypeconvnode._first_nothing : tnode;
|
||||||
begin
|
begin
|
||||||
result:=first_nothing;
|
result:=first_nothing;
|
||||||
@ -3433,7 +3447,7 @@ implementation
|
|||||||
@ttypeconvnode._first_nothing, {not_possible}
|
@ttypeconvnode._first_nothing, {not_possible}
|
||||||
@ttypeconvnode._first_string_to_string,
|
@ttypeconvnode._first_string_to_string,
|
||||||
@ttypeconvnode._first_char_to_string,
|
@ttypeconvnode._first_char_to_string,
|
||||||
@ttypeconvnode._first_nothing, { char_2_chararray, needs nothing extra }
|
@ttypeconvnode._first_char_to_chararray,
|
||||||
nil, { removed in typecheck_chararray_to_string }
|
nil, { removed in typecheck_chararray_to_string }
|
||||||
@ttypeconvnode._first_cchar_to_pchar,
|
@ttypeconvnode._first_cchar_to_pchar,
|
||||||
@ttypeconvnode._first_cstring_to_pchar,
|
@ttypeconvnode._first_cstring_to_pchar,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user