[Bug optimization/10349] testsuite failure in g++.dg/parse/stack1.C

ghazi at caip dot rutgers dot edu gcc-bugzilla@gcc.gnu.org
Thu Jan 1 16:17:00 GMT 2004


------- Additional Comments From ghazi at caip dot rutgers dot edu  2004-01-01 16:17 -------
Subject: Re:  testsuite failure in g++.dg/parse/stack1.C

With gdb I can't get a good trace, perhaps because the stack
overflowed.  Also given that it crashes in the parser, the 3.4 bug
might be different than the 3.3.x one.  Or maybe not.  Note this was
3.4 configured with no special options on sparc-sun-solaris2.7,
(i.e. sparc64, listed in the initial report, is not necessary given a
larger number of "else-ifs".  Though the crash still happens on
sparc64 also.)  I used sparc32 because gdb doesn't support sparc64
AFAICT.

GNU gdb 5.3
[...]
(gdb) run -fpreprocessed stack2.ii -quiet -dumpbase stack2.C -mcpu=v7
-auxbase stack2 -version -o stack2.s
Starting program:
/teal/tmpdisk/ghazi/gcc-testing/34/build/gcc/cc1plus
-fpreprocessed stack2.ii -quiet -dumpbase stack2.C -mcpu=v7 -auxbase
stack2 -version -o stack2.s
GNU C++ version 3.4.0 20040101 (experimental) (sparc-sun-solaris2.7)
        compiled by GNU C version 3.4.0 20040101 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096


Program received signal SIGSEGV, Segmentation fault.
0x000ed7e8 in cp_parser_type_name (parser=0xff10ff80)
    at ../../egcc-CVS20040101/gcc/cp/parser.c:8752
8752      type_decl = cp_parser_class_name (parser,
(gdb) bt
#0  0x000ed7e8 in cp_parser_type_name (parser=0xff10ff80)
    at ../../egcc-CVS20040101/gcc/cp/parser.c:8752
Cannot access memory at address 0xff3eff54
(gdb) list
8752      type_decl = cp_parser_class_name (parser,
8753                                        /*typename_keyword_p=*/false,
8754                                        /*template_keyword_p=*/false,
8755                                        /*type_p=*/false,
8756                                        /*check_dependency_p=*/true,
8757                                        /*class_head_p=*/false,
8758                                        /*is_declaration=*/false);
8759      /* If it's not a class-name, keep looking.  */
8760      if (!cp_parser_parse_definitely (parser))
8761        {
(gdb) p *parser
$2 = {lexer = 0x3b6c0000, scope = 0xfd068320, object_scope = 0x500660,
  qualifying_scope = 0x10, context = 0x2e6c0000,
  allow_gnu_extensions_p = false, greater_than_is_operator_p = false,
  default_arg_ok_p = false, integral_constant_expression_p = false,
  allow_non_integral_constant_expression_p = false,
  non_integral_constant_expression_p = 80, in_offsetof_p = 6,
  local_variables_forbidden_p = 96,
  in_unbraced_linkage_specification_p = false, in_declarator_p = false,
  in_template_argument_list_p = false, in_iteration_statement_p = 16,
  in_switch_statement_p = 71,
  type_definition_forbidden_message = 0xff390180 "",
  unparsed_functions_queues = 0x500660, num_classes_being_defined = 16,
  num_template_parameter_lists = 1193410560}


-- 


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



More information about the Gcc-bugs mailing list