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. 
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=0x817b3e4, rhs=0x8590dc0) at
gpc-typeck.c:626
>626         for (r = rhs; r; r = TYPE_LANG_SPECIFIC (r)->elts [1])
>(gdb) l
>621          tree lhs, rhs;
>622     {
>623       register tree r;
>624       if (TREE_CODE (lhs) == RECORD_TYPE
>625           && TREE_CODE (rhs) == RECORD_TYPE)
>626         for (r = rhs; r; r = TYPE_LANG_SPECIFIC (r)->elts [1])
>627           {
>628             if (comptypes (lhs, r))
>629               return 1;
>630           }
>(gdb) p r
>$1 = (union tree_node *) 0x8590dc0
>(gdb) p rhs
>$2 = (union tree_node *) 0x0
>(gdb) p lhs
>$3 = (union tree_node *) 0x817b3e4
>(gdb) where
>#0  0x8011c33 in comp_object_pointer_types (lhs=0x817b3e4, rhs=0x8590dc0)
at gpc-typeck.c:626
>#1  0x8016e76 in convert_for_assignment (type=0x8208ac8, rhs=0x859b31c,
errtype=0x0, fundecl=0x817b9f0, funname=0x8178e20, parmnum=1)
>    at gpc-typeck.c:4960
>#2  0x80139ae in convert_arguments (typelist=0x817b90c, values=0x859b2f4,
name=0x8178e20, fundecl=0x817b9f0) 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 = 50; (* Maximum depth of lists within lists *)
>  max_string = 63; (* maximum length identifier string *)
>type
>  symtype = (uninit, curly_left, curly_right, lit_string, comma,
>	     number, logcon, identifier, endfile, dot_dot, from_to,
>	     maybe,ellip);
>  lexical_symbol = 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 := ' '
>    else nnch := filebuf[far];
>  end
>  else begin
>    if string_pp+far > length(system_data.p^.command)
>    then nnch := ' '
>    else begin
>       ch := system_data.p^.command[string_pp+far];
>       if ch = chr(10)
>	then nnch := ' '
>	else nnch := ch;
>    end;
>  end;
>next_nextch := 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 = ''
>    then begin
>      if eoln1
>      then begin
>        if eof(edfile)
>        then begin eof1 := true; readlist_nextch := ' '; eoln1 := false; end
>        else begin
>          readln(edfile, filebuf); eoln1 := false;
>          filebuf := trim(ztrim(filebuf));
>          continue;
>        end
>      end
>      else begin
>        eoln1 := true; readlist_nextch := ' ';
>      end
>    end
>    else begin (* filebuf <> '' *)
>      readlist_nextch := filebuf[1];
>      filebuf := delete(filebuf, 1, 1);
>    end;
>  end
>  else begin
>    string_pp := string_pp + 1;
>    if string_pp > length(system_data.p^.command)
>    then begin
>      readlist_nextch := ' ';
>      if eoln1
>      then begin
>          eoln1 := false; eof1:= true;
>      end
>      else eoln1 := true;
>    end
>    else begin
>	   readlist_nextch := system_data.p^.command[string_pp];
>	   if readlist_nextch = chr(10)
>	    then begin
>		   eoln1 := true;readlist_nextch := ' ';
>		 end
>	    else eoln1 := false;
>	 end;
>  end;
> break;
>end; { while true }
>end; (* proc getchar *)
>
>  procedure skipblanks;
>  const
>    blank =  ' ';
>    exclam = '!';
>  begin  (* skip blanks and comments in edfile *)
>    while not eoln1 and_then not eof1 and_then
>      ((readlist_nextch = blank) or_else (readlist_nextch = exclam)) do
>      if readlist_nextch = 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 := readlist_nextch; getchar(file_io);
>     sym := lit_string; str_val := '';
>     while not eoln1 and_then (readlist_nextch <> termch) and_then
>            (length(str_val) < maxstring) do begin
>       str_val := str_val + readlist_nextch;
>       getchar(file_io);
>     end;
>     if readlist_nextch = termch
>     then getchar(file_io)
>     else begin status := 818; goto error_exit; (* fast escape *) end;
>   end
> end; (* proc lex_string *)
>
>  procedure lex_id;
>  const
>    max_name = 31;
>  var s:string(80);
>  begin
>    with nextsym do begin
>      name := '';
>      sym := identifier;
>      use := normal;
>      while (readlist_nextch in alphanumund) and_then
>           (length(name) < max_name) do begin
>	name := 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 := multi;
>	    '$': id_type := string_p;
>	    '%': id_type := list_p;
>            '@': id_type := logical;
>          end; (* esac *)
>	  name := name + readlist_nextch; getchar(file_io);
>        end
>        else begin status := 857; goto error_exit; end;
>      end
>      else id_type := numeric; (* move from end of routine *)
>      s := name;
>      uppercaseproc(s);
>      if (readlist_nextch in ['a'..'z','A'..'Z','_']) (* too long *)
>       or_else (s = 'NYK')
>       then begin status := 862; goto error_exit; end;
>      if (s = 'TRUE') or_else (s = 'FALSE') or_else (s = 'UKE')
>           or_else (s = 'ERROR')
>      then begin
>	log := logstate(index('UEFT', substr(s, 1, 1)));
>        sym := 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=0x817ab08, rhs=0x817af64)
>    at gpc-typeck.c:626
>626	    for (r = rhs; r; r = TYPE_LANG_SPECIFIC (r)->elts [1])
>(gdb) where
>#0  0x8011c33 in comp_object_pointer_types (lhs=0x817ab08, rhs=0x817af64)
>    at gpc-typeck.c:626
>#1  0x8016e76 in convert_for_assignment (type=0x8a060b4, rhs=0x8a05e54, 
>    errtype=0x0, fundecl=0x822cd78, funname=0x822caa4, parmnum=2)
>    at gpc-typeck.c:4960
>#2  0x80139ae in convert_arguments (typelist=0x822cc80, values=0x8a05e40, 
>    name=0x822caa4, fundecl=0x822cd78) at gpc-typeck.c:2359
>#3  0x8013244 in build_function_call (function=0x822cd78, params=0x8a05e40)
>    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=0xbffffe61 "externfunc.i")
>    at ./toplev.c:2288
>#6  0x805d25d in main (argc=2, argv=0xbffffda4, envp=0xbffffdb0)
>    at ./toplev.c:3977
>#7  0x800126b in _start ()
>(gdb) up 1
>#1  0x8016e76 in convert_for_assignment (type=0x8a060b4, rhs=0x8a05e54, 
>    errtype=0x0, fundecl=0x822cd78, funname=0x822caa4, parmnum=2)
>    at gpc-typeck.c:4960
>4960	      if (TYPE_MAIN_VARIANT (ttl) == void_type_node
>(gdb) p *funname
>$1 = {common = {chain = 0x818f334, type = 0x0, code = IDENTIFIER_NODE, 
>    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
>    addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, 
>    unsigned_flag = 0, asm_written_flag = 0, used_flag = 0, raises_flag = 0, 
>    static_flag = 0, public_flag = 1, private_flag = 0, protected_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
>    common = "4 \030\b\000\000\000\000\001\004\b", int_cst_low = 13, 
>    int_cst_high = 136497872}, real_cst = {
>    common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, real_cst = {r = {
>        136497872, 136498552, 0}}}, string = {
>    common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, 
>    length = 136497872, pointer = 0x822cd78 "  \"\b\024 \"\b\035\004\t"}, 
>  complex = {common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, 
>    real = 0x822cad0, imag = 0x822cd78}, identifier = {
>    common = "4 \030\b\000\000\000\000\001\004\b", length = 13, 
>    pointer = 0x822cad0 "Dollarsubproc"}, decl = {
>    common = "4 \030\b\000\000\000\000\001\004\b", 
>    filename = 0xd <Address 0xd out of bounds>, linenum = 136497872, 
>    size = 0x822cd78, uid = 0, mode = VOIDmode, external_flag = 0, 
>    nonlocal_flag = 0, regdecl_flag = 0, inline_flag = 0, bit_field_flag = 0, 
>    virtual_flag = 0, ignored_flag = 0, abstract_flag = 0, 
>    in_system_header_flag = 0, common_flag = 0, defer_output = 0, 
>    transparent_union = 0, static_ctor_flag = 0, static_dtor_flag = 0, 
>    artificial_flag = 0, weak_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, 
>    lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, 
>    lang_flag_6 = 0, lang_flag_7 = 0, name = 0x0, context = 0x0, 
>    arguments = 0x0, result = 0x6c6c6f44, initial = 0x75737261, 
>    abstract_origin = 0x6f727062, assembler_name = 0x63, section_name = 0x0, 
>    machine_attributes = 0x0, rtl = 0x403, frame_size = {i = 0, u = 0, 
>      f = NOT_BUILT_IN}, saved_insns = {r = 0x817bdf4, i = 135773684}, 
>    vindex = 0x0, lang_specific = 0x0}, type = {
>    common = "4 \030\b\000\000\000\000\001\004\b", values = 0xd, 
>    size = 0x822cad0, attributes = 0x822cd78, uid = 0, precision = 0 '\000', 
>    mode = VOIDmode, string_flag = 0, no_force_blk_flag = 0, 
>    needs_constructing_flag = 0, transparent_union_flag = 0, packed_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 0, 
>    pointer_to = 0x0, reference_to = 0x0, symtab = {address = 1819045700, 
>      pointer = 0x6c6c6f44 ""}, name = 0x75737261, minval = 0x6f727062, 
>    maxval = 0x63, next_variant = 0x0, main_variant = 0x0, binfo = 0x403, 
>    noncopied_parts = 0x0, context = 0x817bdf4, obstack = 0x0, 
>    lang_specific = 0x0}, list = {
>    common = "4 \030\b\000\000\000\000\001\004\b", purpose = 0xd, 
>    value = 0x822cad0}, vec = {common = "4 \030\b\000\000\000\000\001\004\b", 
>    length = 13, a = {0x822cad0}}, exp = {
>    common = "4 \030\b\000\000\000\000\001\004\b", complexity = 13, 
>    operands = {0x822cad0}}, block = {
>    common = "4 \030\b\000\000\000\000\001\004\b", handler_block_flag = 1, 
>    abstract_flag = 0, vars = 0x822cad0, type_tags = 0x822cd78, 
>    subblocks = 0x0, supercontext = 0x0, abstract_origin = 0x0, 
>    end_note = 0x0}}
>(gdb) 
>$2 = {common = {chain = 0x818f334, type = 0x0, code = IDENTIFIER_NODE, 
>    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
>    addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, 
>    unsigned_flag = 0, asm_written_flag = 0, used_flag = 0, raises_flag = 0, 
>    static_flag = 0, public_flag = 1, private_flag = 0, protected_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
>    common = "4 \030\b\000\000\000\000\001\004\b", int_cst_low = 13, 
>    int_cst_high = 136497872}, real_cst = {
>    common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, real_cst = {r = {
>        136497872, 136498552, 0}}}, string = {
>    common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, 
>    length = 136497872, pointer = 0x822cd78 "  \"\b\024 \"\b\035\004\t"}, 
>  complex = {common = "4 \030\b\000\000\000\000\001\004\b", rtl = 0xd, 
>    real = 0x822cad0, imag = 0x822cd78}, identifier = {
>    common = "4 \030\b\000\000\000\000\001\004\b", length = 13, 
>    pointer = 0x822cad0 "Dollarsubproc"}, decl = {
>    common = "4 \030\b\000\000\000\000\001\004\b", 
>    filename = 0xd <Address 0xd out of bounds>, linenum = 136497872, 
>    size = 0x822cd78, uid = 0, mode = VOIDmode, external_flag = 0, 
>    nonlocal_flag = 0, regdecl_flag = 0, inline_flag = 0, bit_field_flag = 0, 
>    virtual_flag = 0, ignored_flag = 0, abstract_flag = 0, 
>    in_system_header_flag = 0, common_flag = 0, defer_output = 0, 
>    transparent_union = 0, static_ctor_flag = 0, static_dtor_flag = 0, 
>    artificial_flag = 0, weak_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, 
>    lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, 
>    lang_flag_6 = 0, lang_flag_7 = 0, name = 0x0, context = 0x0, 
>    arguments = 0x0, result = 0x6c6c6f44, initial = 0x75737261, 
>    abstract_origin = 0x6f727062, assembler_name = 0x63, section_name = 0x0, 
>    machine_attributes = 0x0, rtl = 0x403, frame_size = {i = 0, u = 0, 
>      f = NOT_BUILT_IN}, saved_insns = {r = 0x817bdf4, i = 135773684}, 
>    vindex = 0x0, lang_specific = 0x0}, type = {
>    common = "4 \030\b\000\000\000\000\001\004\b", values = 0xd, 
>    size = 0x822cad0, attributes = 0x822cd78, uid = 0, precision = 0 '\000', 
>    mode = VOIDmode, string_flag = 0, no_force_blk_flag = 0, 
>    needs_constructing_flag = 0, transparent_union_flag = 0, packed_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 0, 
>    pointer_to = 0x0, reference_to = 0x0, symtab = {address = 1819045700, 
>      pointer = 0x6c6c6f44 ""}, name = 0x75737261, minval = 0x6f727062, 
>    maxval = 0x63, next_variant = 0x0, main_variant = 0x0, binfo = 0x403, 
>    noncopied_parts = 0x0, context = 0x817bdf4, obstack = 0x0, 
>    lang_specific = 0x0}, list = {
>    common = "4 \030\b\000\000\000\000\001\004\b", purpose = 0xd, 
>    value = 0x822cad0}, vec = {common = "4 \030\b\000\000\000\000\001\004\b", 
>    length = 13, a = {0x822cad0}}, exp = {
>    common = "4 \030\b\000\000\000\000\001\004\b", complexity = 13, 
>    operands = {0x822cad0}}, block = {
>    common = "4 \030\b\000\000\000\000\001\004\b", handler_block_flag = 1, 
>    abstract_flag = 0, vars = 0x822cad0, type_tags = 0x822cd78, 
>    subblocks = 0x0, supercontext = 0x0, abstract_origin = 0x0, 
>    end_note = 0x0}}
>(gdb) p *fundecl
>$3 = {common = {chain = 0x822c9f0, type = 0x822cd14, code = FUNCTION_DECL, 
>    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
>    addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, 
>    unsigned_flag = 0, asm_written_flag = 0, used_flag = 1, raises_flag = 0, 
>    static_flag = 0, public_flag = 1, private_flag = 0, protected_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
>    common = "  \"\b\024 \"\b\035\004\t", int_cst_low = 135759440, 
>    int_cst_high = 8539}, real_cst = {common = "  \"\b\024 \"\b\035\004\t", 
>    rtl = 0x8178650, real_cst = {r = {8539, 0, 2549}}}, string = {
>    common = "  \"\b\024 \"\b\035\004\t", rtl = 0x8178650, length = 8539, 
>    pointer = 0x0}, complex = {common = "  \"\b\024 \"\b\035\004\t", 
>    rtl = 0x8178650, real = 0x215b, imag = 0x0}, identifier = {
>    common = "  \"\b\024 \"\b\035\004\t", length = 135759440, 
>    pointer = 0x215b <Address 0x215b out of bounds>}, decl = {
>    common = "  \"\b\024 \"\b\035\004\t", 
>    filename = 0x8178650 "externfunc.pas", linenum = 8539, size = 0x0, 
>    uid = 2549, mode = QImode, external_flag = 1, nonlocal_flag = 0, 
>    regdecl_flag = 0, inline_flag = 0, bit_field_flag = 0, virtual_flag = 0, 
>    ignored_flag = 0, abstract_flag = 0, in_system_header_flag = 0, 
>    common_flag = 1, defer_output = 0, transparent_union = 0, 
>    static_ctor_flag = 0, static_dtor_flag = 0, artificial_flag = 0, 
>    weak_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, 
>    lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, 
>    lang_flag_7 = 0, name = 0x822caa4, context = 0x0, arguments = 0x0, 
>    result = 0x0, initial = 0x0, abstract_origin = 0x0, 
>    assembler_name = 0x822cde0, section_name = 0x0, machine_attributes = 0x0, 
>    rtl = 0x822ce24, frame_size = {i = 0, u = 0, f = NOT_BUILT_IN}, 
>    saved_insns = {r = 0x0, i = 0}, vindex = 0x0, lang_specific = 0x89fda98}, 
>  type = {common = "  \"\b\024 \"\b\035\004\t", values = 0x8178650, 
>    size = 0x215b, attributes = 0x0, uid = 2549, precision = 1 '\001', 
>    mode = QImode, string_flag = 0, no_force_blk_flag = 1, 
>    needs_constructing_flag = 0, transparent_union_flag = 0, packed_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 136497828, 
>    pointer_to = 0x0, reference_to = 0x0, symtab = {address = 0, 
>      pointer = 0x0}, name = 0x0, minval = 0x0, maxval = 0x822cde0, 
>    next_variant = 0x0, main_variant = 0x0, binfo = 0x822ce24, 
>    noncopied_parts = 0x0, context = 0x0, obstack = 0x0, 
>    lang_specific = 0x89fda98}, list = {common = "  \"\b\024 \"\b\035\004\t", 
>    purpose = 0x8178650, value = 0x215b}, vec = {
>    common = "  \"\b\024 \"\b\035\004\t", length = 135759440, a = {0x215b}}, 
>  exp = {common = "  \"\b\024 \"\b\035\004\t", complexity = 135759440, 
>    operands = {0x215b}}, block = {common = "  \"\b\024 \"\b\035\004\t", 
>    handler_block_flag = 0, abstract_flag = 0, vars = 0x215b, type_tags = 0x0, 
>    subblocks = 0x9f5, supercontext = 0x20101, abstract_origin = 0x822caa4, 
>    end_note = 0x0}}
>(gdb) p *rhs
>$4 = {common = {chain = 0x0, type = 0x825b390, code = CONVERT_EXPR, 
>    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
>    addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, 
>    unsigned_flag = 0, asm_written_flag = 0, used_flag = 0, raises_flag = 0, 
>    static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
>    common = "\000\000\000\000\220 %\bi\004\000", int_cst_low = 0, 
>    int_cst_high = 136644252}, real_cst = {
>    common = "\000\000\000\000\220 %\bi\004\000", rtl = 0x0, real_cst = {r = {
>        136644252, 0, 135769552}}}, string = {
>    common = "\000\000\000\000\220 %\bi\004\000", rtl = 0x0, 
>    length = 136644252, pointer = 0x0}, complex = {
>    common = "\000\000\000\000\220 %\bi\004\000", rtl = 0x0, real = 0x825069c, 
>    imag = 0x0}, identifier = {common = "\000\000\000\000\220 %\bi\004\000", 
>    length = 0, pointer = 0x825069c "á\a%\b \005%\b\"L\001"}, decl = {
>    common = "\000\000\000\000\220 %\bi\004\000", filename = 0x0, 
>    linenum = 136644252, size = 0x0, uid = 135769552, mode = 39, 
>    external_flag = 0, nonlocal_flag = 0, regdecl_flag = 1, inline_flag = 0, 
>    bit_field_flag = 0, virtual_flag = 0, ignored_flag = 0, abstract_flag = 0, 
>    in_system_header_flag = 0, common_flag = 0, defer_output = 0, 
>    transparent_union = 0, static_ctor_flag = 0, static_dtor_flag = 0, 
>    artificial_flag = 0, weak_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, 
>    lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, 
>    lang_flag_6 = 0, lang_flag_7 = 0, name = 0x0, context = 0x8a05e54, 
>    arguments = 0x0, result = 0x0, initial = 0x403, abstract_origin = 0x0, 
>    assembler_name = 0x8a05e68, section_name = 0x0, 
>    machine_attributes = 0x822cd14, rtl = 0x440d, frame_size = {i = 0, u = 0, 
>      f = NOT_BUILT_IN}, saved_insns = {r = 0x815aa68, i = 135637608}, 
>    vindex = 0x0, lang_specific = 0x906}, type = {
>    common = "\000\000\000\000\220 %\bi\004\000", values = 0x0, 
>    size = 0x825069c, attributes = 0x0, uid = 135769552, precision = 39 '\'', 
>    mode = SImode, string_flag = 0, no_force_blk_flag = 0, 
>    needs_constructing_flag = 0, transparent_union_flag = 0, packed_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 0, 
>    pointer_to = 0x8a05e54, reference_to = 0x0, symtab = {address = 0, 
>      pointer = 0x0}, name = 0x403, minval = 0x0, maxval = 0x8a05e68, 
>    next_variant = 0x0, main_variant = 0x822cd14, binfo = 0x440d, 
>    noncopied_parts = 0x0, context = 0x815aa68, obstack = 0x0, 
>    lang_specific = 0x906}, list = {
>    common = "\000\000\000\000\220 %\bi\004\000", purpose = 0x0, 
>    value = 0x825069c}, vec = {common = "\000\000\000\000\220 %\bi\004\000", 
>    length = 0, a = {0x825069c}}, exp = {
>    common = "\000\000\000\000\220 %\bi\004\000", complexity = 0, operands = {
>      0x825069c}}, block = {common = "\000\000\000\000\220 %\bi\004\000", 
>    handler_block_flag = 0, abstract_flag = 0, vars = 0x825069c, 
>    type_tags = 0x0, subblocks = 0x817add0, supercontext = 0x427, 
>    abstract_origin = 0x0, end_note = 0x8a05e54}}
>(gdb) p *lhs
>(gdb) 
>(gdb) p *type
>$5 = {common = {chain = 0x0, type = 0x817ab08, code = POINTER_TYPE, 
>    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
>    addressable_flag = 0, volatile_flag = 0, readonly_flag = 0, 
>    unsigned_flag = 1, asm_written_flag = 0, used_flag = 0, raises_flag = 0, 
>    static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
>    common = "\000\000\000\000\b½\027\b\rD\000", int_cst_low = 0, 
>    int_cst_high = 135637608}, real_cst = {
>    common = "\000\000\000\000\b½\027\b\rD\000", rtl = 0x0, real_cst = {r = {
>        135637608, 0, 2311}}}, string = {
>    common = "\000\000\000\000\b½\027\b\rD\000", rtl = 0x0, 
>    length = 135637608, pointer = 0x0}, complex = {
>    common = "\000\000\000\000\b½\027\b\rD\000", rtl = 0x0, real = 0x815aa68, 
>    imag = 0x0}, identifier = {common = "\000\000\000\000\b½\027\b\rD\000", 
>    length = 0, pointer = 0x815aa68 ""}, decl = {
>    common = "\000\000\000\000\b½\027\b\rD\000", filename = 0x0, 
>    linenum = 135637608, size = 0x0, uid = 2311, mode = 32, external_flag = 0, 
>    nonlocal_flag = 0, regdecl_flag = 1, inline_flag = 0, bit_field_flag = 0, 
>    virtual_flag = 0, ignored_flag = 0, abstract_flag = 0, 
>    in_system_header_flag = 0, common_flag = 0, defer_output = 0, 
>    transparent_union = 0, static_ctor_flag = 0, static_dtor_flag = 0, 
>    artificial_flag = 0, weak_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, 
>    lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, 
>    lang_flag_6 = 0, lang_flag_7 = 0, name = 0x20, context = 0x0, 
>    arguments = 0x0, result = 0x0, initial = 0x0, abstract_origin = 0x0, 
>    assembler_name = 0x0, section_name = 0x0, machine_attributes = 0x8a060b4, 
>    rtl = 0x0, frame_size = {i = 0, u = 0, f = NOT_BUILT_IN}, saved_insns = {
>      r = 0x0, i = 0}, vindex = 0x8151654, lang_specific = 0x0}, type = {
>    common = "\000\000\000\000\b½\027\b\rD\000", values = 0x0, 
>    size = 0x815aa68, attributes = 0x0, uid = 2311, precision = 32 ' ', 
>    mode = SImode, string_flag = 0, no_force_blk_flag = 0, 
>    needs_constructing_flag = 0, transparent_union_flag = 0, packed_flag = 0, 
>    lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
>    lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 32, 
>    pointer_to = 0x0, reference_to = 0x0, symtab = {address = 0, 
>      pointer = 0x0}, name = 0x0, minval = 0x0, maxval = 0x0, 
>    next_variant = 0x0, main_variant = 0x8a060b4, binfo = 0x0, 
>    noncopied_parts = 0x0, context = 0x0, obstack = 0x8151654, 
>    lang_specific = 0x0}, list = {common = "\000\000\000\000\b½\027\b\rD\000", 
>    purpose = 0x0, value = 0x815aa68}, vec = {
>    common = "\000\000\000\000\b½\027\b\rD\000", length = 0, a = {0x815aa68}}, 
>  exp = {common = "\000\000\000\000\b½\027\b\rD\000", complexity = 0, 
>    operands = {0x815aa68}}, block = {
>    common = "\000\000\000\000\b½\027\b\rD\000", handler_block_flag = 0, 
>    abstract_flag = 0, vars = 0x815aa68, type_tags = 0x0, subblocks = 0x907, 
>    supercontext = 0x420, abstract_origin = 0x20, end_note = 0x0}}
Please let me know what you would like to see in terms of output.
Regards
Jim