2.7.2 compiler

Wed, 23 Oct 1996 14:30:48 +1000 (EST)


Ran binary distribution 2.7.2 elf format compiler on three files which
compile cleanly on 2.6.3. Each time gpc1 failed with segmentation fault in

        comp_object_pointer_types ()

but with dissimilar record structures being compared.=20

Here is gdb trace of one failure - file is 20000 lines, failure at 8000=
 lines

>er_end_main Away Away_or_both Towards_or_both Towards Direq Single_direq
Makelist Makelistup Duplicate_list Duplicate_node Getnumvalue Getlists
Makelistx Makesave Getxset Getxset_from_listarr Find_create_var
Add_inconsistency Check_inconsistency Setfalsevar Check_where Partset
Makepossle Equalxset Compare_members Compare_lists Listequality
String_equality Test_equality Attach_link Patmatch Mesg Ztrim Subs2 Subs3
All_numeric Bnch Bran Create_operator New_link Cut_link Findsubhead
Create_sub Buildsub Writej Plusminus Makeset Setpoints Getnum Debug_state
Listkill Add_mber_to_list Solution Undoable Remove_member_from_list
Add_delete_list Goal Add_data Cleaned_path Add_search Add_variable
Highsearch Check_searcFirst_rec New_job_rec First New_job Remove
Remove_shuffle Remove_q Remove_search Remove_data Pointing Point_link
Pointed_at Setconsistentlink A_link_job Get_link Clear Remove_entry
Clear_obsolete Killdata Next_job Killlist Kill_entry Kill_inference
Kill_invoc Kill_branch Check_level Adush Check_path Check_out Check_any
Check_zero Rate_action List_unlink Breaklink Destroy_constant_list Kill_fun2
Kill_fun3 Another Kill_externalhange_environment Clear_environment Killnet
Add_clean Purge_cleanjob_of Add_match Nosearch Cleanupjobs Cleanup Cleanvar
Setlinkdata Linksearch t_first_link Uke_out Check_list Link_open Path_open
Deadend Reconnoitre Check_paths Contingency_plan Check_tuf Search_for_link
Getrange Setvarfmlink Build_list Same_pred Side_link Funcop Symmetric
Searches_in Equality Valid Find_search_in Search_in Find_info Revive
Start_up_job Clean_uDo_cleaning Find_link Traverse_network Mirror_image Nan
Shortnan Pushdata Find_environment Purge_search Gettrueset Unsetlist
Readfilename Read_ion_list Next_nextch Getchar Skipblanks Lex_string Lex_id
>Program received signal SIGSEGV, Segmentation fault.
>0x8011c33 in comp_object_pointer_types (lhs=3D0x817b3e4, rhs=3D0x8590dc0)=
 at
gpc-typeck.c:626
>626         for (r =3D rhs; r; r =3D TYPE_LANG_SPECIFIC (r)->elts [1])
>(gdb) l
>621          tree lhs, rhs;
>622     {
>623       register tree r;
>624       if (TREE_CODE (lhs) =3D=3D RECORD_TYPE
>625           && TREE_CODE (rhs) =3D=3D RECORD_TYPE)
>626         for (r =3D rhs; r; r =3D TYPE_LANG_SPECIFIC (r)->elts [1])
>627           {
>628             if (comptypes (lhs, r))
>629               return 1;
>630           }
>(gdb) p r
>$1 =3D (union tree_node *) 0x8590dc0
>(gdb) p rhs
>$2 =3D (union tree_node *) 0x0
>(gdb) p lhs
>$3 =3D (union tree_node *) 0x817b3e4
>(gdb) where
>#0  0x8011c33 in comp_object_pointer_types (lhs=3D0x817b3e4, rhs=3D0x8590dc=
0)
at gpc-typeck.c:626
>#1  0x8016e76 in convert_for_assignment (type=3D0x8208ac8, rhs=3D0x859b31c,
errtype=3D0x0, fundecl=3D0x817b9f0, funname=3D0x8178e20, parmnum=3D1)
>    at gpc-typeck.c:4960
>#2  0x80139ae in convert_arguments (typelist=3D0x817b90c, values=3D0x859b2f=
4,
name=3D0x8178e20, fundecl=3D0x817b9f0) at gpc-typeck.c:2359

The record being compared, and the offending function

>procedure read_orion_list(fs: string300; transient: Boolean;
>                   anchor: net_index; var ls:logstate);
>label
>  error_exit; (* When abandoning hope *)
>const
>  maxlevels =3D 50; (* Maximum depth of lists within lists *)
>  max_string =3D 63; (* maximum length identifier string *)
>type
>  symtype =3D (uninit, curly_left, curly_right, lit_string, comma,
>	     number, logcon, identifier, endfile, dot_dot, from_to,
>	     maybe,ellip);
>  lexical_symbol =3D record
>               case sym: symtype of
>		 lit_string: (str_val: string(maxstring));
>		 number:     (val: real);
>                 logcon:     (log: logstate);
>		 identifier: (name: string(max_string); id_type: ltype;
>			      use: usage);
>  end; (* lexical_symbol *)
>
>var
>    edfile:      text;      (* File to read from *)
>    b : BindingType;
>    string_pp:    integer;   (* position in command *)
>    file_io:     Boolean;   (* Reading from file? *)
>    readlist_nextch:      char;      (* next input char *)
>    eoln1,
>    eof1:        Boolean;
>    s1 :         string300;
>
>    s2,s3:    string(maxstring); (* used for opening file *)
>    i,
>    max1:        integer;
>    set1:        listarr;
>    prevprevsym,
>    prevsym,
>    now_sym,
>    nextsym:     lexical_symbol;
>    filebuf: string(maxlinelen);
>
>function next_nextch(far:integer;file_or_string:boolean): char;
>(* Returns character beyond nextch *)
>var ch,nnch:char;
>begin
>  if file_or_string
>  then begin
>    if length(filebuf) < far
>    then nnch :=3D ' '
>    else nnch :=3D filebuf[far];
>  end
>  else begin
>    if string_pp+far > length(system_data.p^.command)
>    then nnch :=3D ' '
>    else begin
>       ch :=3D system_data.p^.command[string_pp+far];
>       if ch =3D chr(10)
>	then nnch :=3D ' '
>	else nnch :=3D ch;
>    end;
>  end;
>next_nextch :=3D nnch;
>end; (* func next_nextch *)
>
>procedure getchar(file_or_string:boolean);
>(* input is managed by this routine, and the following variables:
> * file_io, edfile, system_data.p^.command, nextch, eoln1, eof1.
> *)
>begin
>while true do begin
>  if file_or_string
>  then begin
>    if filebuf =3D ''
>    then begin
>      if eoln1
>      then begin
>        if eof(edfile)
>        then begin eof1 :=3D true; readlist_nextch :=3D ' '; eoln1 :=3D=
 false; end
>        else begin
>          readln(edfile, filebuf); eoln1 :=3D false;
>          filebuf :=3D trim(ztrim(filebuf));
>          continue;
>        end
>      end
>      else begin
>        eoln1 :=3D true; readlist_nextch :=3D ' ';
>      end
>    end
>    else begin (* filebuf <> '' *)
>      readlist_nextch :=3D filebuf[1];
>      filebuf :=3D delete(filebuf, 1, 1);
>    end;
>  end
>  else begin
>    string_pp :=3D string_pp + 1;
>    if string_pp > length(system_data.p^.command)
>    then begin
>      readlist_nextch :=3D ' ';
>      if eoln1
>      then begin
>          eoln1 :=3D false; eof1:=3D true;
>      end
>      else eoln1 :=3D true;
>    end
>    else begin
>	   readlist_nextch :=3D system_data.p^.command[string_pp];
>	   if readlist_nextch =3D chr(10)
>	    then begin
>		   eoln1 :=3D true;readlist_nextch :=3D ' ';
>		 end
>	    else eoln1 :=3D false;
>	 end;
>  end;
> break;
>end; { while true }
>end; (* proc getchar *)
>
>  procedure skipblanks;
>  const
>    blank =3D  ' ';
>    exclam =3D '!';
>  begin  (* skip blanks and comments in edfile *)
>    while not eoln1 and_then not eof1 and_then
>      ((readlist_nextch =3D blank) or_else (readlist_nextch =3D exclam)) do
>      if readlist_nextch =3D exclam
>      then repeat getchar(file_io)
>           until eoln1
>      else getchar(file_io);
>  end;
>
>  procedure lex_string;
>  var
>    termch: char;
>  begin
>    with nextsym do begin
>     termch :=3D readlist_nextch; getchar(file_io);
>     sym :=3D lit_string; str_val :=3D '';
>     while not eoln1 and_then (readlist_nextch <> termch) and_then
>            (length(str_val) < maxstring) do begin
>       str_val :=3D str_val + readlist_nextch;
>       getchar(file_io);
>     end;
>     if readlist_nextch =3D termch
>     then getchar(file_io)
>     else begin status :=3D 818; goto error_exit; (* fast escape *) end;
>   end
> end; (* proc lex_string *)
>
>  procedure lex_id;
>  const
>    max_name =3D 31;
>  var s:string(80);
>  begin
>    with nextsym do begin
>      name :=3D '';
>      sym :=3D identifier;
>      use :=3D normal;
>      while (readlist_nextch in alphanumund) and_then
>           (length(name) < max_name) do begin
>	name :=3D name + readlist_nextch; getchar(file_io);
>      end;
>      if (readlist_nextch in ['?', '$', '%', '@'])
>      then begin
>        if length(name) < max_name
>        then begin
>          case readlist_nextch of
>            '?': id_type :=3D multi;
>	    '$': id_type :=3D string_p;
>	    '%': id_type :=3D list_p;
>            '@': id_type :=3D logical;
>          end; (* esac *)
>	  name :=3D name + readlist_nextch; getchar(file_io);
>        end
>        else begin status :=3D 857; goto error_exit; end;
>      end
>      else id_type :=3D numeric; (* move from end of routine *)
>      s :=3D name;
>      uppercaseproc(s);
>      if (readlist_nextch in ['a'..'z','A'..'Z','_']) (* too long *)
>       or_else (s =3D 'NYK')
>       then begin status :=3D 862; goto error_exit; end;
>      if (s =3D 'TRUE') or_else (s =3D 'FALSE') or_else (s =3D 'UKE')
>           or_else (s =3D 'ERROR')
>      then begin
>	log :=3D logstate(index('UEFT', substr(s, 1, 1)));
>        sym :=3D logcon;
>      end;
>    end; (* with *)
>  end; (* proc lex_id *)


Another trace, from compiling another file with a different record structure
being compared

>Starting program: /tmp/gpc1 externfunc.i
>
>Program received signal SIGSEGV, Segmentation fault.
>0x8011c33 in comp_object_pointer_types (lhs=3D0x817ab08, rhs=3D0x817af64)
>    at gpc-typeck.c:626
>626	    for (r =3D rhs; r; r =3D TYPE_LANG_SPECIFIC (r)->elts [1])
>(gdb) where
>#0  0x8011c33 in comp_object_pointer_types (lhs=3D0x817ab08, rhs=3D0x817af6=
4)
>    at gpc-typeck.c:626
>#1  0x8016e76 in convert_for_assignment (type=3D0x8a060b4, rhs=3D0x8a05e54,=
=20
>    errtype=3D0x0, fundecl=3D0x822cd78, funname=3D0x822caa4, parmnum=3D2)
>    at gpc-typeck.c:4960
>#2  0x80139ae in convert_arguments (typelist=3D0x822cc80, values=3D0x8a05e4=
0,=20
>    name=3D0x822caa4, fundecl=3D0x822cd78) at gpc-typeck.c:2359
>#3  0x8013244 in build_function_call (function=3D0x822cd78,=
 params=3D0x8a05e40)
>    at gpc-typeck.c:1896
>#4  0x8007223 in yyparse () at ../gpc-1.2-2.7.2/gpc-parse.y:4364
>#5  0x805ab6e in compile_file (name=3D0xbffffe61 "externfunc.i")
>    at ./toplev.c:2288
>#6  0x805d25d in main (argc=3D2, argv=3D0xbffffda4, envp=3D0xbffffdb0)
>    at ./toplev.c:3977
>#7  0x800126b in _start ()
>(gdb) up 1
>#1  0x8016e76 in convert_for_assignment (type=3D0x8a060b4, rhs=3D0x8a05e54,=
=20
>    errtype=3D0x0, fundecl=3D0x822cd78, funname=3D0x822caa4, parmnum=3D2)
>    at gpc-typeck.c:4960
>4960	      if (TYPE_MAIN_VARIANT (ttl) =3D=3D void_type_node
>(gdb) p *funname
>$1 =3D {common =3D {chain =3D 0x818f334, type =3D 0x0, code =3D=
 IDENTIFIER_NODE,=20
>    side_effects_flag =3D 0, constant_flag =3D 0, permanent_flag =3D 1,=20
>    addressable_flag =3D 0, volatile_flag =3D 0, readonly_flag =3D 0,=20
>    unsigned_flag =3D 0, asm_written_flag =3D 0, used_flag =3D 0,=
 raises_flag =3D 0,=20
>    static_flag =3D 0, public_flag =3D 1, private_flag =3D 0,=
 protected_flag =3D 0,=20
>    lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 =
=3D 0,=20
>    lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0}, int_cst =3D {
>    common =3D "4 \030\b\000\000\000\000\001\004\b", int_cst_low =3D 13,=20
>    int_cst_high =3D 136497872}, real_cst =3D {
>    common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D 0xd, real_cst=
 =3D {r =3D {
>        136497872, 136498552, 0}}}, string =3D {
>    common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D 0xd,=20
>    length =3D 136497872, pointer =3D 0x822cd78 "  \"\b\024=
 \"\b\035\004\t"},=20
>  complex =3D {common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D=
 0xd,=20
>    real =3D 0x822cad0, imag =3D 0x822cd78}, identifier =3D {
>    common =3D "4 \030\b\000\000\000\000\001\004\b", length =3D 13,=20
>    pointer =3D 0x822cad0 "Dollarsubproc"}, decl =3D {
>    common =3D "4 \030\b\000\000\000\000\001\004\b",=20
>    filename =3D 0xd 
, linenum =3D 136497872,=20 > size =3D 0x822cd78, uid =3D 0, mode =3D VOIDmode, external_flag =3D 0,= =20 > nonlocal_flag =3D 0, regdecl_flag =3D 0, inline_flag =3D 0,= bit_field_flag =3D 0,=20 > virtual_flag =3D 0, ignored_flag =3D 0, abstract_flag =3D 0,=20 > in_system_header_flag =3D 0, common_flag =3D 0, defer_output =3D 0,=20 > transparent_union =3D 0, static_ctor_flag =3D 0, static_dtor_flag =3D= 0,=20 > artificial_flag =3D 0, weak_flag =3D 0, lang_flag_0 =3D 0, lang_flag_1= =3D 0,=20 > lang_flag_2 =3D 0, lang_flag_3 =3D 0, lang_flag_4 =3D 0, lang_flag_5 = =3D 0,=20 > lang_flag_6 =3D 0, lang_flag_7 =3D 0, name =3D 0x0, context =3D 0x0,=20 > arguments =3D 0x0, result =3D 0x6c6c6f44, initial =3D 0x75737261,=20 > abstract_origin =3D 0x6f727062, assembler_name =3D 0x63, section_name = =3D 0x0,=20 > machine_attributes =3D 0x0, rtl =3D 0x403, frame_size =3D {i =3D 0, u = =3D 0,=20 > f =3D NOT_BUILT_IN}, saved_insns =3D {r =3D 0x817bdf4, i =3D= 135773684},=20 > vindex =3D 0x0, lang_specific =3D 0x0}, type =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", values =3D 0xd,=20 > size =3D 0x822cad0, attributes =3D 0x822cd78, uid =3D 0, precision =3D= 0 '\000',=20 > mode =3D VOIDmode, string_flag =3D 0, no_force_blk_flag =3D 0,=20 > needs_constructing_flag =3D 0, transparent_union_flag =3D 0,= packed_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0, align =3D 0,= =20 > pointer_to =3D 0x0, reference_to =3D 0x0, symtab =3D {address =3D= 1819045700,=20 > pointer =3D 0x6c6c6f44 ""}, name =3D 0x75737261, minval =3D= 0x6f727062,=20 > maxval =3D 0x63, next_variant =3D 0x0, main_variant =3D 0x0, binfo =3D= 0x403,=20 > noncopied_parts =3D 0x0, context =3D 0x817bdf4, obstack =3D 0x0,=20 > lang_specific =3D 0x0}, list =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", purpose =3D 0xd,=20 > value =3D 0x822cad0}, vec =3D {common =3D "4= \030\b\000\000\000\000\001\004\b",=20 > length =3D 13, a =3D {0x822cad0}}, exp =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", complexity =3D 13,=20 > operands =3D {0x822cad0}}, block =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", handler_block_flag =3D= 1,=20 > abstract_flag =3D 0, vars =3D 0x822cad0, type_tags =3D 0x822cd78,=20 > subblocks =3D 0x0, supercontext =3D 0x0, abstract_origin =3D 0x0,=20 > end_note =3D 0x0}} >(gdb)=20 >$2 =3D {common =3D {chain =3D 0x818f334, type =3D 0x0, code =3D= IDENTIFIER_NODE,=20 > side_effects_flag =3D 0, constant_flag =3D 0, permanent_flag =3D 1,=20 > addressable_flag =3D 0, volatile_flag =3D 0, readonly_flag =3D 0,=20 > unsigned_flag =3D 0, asm_written_flag =3D 0, used_flag =3D 0,= raises_flag =3D 0,=20 > static_flag =3D 0, public_flag =3D 1, private_flag =3D 0,= protected_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0}, int_cst =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", int_cst_low =3D 13,=20 > int_cst_high =3D 136497872}, real_cst =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D 0xd, real_cst= =3D {r =3D { > 136497872, 136498552, 0}}}, string =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D 0xd,=20 > length =3D 136497872, pointer =3D 0x822cd78 " \"\b\024= \"\b\035\004\t"},=20 > complex =3D {common =3D "4 \030\b\000\000\000\000\001\004\b", rtl =3D= 0xd,=20 > real =3D 0x822cad0, imag =3D 0x822cd78}, identifier =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", length =3D 13,=20 > pointer =3D 0x822cad0 "Dollarsubproc"}, decl =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b",=20 > filename =3D 0xd
, linenum =3D 136497872,=20 > size =3D 0x822cd78, uid =3D 0, mode =3D VOIDmode, external_flag =3D 0,= =20 > nonlocal_flag =3D 0, regdecl_flag =3D 0, inline_flag =3D 0,= bit_field_flag =3D 0,=20 > virtual_flag =3D 0, ignored_flag =3D 0, abstract_flag =3D 0,=20 > in_system_header_flag =3D 0, common_flag =3D 0, defer_output =3D 0,=20 > transparent_union =3D 0, static_ctor_flag =3D 0, static_dtor_flag =3D= 0,=20 > artificial_flag =3D 0, weak_flag =3D 0, lang_flag_0 =3D 0, lang_flag_1= =3D 0,=20 > lang_flag_2 =3D 0, lang_flag_3 =3D 0, lang_flag_4 =3D 0, lang_flag_5 = =3D 0,=20 > lang_flag_6 =3D 0, lang_flag_7 =3D 0, name =3D 0x0, context =3D 0x0,=20 > arguments =3D 0x0, result =3D 0x6c6c6f44, initial =3D 0x75737261,=20 > abstract_origin =3D 0x6f727062, assembler_name =3D 0x63, section_name = =3D 0x0,=20 > machine_attributes =3D 0x0, rtl =3D 0x403, frame_size =3D {i =3D 0, u = =3D 0,=20 > f =3D NOT_BUILT_IN}, saved_insns =3D {r =3D 0x817bdf4, i =3D= 135773684},=20 > vindex =3D 0x0, lang_specific =3D 0x0}, type =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", values =3D 0xd,=20 > size =3D 0x822cad0, attributes =3D 0x822cd78, uid =3D 0, precision =3D= 0 '\000',=20 > mode =3D VOIDmode, string_flag =3D 0, no_force_blk_flag =3D 0,=20 > needs_constructing_flag =3D 0, transparent_union_flag =3D 0,= packed_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0, align =3D 0,= =20 > pointer_to =3D 0x0, reference_to =3D 0x0, symtab =3D {address =3D= 1819045700,=20 > pointer =3D 0x6c6c6f44 ""}, name =3D 0x75737261, minval =3D= 0x6f727062,=20 > maxval =3D 0x63, next_variant =3D 0x0, main_variant =3D 0x0, binfo =3D= 0x403,=20 > noncopied_parts =3D 0x0, context =3D 0x817bdf4, obstack =3D 0x0,=20 > lang_specific =3D 0x0}, list =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", purpose =3D 0xd,=20 > value =3D 0x822cad0}, vec =3D {common =3D "4= \030\b\000\000\000\000\001\004\b",=20 > length =3D 13, a =3D {0x822cad0}}, exp =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", complexity =3D 13,=20 > operands =3D {0x822cad0}}, block =3D { > common =3D "4 \030\b\000\000\000\000\001\004\b", handler_block_flag =3D= 1,=20 > abstract_flag =3D 0, vars =3D 0x822cad0, type_tags =3D 0x822cd78,=20 > subblocks =3D 0x0, supercontext =3D 0x0, abstract_origin =3D 0x0,=20 > end_note =3D 0x0}} >(gdb) p *fundecl >$3 =3D {common =3D {chain =3D 0x822c9f0, type =3D 0x822cd14, code =3D= FUNCTION_DECL,=20 > side_effects_flag =3D 0, constant_flag =3D 0, permanent_flag =3D 1,=20 > addressable_flag =3D 0, volatile_flag =3D 0, readonly_flag =3D 0,=20 > unsigned_flag =3D 0, asm_written_flag =3D 0, used_flag =3D 1,= raises_flag =3D 0,=20 > static_flag =3D 0, public_flag =3D 1, private_flag =3D 0,= protected_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0}, int_cst =3D { > common =3D " \"\b\024 \"\b\035\004\t", int_cst_low =3D 135759440,=20 > int_cst_high =3D 8539}, real_cst =3D {common =3D " \"\b\024= \"\b\035\004\t",=20 > rtl =3D 0x8178650, real_cst =3D {r =3D {8539, 0, 2549}}}, string =3D { > common =3D " \"\b\024 \"\b\035\004\t", rtl =3D 0x8178650, length =3D= 8539,=20 > pointer =3D 0x0}, complex =3D {common =3D " \"\b\024 \"\b\035\004\t",= =20 > rtl =3D 0x8178650, real =3D 0x215b, imag =3D 0x0}, identifier =3D { > common =3D " \"\b\024 \"\b\035\004\t", length =3D 135759440,=20 > pointer =3D 0x215b
}, decl =3D { > common =3D " \"\b\024 \"\b\035\004\t",=20 > filename =3D 0x8178650 "externfunc.pas", linenum =3D 8539, size =3D= 0x0,=20 > uid =3D 2549, mode =3D QImode, external_flag =3D 1, nonlocal_flag =3D= 0,=20 > regdecl_flag =3D 0, inline_flag =3D 0, bit_field_flag =3D 0,= virtual_flag =3D 0,=20 > ignored_flag =3D 0, abstract_flag =3D 0, in_system_header_flag =3D 0,= =20 > common_flag =3D 1, defer_output =3D 0, transparent_union =3D 0,=20 > static_ctor_flag =3D 0, static_dtor_flag =3D 0, artificial_flag =3D 0,= =20 > weak_flag =3D 0, lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D= 0,=20 > lang_flag_3 =3D 0, lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 = =3D 0,=20 > lang_flag_7 =3D 0, name =3D 0x822caa4, context =3D 0x0, arguments =3D= 0x0,=20 > result =3D 0x0, initial =3D 0x0, abstract_origin =3D 0x0,=20 > assembler_name =3D 0x822cde0, section_name =3D 0x0, machine_attributes= =3D 0x0,=20 > rtl =3D 0x822ce24, frame_size =3D {i =3D 0, u =3D 0, f =3D= NOT_BUILT_IN},=20 > saved_insns =3D {r =3D 0x0, i =3D 0}, vindex =3D 0x0, lang_specific =3D= 0x89fda98},=20 > type =3D {common =3D " \"\b\024 \"\b\035\004\t", values =3D 0x8178650,= =20 > size =3D 0x215b, attributes =3D 0x0, uid =3D 2549, precision =3D 1= '\001',=20 > mode =3D QImode, string_flag =3D 0, no_force_blk_flag =3D 1,=20 > needs_constructing_flag =3D 0, transparent_union_flag =3D 0,= packed_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0, align =3D= 136497828,=20 > pointer_to =3D 0x0, reference_to =3D 0x0, symtab =3D {address =3D 0,=20 > pointer =3D 0x0}, name =3D 0x0, minval =3D 0x0, maxval =3D 0x822cde0,= =20 > next_variant =3D 0x0, main_variant =3D 0x0, binfo =3D 0x822ce24,=20 > noncopied_parts =3D 0x0, context =3D 0x0, obstack =3D 0x0,=20 > lang_specific =3D 0x89fda98}, list =3D {common =3D " \"\b\024= \"\b\035\004\t",=20 > purpose =3D 0x8178650, value =3D 0x215b}, vec =3D { > common =3D " \"\b\024 \"\b\035\004\t", length =3D 135759440, a =3D= {0x215b}},=20 > exp =3D {common =3D " \"\b\024 \"\b\035\004\t", complexity =3D= 135759440,=20 > operands =3D {0x215b}}, block =3D {common =3D " \"\b\024= \"\b\035\004\t",=20 > handler_block_flag =3D 0, abstract_flag =3D 0, vars =3D 0x215b,= type_tags =3D 0x0,=20 > subblocks =3D 0x9f5, supercontext =3D 0x20101, abstract_origin =3D= 0x822caa4,=20 > end_note =3D 0x0}} >(gdb) p *rhs >$4 =3D {common =3D {chain =3D 0x0, type =3D 0x825b390, code =3D= CONVERT_EXPR,=20 > side_effects_flag =3D 0, constant_flag =3D 0, permanent_flag =3D 1,=20 > addressable_flag =3D 0, volatile_flag =3D 0, readonly_flag =3D 0,=20 > unsigned_flag =3D 0, asm_written_flag =3D 0, used_flag =3D 0,= raises_flag =3D 0,=20 > static_flag =3D 0, public_flag =3D 0, private_flag =3D 0,= protected_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0}, int_cst =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", int_cst_low =3D 0,=20 > int_cst_high =3D 136644252}, real_cst =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", rtl =3D 0x0, real_cst = =3D {r =3D { > 136644252, 0, 135769552}}}, string =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", rtl =3D 0x0,=20 > length =3D 136644252, pointer =3D 0x0}, complex =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", rtl =3D 0x0, real =3D= 0x825069c,=20 > imag =3D 0x0}, identifier =3D {common =3D "\000\000\000\000\220= %\bi\004\000",=20 > length =3D 0, pointer =3D 0x825069c "=E1\a%\b \005%\b\"L\001"}, decl = =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", filename =3D 0x0,=20 > linenum =3D 136644252, size =3D 0x0, uid =3D 135769552, mode =3D 39,=20 > external_flag =3D 0, nonlocal_flag =3D 0, regdecl_flag =3D 1,= inline_flag =3D 0,=20 > bit_field_flag =3D 0, virtual_flag =3D 0, ignored_flag =3D 0,= abstract_flag =3D 0,=20 > in_system_header_flag =3D 0, common_flag =3D 0, defer_output =3D 0,=20 > transparent_union =3D 0, static_ctor_flag =3D 0, static_dtor_flag =3D= 0,=20 > artificial_flag =3D 0, weak_flag =3D 0, lang_flag_0 =3D 0, lang_flag_1= =3D 0,=20 > lang_flag_2 =3D 0, lang_flag_3 =3D 0, lang_flag_4 =3D 0, lang_flag_5 = =3D 0,=20 > lang_flag_6 =3D 0, lang_flag_7 =3D 0, name =3D 0x0, context =3D= 0x8a05e54,=20 > arguments =3D 0x0, result =3D 0x0, initial =3D 0x403, abstract_origin = =3D 0x0,=20 > assembler_name =3D 0x8a05e68, section_name =3D 0x0,=20 > machine_attributes =3D 0x822cd14, rtl =3D 0x440d, frame_size =3D {i =3D= 0, u =3D 0,=20 > f =3D NOT_BUILT_IN}, saved_insns =3D {r =3D 0x815aa68, i =3D= 135637608},=20 > vindex =3D 0x0, lang_specific =3D 0x906}, type =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", values =3D 0x0,=20 > size =3D 0x825069c, attributes =3D 0x0, uid =3D 135769552, precision = =3D 39 '\'',=20 > mode =3D SImode, string_flag =3D 0, no_force_blk_flag =3D 0,=20 > needs_constructing_flag =3D 0, transparent_union_flag =3D 0,= packed_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0, align =3D 0,= =20 > pointer_to =3D 0x8a05e54, reference_to =3D 0x0, symtab =3D {address =3D= 0,=20 > pointer =3D 0x0}, name =3D 0x403, minval =3D 0x0, maxval =3D= 0x8a05e68,=20 > next_variant =3D 0x0, main_variant =3D 0x822cd14, binfo =3D 0x440d,=20 > noncopied_parts =3D 0x0, context =3D 0x815aa68, obstack =3D 0x0,=20 > lang_specific =3D 0x906}, list =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", purpose =3D 0x0,=20 > value =3D 0x825069c}, vec =3D {common =3D "\000\000\000\000\220= %\bi\004\000",=20 > length =3D 0, a =3D {0x825069c}}, exp =3D { > common =3D "\000\000\000\000\220 %\bi\004\000", complexity =3D 0,= operands =3D { > 0x825069c}}, block =3D {common =3D "\000\000\000\000\220= %\bi\004\000",=20 > handler_block_flag =3D 0, abstract_flag =3D 0, vars =3D 0x825069c,=20 > type_tags =3D 0x0, subblocks =3D 0x817add0, supercontext =3D 0x427,=20 > abstract_origin =3D 0x0, end_note =3D 0x8a05e54}} >(gdb) p *lhs >(gdb)=20 >(gdb) p *type >$5 =3D {common =3D {chain =3D 0x0, type =3D 0x817ab08, code =3D= POINTER_TYPE,=20 > side_effects_flag =3D 0, constant_flag =3D 0, permanent_flag =3D 1,=20 > addressable_flag =3D 0, volatile_flag =3D 0, readonly_flag =3D 0,=20 > unsigned_flag =3D 1, asm_written_flag =3D 0, used_flag =3D 0,= raises_flag =3D 0,=20 > static_flag =3D 0, public_flag =3D 0, private_flag =3D 0,= protected_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0}, int_cst =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", int_cst_low =3D 0,=20 > int_cst_high =3D 135637608}, real_cst =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", rtl =3D 0x0, real_cst= =3D {r =3D { > 135637608, 0, 2311}}}, string =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", rtl =3D 0x0,=20 > length =3D 135637608, pointer =3D 0x0}, complex =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", rtl =3D 0x0, real =3D= 0x815aa68,=20 > imag =3D 0x0}, identifier =3D {common =3D= "\000\000\000\000\b=BD\027\b\rD\000",=20 > length =3D 0, pointer =3D 0x815aa68 ""}, decl =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", filename =3D 0x0,=20 > linenum =3D 135637608, size =3D 0x0, uid =3D 2311, mode =3D 32,= external_flag =3D 0,=20 > nonlocal_flag =3D 0, regdecl_flag =3D 1, inline_flag =3D 0,= bit_field_flag =3D 0,=20 > virtual_flag =3D 0, ignored_flag =3D 0, abstract_flag =3D 0,=20 > in_system_header_flag =3D 0, common_flag =3D 0, defer_output =3D 0,=20 > transparent_union =3D 0, static_ctor_flag =3D 0, static_dtor_flag =3D= 0,=20 > artificial_flag =3D 0, weak_flag =3D 0, lang_flag_0 =3D 0, lang_flag_1= =3D 0,=20 > lang_flag_2 =3D 0, lang_flag_3 =3D 0, lang_flag_4 =3D 0, lang_flag_5 = =3D 0,=20 > lang_flag_6 =3D 0, lang_flag_7 =3D 0, name =3D 0x20, context =3D 0x0,= =20 > arguments =3D 0x0, result =3D 0x0, initial =3D 0x0, abstract_origin =3D= 0x0,=20 > assembler_name =3D 0x0, section_name =3D 0x0, machine_attributes =3D= 0x8a060b4,=20 > rtl =3D 0x0, frame_size =3D {i =3D 0, u =3D 0, f =3D NOT_BUILT_IN},= saved_insns =3D { > r =3D 0x0, i =3D 0}, vindex =3D 0x8151654, lang_specific =3D 0x0},= type =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", values =3D 0x0,=20 > size =3D 0x815aa68, attributes =3D 0x0, uid =3D 2311, precision =3D 32= ' ',=20 > mode =3D SImode, string_flag =3D 0, no_force_blk_flag =3D 0,=20 > needs_constructing_flag =3D 0, transparent_union_flag =3D 0,= packed_flag =3D 0,=20 > lang_flag_0 =3D 0, lang_flag_1 =3D 0, lang_flag_2 =3D 0, lang_flag_3 = =3D 0,=20 > lang_flag_4 =3D 0, lang_flag_5 =3D 0, lang_flag_6 =3D 0, align =3D 32,= =20 > pointer_to =3D 0x0, reference_to =3D 0x0, symtab =3D {address =3D 0,=20 > pointer =3D 0x0}, name =3D 0x0, minval =3D 0x0, maxval =3D 0x0,=20 > next_variant =3D 0x0, main_variant =3D 0x8a060b4, binfo =3D 0x0,=20 > noncopied_parts =3D 0x0, context =3D 0x0, obstack =3D 0x8151654,=20 > lang_specific =3D 0x0}, list =3D {common =3D= "\000\000\000\000\b=BD\027\b\rD\000",=20 > purpose =3D 0x0, value =3D 0x815aa68}, vec =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", length =3D 0, a =3D= {0x815aa68}},=20 > exp =3D {common =3D "\000\000\000\000\b=BD\027\b\rD\000", complexity =3D= 0,=20 > operands =3D {0x815aa68}}, block =3D { > common =3D "\000\000\000\000\b=BD\027\b\rD\000", handler_block_flag =3D= 0,=20 > abstract_flag =3D 0, vars =3D 0x815aa68, type_tags =3D 0x0, subblocks = =3D 0x907,=20 > supercontext =3D 0x420, abstract_origin =3D 0x20, end_note =3D 0x0}} Please let me know what you would like to see in terms of output. Regards Jim
Jim Brander (inteng@ozemail.com.au)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es