From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15303 invoked by alias); 7 Jan 2011 12:41:02 -0000 Received: (qmail 15295 invoked by uid 22791); 7 Jan 2011 12:41:01 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 07 Jan 2011 12:40:55 +0000 From: "zsojka at seznam dot cz" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/47211] New: ICE: in cp_build_addr_expr_1, at cp/typeck.c:4866 with -fms-extensions X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: zsojka at seznam dot cz X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Fri, 07 Jan 2011 12:41:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-01/txt/msg00585.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47211 Summary: ICE: in cp_build_addr_expr_1, at cp/typeck.c:4866 with -fms-extensions Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: zsojka@seznam.cz Created attachment 22924 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22924 reduced testcase (from g++.old-deja/g++.benjamin/13908.C) Compiler output: $ gcc -fms-extensions pr47211.C pr47211.C: In member function 'void chile::bar(chile::pmf)': pr47211.C:6:21: internal compiler error: in cp_build_addr_expr_1, at cp/typeck.c:4866 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. (gdb) bt #0 fancy_abort (file=0x121c208 "/usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/typeck.c", line=4866, function=0x121f110 "cp_build_addr_expr_1") at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/diagnostic.c:892 #1 0x00000000005fe948 in cp_build_addr_expr_1 (arg=0x7ffff7ff90a8, strict_lvalue=, complain=3) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/typeck.c:4866 #2 0x00000000005fefb3 in build_x_unary_op (code=ADDR_EXPR, xarg=0x7ffff7ff90a8, complain=3) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/typeck.c:4598 #3 0x00000000005dabcc in cp_parser_unary_expression (parser=0x7ffff5d270b0, address_p=0 '\000', cast_p=0 '\000', pidk=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:6120 #4 0x00000000005db188 in cp_parser_binary_expression (parser=0x7ffff5d270b0, cast_p=, no_toplevel_fold_p=0 '\000', prec=PREC_NOT_OPERATOR, pidk=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:6817 #5 0x00000000005db6a3 in cp_parser_assignment_expression (parser=0x7ffff5d270b0, cast_p=0 '\000', pidk=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:7036 #6 0x00000000005dba3a in cp_parser_expression (parser=0x7ffff5d270b0, cast_p=, pidk=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:7182 #7 0x00000000005dbe62 in cp_parser_expression_statement (parser=0x7ffff5d270b0, in_statement_expr=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8300 #8 0x00000000005cdb00 in cp_parser_statement (parser=0x7ffff5d270b0, in_statement_expr=0x0, in_compound=, if_p=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8161 #9 0x00000000005ced46 in cp_parser_statement_seq_opt (parser=0x7ffff5d270b0, in_statement_expr=0x0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8414 #10 0x00000000005cee7c in cp_parser_compound_statement (parser=0x7ffff5d270b0, in_statement_expr=0x0, in_try=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:8368 #11 0x00000000005e28dc in cp_parser_function_body (parser=0x7ffff5d270b0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:16371 #12 cp_parser_ctor_initializer_opt_and_function_body (parser=0x7ffff5d270b0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:16408 #13 0x00000000005e3052 in cp_parser_function_definition_after_declarator (parser=0x7ffff5d270b0, inline_p=1 '\001') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:19814 #14 0x00000000005d1414 in cp_parser_late_parsing_for_member (parser=0x7ffff5d270b0, flags=, decl_specs=0x7fffffffd780, is_declaration=1 '\001', declares_class_or_enum=0x7fffffffd718, is_cv_qualifier=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:20396 #15 cp_parser_class_specifier (parser=0x7ffff5d270b0, flags=, decl_specs=0x7fffffffd780, is_declaration=1 '\001', declares_class_or_enum=0x7fffffffd718, is_cv_qualifier=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:17081 #16 cp_parser_type_specifier (parser=0x7ffff5d270b0, flags=, decl_specs=0x7fffffffd780, is_declaration=1 '\001', declares_class_or_enum=0x7fffffffd718, is_cv_qualifier=) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:12536 #17 0x00000000005d24e8 in cp_parser_decl_specifier_seq (parser=0x7ffff5d270b0, flags=1, decl_specs=0x7fffffffd780, declares_class_or_enum=0x7fffffffd7e8) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9969 #18 0x00000000005e97bb in cp_parser_simple_declaration (parser=0x7ffff5d270b0, function_definition_allowed_p=1 '\001') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9626 #19 0x00000000005e9be7 in cp_parser_block_declaration (parser=0x7ffff5d270b0, statement_p=0 '\000') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9587 #20 cp_parser_block_declaration (parser=0x7ffff5d270b0, statement_p=0 '\000') at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9521 #21 0x00000000005ed8f2 in cp_parser_declaration (parser=0x7ffff5d270b0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9492 #22 cp_parser_declaration (parser=0x7ffff5d270b0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9399 #23 0x00000000005ec41a in cp_parser_declaration_seq_opt (parser=0x7ffff5d270b0) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:9378 #24 0x00000000005edf69 in cp_parser_translation_unit () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:3461 #25 c_parse_file () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/cp/parser.c:25214 #26 0x00000000006c2195 in c_common_parse_file () at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/c-family/c-opts.c:1071 #27 0x0000000000a24598 in compile_file (argc=14, argv=0x7fffffffdab8) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:579 #28 do_compile (argc=14, argv=0x7fffffffdab8) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:1874 #29 toplev_main (argc=14, argv=0x7fffffffdab8) at /usr/portage/distfiles/svn-src/gcc/trunk/gcc/toplev.c:1937 #30 0x00007ffff6586bbd in __libc_start_main () from /lib/libc.so.6 #31 0x00000000004fef2d in _start () Output - 3.3.6, 3.4.6: $ gcc-3.4.6 -fms-extensions pr47211.C pr47211.C: In member function `void chile::bar(void (chile::*)())': pr47211.C:6: error: taking address of bound pointer-to-member expression Tested revisions: r168552 - crash 4.5 r168062 - infinite loop? 4.4 r168062 - infinite loop? 4.0.4, 4.1.2 - infinite loop? 3.3.6, 3.4.6 - error