mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 10:39:40 +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_string_to_chararray : tnode;virtual;
 | 
			
		||||
          function first_char_to_string : tnode;virtual;
 | 
			
		||||
          function first_char_to_chararray : tnode; virtual;
 | 
			
		||||
          function first_nothing : tnode;virtual;
 | 
			
		||||
          function first_array_to_pointer : tnode;virtual;
 | 
			
		||||
          function first_int_to_real : tnode;virtual;
 | 
			
		||||
@ -163,6 +164,7 @@ interface
 | 
			
		||||
          function _first_cstring_to_int : tnode;
 | 
			
		||||
          function _first_string_to_chararray : tnode;
 | 
			
		||||
          function _first_char_to_string : tnode;
 | 
			
		||||
          function _first_char_to_chararray : tnode;
 | 
			
		||||
          function _first_nothing : tnode;
 | 
			
		||||
          function _first_array_to_pointer : tnode;
 | 
			
		||||
          function _first_int_to_real : tnode;
 | 
			
		||||
@ -1277,16 +1279,7 @@ implementation
 | 
			
		||||
 | 
			
		||||
    function ttypeconvnode.typecheck_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;
 | 
			
		||||
        result:=nil;
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2825,6 +2818,22 @@ implementation
 | 
			
		||||
      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;
 | 
			
		||||
      begin
 | 
			
		||||
         first_nothing:=nil;
 | 
			
		||||
@ -3334,6 +3343,11 @@ implementation
 | 
			
		||||
         result:=first_char_to_string;
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
    function ttypeconvnode._first_char_to_chararray: tnode;
 | 
			
		||||
      begin
 | 
			
		||||
        result:=first_char_to_chararray;
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
    function ttypeconvnode._first_nothing : tnode;
 | 
			
		||||
      begin
 | 
			
		||||
         result:=first_nothing;
 | 
			
		||||
@ -3433,7 +3447,7 @@ implementation
 | 
			
		||||
           @ttypeconvnode._first_nothing, {not_possible}
 | 
			
		||||
           @ttypeconvnode._first_string_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 }
 | 
			
		||||
           @ttypeconvnode._first_cchar_to_pchar,
 | 
			
		||||
           @ttypeconvnode._first_cstring_to_pchar,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user