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