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

             Bug #: 50311
           Summary: [4.7 Regression] [C++0x] ICE: SIGSEGV in
                    cx_check_missing_mem_inits (semantics.c:5808) with
                    variadic template
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: zso...@seznam.cz


Created attachment 25209
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25209
reduced testcase

Compiler output:
$ gcc -std=gnu++0x testcase.C
testcase.C: In instantiation of 'struct A<MoveOnly, MoveOnly>':
testcase.C:10:44:   required from 'struct tuple<MoveOnly, MoveOnly>'
testcase.C:21:30:   required from here
testcase.C:6:8: warning: direct base 'MoveOnly' inaccessible in 'A<MoveOnly,
MoveOnly>' due to ambiguity [enabled by default]
==22934== Invalid read of size 2
==22934==    at 0x6CCF01: cx_check_missing_mem_inits(tree_node*, tree_node*,
bool) (semantics.c:5808)
==22934==    by 0x6EA5E4: register_constexpr_fundef(tree_node*, tree_node*)
(semantics.c:5853)
==22934==    by 0x5ACCA6: finish_function(int) (decl.c:13195)
==22934==    by 0x6C367D: synthesize_method(tree_node*) (method.c:770)
==22934==    by 0x6447FC: mark_used(tree_node*) (decl2.c:4312)
==22934==    by 0x5830EA: build_over_call(z_candidate*, int, int) (call.c:6801)
==22934==    by 0x57F8D4: build_new_method_call(tree_node*, tree_node*,
VEC_tree_gc**, tree_node*, int, tree_node**, int) (call.c:7396)
==22934==    by 0x580ADE: build_special_member_call(tree_node*, tree_node*,
VEC_tree_gc**, tree_node*, int, int) (call.c:7070)
==22934==    by 0x6B30C8: expand_aggr_init_1(tree_node*, tree_node*,
tree_node*, tree_node*, int, int) (init.c:1503)
==22934==    by 0x6BA692: emit_mem_initializers(tree_node*) (init.c:972)
==22934==    by 0x5D3947: tsubst_expr(tree_node*, tree_node*, int, tree_node*,
bool) (pt.c:12439)
==22934==    by 0x5CFEA0: tsubst_expr(tree_node*, tree_node*, int, tree_node*,
bool) (pt.c:12612)
==22934==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==22934== 
testcase.C: In instantiation of 'tuple<_Elements>::tuple() [with _Elements =
{MoveOnly, MoveOnly}]':
testcase.C:21:30:   required from here
testcase.C:6:8: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Tested revisions:
r178602 - crash
4.6 r177922 - OK

Reply via email to