[Bug c++/28225] [4.0/4.1/4.2 regression] segfault in type_dependent_expression_p

tbm at cyrius dot com gcc-bugzilla@gcc.gnu.org
Sun Jul 2 23:53:00 GMT 2006



------- Comment #1 from tbm at cyrius dot com  2006-07-02 23:52 -------
(gdb) run ~/test.cc
Starting program: /home/tbm/tmp/gcc/i386/gcc/cc1plus ~/test.cc
 static void foo<T1>::bar<T2, N, true>::apply(const T1&, T2&) void
foo<T1>::operator()(T1&, T3&)
Program received signal SIGSEGV, Segmentation fault.
type_dependent_expression_p (expression=0x0) at
/home/tbm/scratch/gcc/gcc/cp/pt.c:12643
12643     if (TREE_CODE (expression) == IDENTIFIER_NODE)
(gdb) where
#0  type_dependent_expression_p (expression=0x0) at
/home/tbm/scratch/gcc/gcc/cp/pt.c:12643
#1  0x080a311f in fold_non_dependent_expr (expr=0x0) at
/home/tbm/scratch/gcc/gcc/cp/pt.c:3353
#2  0x0811fc2c in constant_value_1 (decl=0xa7c702c0, integral_p=1 '\001')
    at /home/tbm/scratch/gcc/gcc/cp/init.c:1473
#3  0x080a9492 in fold_decl_constant_value (expr=0xa7c702c0)
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:3387
#4  0x0808f2ff in coerce_template_parms (parms=0xa7c69268, args=<value
optimized out>,
    in_decl=0xa7cebb60, complain=tf_warning_or_error, require_all_args=1
'\001',
    use_default_args=1 '\001') at /home/tbm/scratch/gcc/gcc/cp/pt.c:3534
#5  0x080966c8 in lookup_template_class (d1=0xa7d1b78c, arglist=<value
optimized out>,
    in_decl=0xa7d1f068, context=0x0, entering_scope=0,
complain=tf_warning_or_error)
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:4556
#6  0x080989c1 in tsubst_aggr_type (t=0xa7d1b78c, args=0xa7c694d0,
complain=tf_warning_or_error,
    in_decl=0xa7d1f068, entering_scope=0) at
/home/tbm/scratch/gcc/gcc/cp/pt.c:6127
#7  0x0808856d in tsubst (t=0xa7d1b78c, args=0xa7c694d0,
complain=tf_warning_or_error,
    in_decl=0xa7d1f068) at /home/tbm/scratch/gcc/gcc/cp/pt.c:7036
#8  0x0809a4d8 in tsubst_qualified_id (qualified_id=0xa7c6b1d4,
args=0xa7c694d0,
    complain=tf_warning_or_error, in_decl=0xa7d1f068, done=1 '\001',
address_p=0 '\0')
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:7677
#9  0x0809b971 in tsubst_copy_and_build (t=0xa7c6b1d4, args=0xa7c694d0,
    complain=tf_warning_or_error, in_decl=0xa7d1f068, function_p=0 '\0')
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:8788
#10 0x0809dcde in tsubst_expr (t=0xa7c6b1d4, args=0xa7c694d0,
complain=tf_warning_or_error,
    in_decl=0xa7d1f068) at /home/tbm/scratch/gcc/gcc/cp/pt.c:8563
#11 0x080a31b1 in tsubst_template_arg (t=0xa7c6b1d4, args=0xa7c694d0,
complain=2814836824,
    in_decl=0xa7d1f068) at /home/tbm/scratch/gcc/gcc/cp/pt.c:5970
#12 0x0808e888 in coerce_template_parms (parms=0xa7ce7800, args=0xa7c701b8,
in_decl=0xa7d1f068,
    complain=tf_warning_or_error, require_all_args=1 '\001', use_default_args=1
'\001')
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:4055
#13 0x08096468 in lookup_template_class (d1=0xa7d1f068, arglist=0xa7c69498,
in_decl=0x0,
    context=0x0, entering_scope=0, complain=tf_warning_or_error)
    at /home/tbm/scratch/gcc/gcc/cp/pt.c:4531
#14 0x08131b64 in finish_template_type (name=0xa7d1f068, args=0xa7c6947c,
entering_scope=0)
    at /home/tbm/scratch/gcc/gcc/cp/semantics.c:2365
#15 0x080f3867 in cp_parser_template_id (parser=0xa7d1e478,
template_keyword_p=0 '\0',
---Type <return> to continue, or q <return> to quit---
    check_dependency_p=1 '\001', is_declaration=0 '\0') at
/home/tbm/scratch/gcc/gcc/cp/parser.c:8796
#16 0x080f3bff in cp_parser_class_name (parser=0xa7d1e478, typename_keyword_p=0
'\0',
    template_keyword_p=0 '\0', tag_type=none_type, check_dependency_p=1 '\001',
class_head_p=0 '\0',
    is_declaration=0 '\0') at /home/tbm/scratch/gcc/gcc/cp/parser.c:12836
#17 0x080f4313 in cp_parser_nested_name_specifier_opt (parser=0xa7d1e478,
typename_keyword_p=0 '\0',
    check_dependency_p=1 '\001', type_p=0 '\0', is_declaration=0 '\0')
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:3842
#18 0x080f6c15 in cp_parser_simple_type_specifier (parser=0xa7d1e478,
decl_specs=0xafdd5808,
    flags=CP_PARSER_FLAGS_OPTIONAL) at
/home/tbm/scratch/gcc/gcc/cp/parser.c:9827
#19 0x080ecd76 in cp_parser_type_specifier (parser=0xa7d1e478,
flags=CP_PARSER_FLAGS_OPTIONAL,
    decl_specs=0xafdd5808, is_declaration=1 '\001',
declares_class_or_enum=0xafdd57c4,
    is_cv_qualifier=0xafdd57cb "") at
/home/tbm/scratch/gcc/gcc/cp/parser.c:9662
#20 0x080eed31 in cp_parser_decl_specifier_seq (parser=0xa7d1e478,
flags=CP_PARSER_FLAGS_OPTIONAL,
    decl_specs=0xafdd5808, declares_class_or_enum=0xafdd5854)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:7496
#21 0x080faf1f in cp_parser_simple_declaration (parser=0xa7d1e478,
    function_definition_allowed_p=0 '\0') at
/home/tbm/scratch/gcc/gcc/cp/parser.c:7200
#22 0x080fb41d in cp_parser_block_declaration (parser=0xa7d1e478, statement_p=1
'\001')
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:7161
#23 0x080e64f4 in cp_parser_statement (parser=0xa7d1e478,
in_statement_expr=0x0,
    in_compound=1 '\001') at /home/tbm/scratch/gcc/gcc/cp/parser.c:6847
#24 0x080e7313 in cp_parser_statement_seq_opt (parser=0xa7d1e478,
in_statement_expr=0x0)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:6356
#25 0x080e74a5 in cp_parser_compound_statement (parser=0xa7d1e478,
in_statement_expr=0x0,
    in_try=<value optimized out>) at /home/tbm/scratch/gcc/gcc/cp/parser.c:6326
#26 0x080eae77 in cp_parser_ctor_initializer_opt_and_function_body
(parser=0xa7d1e478)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:12505
#27 0x080eb42d in cp_parser_function_definition_after_declarator
(parser=0xa7d1e478,
    inline_p=1 '\001') at /home/tbm/scratch/gcc/gcc/cp/parser.c:15433
#28 0x080ee0ee in cp_parser_type_specifier (parser=0xa7d1e478,
flags=CP_PARSER_FLAGS_OPTIONAL,
    decl_specs=0xafdd5af8, is_declaration=1 '\001',
declares_class_or_enum=0xafdd5ab4,
    is_cv_qualifier=0xafdd5abb "") at
/home/tbm/scratch/gcc/gcc/cp/parser.c:15925
#29 0x080eed31 in cp_parser_decl_specifier_seq (parser=0xa7d1e478,
flags=CP_PARSER_FLAGS_OPTIONAL,
    decl_specs=0xafdd5af8, declares_class_or_enum=0xafdd5b44)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:7496
---Type <return> to continue, or q <return> to quit---
#30 0x080ebc21 in cp_parser_single_declaration (parser=0xa7d1e478, checks=0x0,
member_p=0 '\0',
    friend_p=0xafdd5b9b "") at /home/tbm/scratch/gcc/gcc/cp/parser.c:15607
#31 0x080fa560 in cp_parser_template_declaration_after_export
(parser=0xa7d1e478, member_p=0 '\0')
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:15522
#32 0x080fc2ed in cp_parser_declaration (parser=0xa7d1e478)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:7050
#33 0x080fc90d in cp_parser_declaration_seq_opt (parser=0xa7d1e478)
    at /home/tbm/scratch/gcc/gcc/cp/parser.c:6973
#34 0x080fd00c in c_parse_file () at /home/tbm/scratch/gcc/gcc/cp/parser.c:2712
#35 0x0819a40a in c_common_parse_file (set_yydebug=0) at
/home/tbm/scratch/gcc/gcc/c-opts.c:1164
#36 0x084df1d3 in toplev_main (argc=2, argv=0xafdd5da4) at
/home/tbm/scratch/gcc/gcc/toplev.c:999
#37 0x081a9002 in main (argc=0, argv=0xa7c7e000) at
/home/tbm/scratch/gcc/gcc/main.c:35
(gdb)


-- 


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



More information about the Gcc-bugs mailing list