[Bug c++/11766] New: [3.4] ICE in comp_ptr_ttypes_real

gcc-bugzilla at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Aug 1 18:01:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11766

           Summary: [3.4] ICE in comp_ptr_ttypes_real
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: snyder at fnal dot gov
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


gcc ICEs compiling the source below:

$ ~/gcc/build/gcc/cc1plus -quiet x.cc
x.cc: In member function `void vector<_Tp>::end() const [with _Tp = void
   (MuonTag::*)()]':
x.cc:12:   instantiated from `void vector<_Tp>::size() const [with _Tp = void (MuonTag::*)()]'
x.cc:25:   instantiated from here
x.cc:11: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
$

Here's where it's crashing:

Program received signal SIGSEGV, Segmentation fault.
0x08178332 in comp_ptr_ttypes_real (to=0x0, from=0x0, constp=1) at ../../gcc/gcc/cp/typeck.c:6019
6019          if (TREE_CODE (to) != TREE_CODE (from))
(gdb) where
#0  0x08178332 in comp_ptr_ttypes_real (to=0x0, from=0x0, constp=1) at ../../gcc/gcc/cp/typeck.c:6019
#1  0x081786e0 in comp_ptr_ttypes (to=0x400873cc, from=0x4007dec4) at ../../gcc/gcc/cp/typeck.c:6058
#2  0x0804c57a in standard_conversion (to=0x40087438, from=0x40080000, expr=0x40022720) at ../../gcc/gcc/cp/call.c:724
#3  0x0804e0f9 in implicit_conversion (to=0x40087798, from=0x4008706c, expr=0x40022720, flags=3) at ../../gcc/gcc/cp/call.c:1201
#4  0x0804e03c in reference_binding (rto=0x40087804, rfrom=0x4008706c, expr=0x40022720, flags=3) at ../../gcc/gcc/cp/call.c:1172
#5  0x0804e0db in implicit_conversion (to=0x40087804, from=0x4008706c, expr=0x40022720, flags=3) at ../../gcc/gcc/cp/call.c:1199
#6  0x0804e791 in add_function_candidate (candidates=0xbfffaaf4, fn=0x4008b3cc,
ctype=0x400874a4, arglist=0x4008a49c, access_path=0x40081840, conversion_path=0x40081840, flags=3) at ../../gcc/gcc/cp/call.c:1354
#7  0x0805c2e8 in build_new_method_call (instance=0x4008a4c4, fns=0x4005be40, args=0x4008a49c, conversion_path=0x40081840, flags=3) at ../../gcc/gcc/cp/call.c:4985
#8  0x0805b904 in build_special_member_call (instance=0x4008a4c4, name=0x40025380, args=0x4008a49c, binfo=0x40081840, flags=3) at ../../gcc/gcc/cp/call.c:4803
#9  0x0817c6a2 in ocp_convert (type=0x400874a4, expr=0x40022720, convtype=95, flags=3) at ../../gcc/gcc/cp/cvt.c:768
#10 0x0817d6f1 in convert_force (type=0x400874a4, expr=0x40022720, convtype=95)
at ../../gcc/gcc/cp/cvt.c:983
#11 0x08173b7e in build_c_cast (type=0x400874a4, expr=0x40022720) at ../../gcc/gcc/cp/typeck.c:4817
#12 0x080f0f8a in build_functional_cast (exp=0x400874a4, parms=0x40084f64) at ../../gcc/gcc/cp/typeck2.c:1165
#13 0x080d833a in tsubst_copy_and_build (t=0x400799c4, args=0x40084118, complain=3, in_decl=0x4007d144, function_p=false) at ../../gcc/gcc/cp/pt.c:7957
#14 0x080d444d in tsubst_expr (t=0x400799c4, args=0x40084118, complain=3, in_decl=0x4007d144) at ../../gcc/gcc/cp/pt.c:7528
#15 0x080d47d0 in tsubst_expr (t=0x400799d8, args=0x40084118, complain=3, in_decl=0x4007d144) at ../../gcc/gcc/cp/pt.c:7551
#16 0x080d5e69 in tsubst_expr (t=0x400798c0, args=0x40084118, complain=3, in_decl=0x4007d144) at ../../gcc/gcc/cp/pt.c:7709
#17 0x080d5e69 in tsubst_expr (t=0x400798ac, args=0x40084118, complain=3, in_decl=0x4007d144) at ../../gcc/gcc/cp/pt.c:7709
#18 0x080e7a28 in instantiate_decl (d=0x400826c0, defer_ok=0) at ../../gcc/gcc/cp/pt.c:10963
#19 0x0812e575 in mark_used (decl=0x400826c0) at ../../gcc/gcc/cp/decl2.c:4219
#20 0x081a72e1 in finish_id_expression (id_expression=0x4007c900, decl=0x400826c0, scope=0x0, idk=0xbfffb064, qualifying_class=0xbfffb060, constant_expression_p=false, allow_non_constant_expression_p=false, non_constant_expression_p=0xbfffb05f, error_msg=0xbfffb058) at ../../gcc/gcc/cp/semantics.c:2609
#21 0x080d7cf1 in tsubst_copy_and_build (t=0x4007c900, args=0x4008421c, complain=3, in_decl=0x4007d438, function_p=true) at ../../gcc/gcc/cp/pt.c:7915
#22 0x080d9ffd in tsubst_copy_and_build (t=0x40022360, args=0x4008421c, complain=3, in_decl=0x4007d438, function_p=false) at ../../gcc/gcc/cp/pt.c:8133
#23 0x080d444d in tsubst_expr (t=0x40022360, args=0x4008421c, complain=3, in_decl=0x4007d438) at ../../gcc/gcc/cp/pt.c:7528
#24 0x080d47d0 in tsubst_expr (t=0x40079aa0, args=0x4008421c, complain=3, in_decl=0x4007d438) at ../../gcc/gcc/cp/pt.c:7551
#25 0x080d5e69 in tsubst_expr (t=0x40079a8c, args=0x4008421c, complain=3, in_decl=0x4007d438) at ../../gcc/gcc/cp/pt.c:7709
#26 0x080d5e69 in tsubst_expr (t=0x40079a78, args=0x4008421c, complain=3, in_decl=0x4007d438) at ../../gcc/gcc/cp/pt.c:7709
#27 0x080e7a28 in instantiate_decl (d=0x40082870, defer_ok=0) at ../../gcc/gcc/cp/pt.c:10963
#28 0x0812e575 in mark_used (decl=0x40082870) at ../../gcc/gcc/cp/decl2.c:4219
#29 0x0805a75d in build_over_call (cand=0x4001c2d0, flags=3) at ../../gcc/gcc/cp/call.c:4550
#30 0x0805c7d3 in build_new_method_call (instance=0x40082438, fns=0x40082870, args=0x0, conversion_path=0x40081240, flags=3) at ../../gcc/gcc/cp/call.c:5054
#31 0x08146633 in cp_parser_postfix_expression (parser=0x4007c3c0, address_p=false) at ../../gcc/gcc/cp/parser.c:3511
#32 0x08147136 in cp_parser_unary_expression (parser=0x4007c3c0, address_p=false) at ../../gcc/gcc/cp/parser.c:4073
#33 0x081477f5 in cp_parser_cast_expression (parser=0x4007c3c0, address_p=false) at ../../gcc/gcc/cp/parser.c:4497
#34 0x081535fd in cp_parser_simple_cast_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:13604
#35 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff200, fn=0x81535e4 <cp_parser_simple_cast_expression>) at ../../gcc/gcc/cp/parser.c:13122
#36 0x0814781e in cp_parser_pm_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4518
#37 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff220, fn=0x81477fd <cp_parser_pm_expression>) at ../../gcc/gcc/cp/parser.c:13122
#38 0x08147841 in cp_parser_multiplicative_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4542
#39 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff240, fn=0x8147820 <cp_parser_multiplicative_expression>) at ../../gcc/gcc/cp/parser.c:13122
#40 0x08147864 in cp_parser_additive_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4565
#41 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff258, fn=0x8147843 <cp_parser_additive_expression>) at ../../gcc/gcc/cp/parser.c:13122
#42 0x08147887 in cp_parser_shift_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4588
#43 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff280, fn=0x8147866 <cp_parser_shift_expression>) at ../../gcc/gcc/cp/parser.c:13122
#44 0x081478aa in cp_parser_relational_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4623
#45 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff2b8, fn=0x8147889 <cp_parser_relational_expression>) at ../../gcc/gcc/cp/parser.c:13122
#46 0x081478cd in cp_parser_equality_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4646
#47 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff2d0, fn=0x81478ac <cp_parser_equality_expression>) at ../../gcc/gcc/cp/parser.c:13122
#48 0x081478f0 in cp_parser_and_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4667
#49 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff2e0, fn=0x81478cf <cp_parser_and_expression>) at ../../gcc/gcc/cp/parser.c:13122
#50 0x08147913 in cp_parser_exclusive_or_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4688
#51 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff2f0, fn=0x81478f2 <cp_parser_exclusive_or_expression>) at ../../gcc/gcc/cp/parser.c:13122
#52 0x08147936 in cp_parser_inclusive_or_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4710
#53 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff300, fn=0x8147915 <cp_parser_inclusive_or_expression>) at ../../gcc/gcc/cp/parser.c:13122
#54 0x08147959 in cp_parser_logical_and_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4731
#55 0x08152aac in cp_parser_binary_expression (parser=0x4007c3c0, token_tree_map=0x85ff310, fn=0x8147938 <cp_parser_logical_and_expression>) at ../../gcc/gcc/cp/parser.c:13122
#56 0x0814797c in cp_parser_logical_or_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4752
#57 0x08147a51 in cp_parser_assignment_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4820
#58 0x08147bdb in cp_parser_expression (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:4968
#59 0x0814803b in cp_parser_expression_statement (parser=0x4007c3c0, in_statement_expr_p=false) at ../../gcc/gcc/cp/parser.c:5250
#60 0x08147e58 in cp_parser_statement (parser=0x4007c3c0, in_statement_expr_p=false) at ../../gcc/gcc/cp/parser.c:5160
#61 0x08148171 in cp_parser_statement_seq_opt (parser=0x4007c3c0, in_statement_expr_p=false) at ../../gcc/gcc/cp/parser.c:5315
#62 0x081480ef in cp_parser_compound_statement (parser=0x4007c3c0, in_statement_expr_p=false) at ../../gcc/gcc/cp/parser.c:5288
#63 0x0814e88d in cp_parser_function_body (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:10704
#64 0x0814e8b6 in cp_parser_ctor_initializer_opt_and_function_body (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:10721
#65 0x08153004 in cp_parser_function_definition_after_declarator (parser=0x4007c3c0, inline_p=false) at ../../gcc/gcc/cp/parser.c:13420
#66 0x08152f2f in cp_parser_function_definition_from_specifiers_and_declarator (parser=0x4007c3c0, decl_specifiers=0x40079e10, attributes=0x0, declarator=0x400223f0) at ../../gcc/gcc/cp/parser.c:13366
#67 0x0814c6e9 in cp_parser_init_declarator (parser=0x4007c3c0, decl_specifiers=0x40079e10, prefix_attributes=0x0, function_definition_allowed_p=true, member_p=false, function_definition_p=0xbfffbb23) at ../../gcc/gcc/cp/parser.c:9228
#68 0x08148e9d in cp_parser_simple_declaration (parser=0x4007c3c0, function_definition_allowed_p=true) at ../../gcc/gcc/cp/parser.c:6106
#69 0x08148dc2 in cp_parser_block_declaration (parser=0x4007c3c0, statement_p=false) at ../../gcc/gcc/cp/parser.c:6023
#70 0x08148c96 in cp_parser_declaration (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:5943
#71 0x08148aca in cp_parser_declaration_seq_opt (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:5852
#72 0x08144809 in cp_parser_translation_unit (parser=0x4007c3c0) at ../../gcc/gcc/cp/parser.c:2136
#73 0x081548de in c_parse_file () at ../../gcc/gcc/cp/parser.c:14308
#74 0x0820216c in c_common_parse_file (set_yydebug=0) at ../../gcc/gcc/c-opts.c:1201
#75 0x084e795b in compile_file () at ../../gcc/gcc/toplev.c:1750
#76 0x084eca90 in do_compile () at ../../gcc/gcc/toplev.c:4560
#77 0x084ecb29 in toplev_main (argc=2, argv=0xbfffbcf4) at ../../gcc/gcc/toplev.c:4601
#78 0x082060c0 in main (argc=2, argv=0xbfffbcf4) at ../../gcc/gcc/main.c:35

Environment:
System: Linux karma 2.4.19-emp_2419p5a829i #1 Tue Sep 3 17:42:17 EST 2002 i686 i686 i386 GNU/Linux
Architecture: i686

	<machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --prefix=/usr/local/gcc --enable-threads=posix --enable-long-long --enable-languages=c,c++,f77

How-To-Repeat:

Compile:

-----------------------------
template<typename T>
struct normal_iterator
{
  normal_iterator(const T& __i);
};


template<typename _Tp>
struct vector
{
  void end() const {  normal_iterator<const _Tp*> (this->pt); }
  void size() const { end(); }
  _Tp* pt;
};
  


struct MuonTag {
  typedef void (MuonTag::*Selector)();
};

void foo()
{
  vector<MuonTag::Selector> _selectors;
  _selectors.size();
}

-----------------------------
------- Additional Comments From snyder at fnal dot gov  2003-08-01 18:01 -------
Fix:
	<how to correct or work around the problem, if known (multiple lines)>



More information about the Gcc-bugs mailing list