This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/10349] testsuite failure in g++.dg/parse/stack1.C
- From: "ghazi at caip dot rutgers dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Jan 2004 16:17:59 -0000
- Subject: [Bug optimization/10349] testsuite failure in g++.dg/parse/stack1.C
- References: <20030408155600.10349.ghazi@caip.rutgers.edu>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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