[Bug c++/59066] [C++11] 'using' instead of 'typedef' causes a segmentation fault.

2014-02-27 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
I don't think the testcase is sufficiently different.  Thanks.

*** This bug has been marked as a duplicate of bug 60182 ***


[Bug c++/59066] [C++11] 'using' instead of 'typedef' causes a segmentation fault.

2014-02-26 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Volker Reichelt reichelt at gcc dot gnu.org ---
Jason, your patch for PR60182 seems to have fixed this one, too.
Do you want to add the reduced testcase (in comment#4) to the testsuite?


[Bug c++/59066] [C++11] 'using' instead of 'typedef' causes a segmentation fault.

2014-02-14 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-14
 CC||reichelt at gcc dot gnu.org
Summary|C++11, 'using' instead of   |[C++11] 'using' instead of
   |'typedef' causes a  |'typedef' causes a
   |segmentation fault. |segmentation fault.
 Ever confirmed|0   |1
  Known to fail||4.7.0, 4.8.0, 4.9.0

--- Comment #4 from Volker Reichelt reichelt at gcc dot gnu.org ---
Confirmed. Reduced testcase that crashes since GCC 4.7.0 when template
alias (aka 'using') was introduced:


templatetypename T, template typename class U void foo(const UT) {}

templatetypename struct A
{
  using B = A;
  B bar();
};

void baz()
{
  foo(Aint().bar());
}


Stack trace with current 4.8 branch:

bug.cc: In function 'void baz()':
bug.cc:11:22: internal compiler error: Segmentation fault
   foo(Aint().bar());
  ^
0xad469f crash_signal
../../gcc/gcc/toplev.c:332
0xcff5e2 tree_check
../../gcc/gcc/tree.h:3683
0xcff5e2 make_decl_rtl(tree_node*)
../../gcc/gcc/varasm.c:1197
0x7d72f3 rtx_for_function_call
../../gcc/gcc/calls.c:1675
0x7d72f3 expand_call(tree_node*, rtx_def*, int)
../../gcc/gcc/calls.c:2983
0x8aadcd expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**)
../../gcc/gcc/expr.c:10263
0x7e82fd expand_call_stmt
../../gcc/gcc/cfgexpand.c:2114
0x7e82fd expand_gimple_stmt_1
../../gcc/gcc/cfgexpand.c:2152
0x7e82fd expand_gimple_stmt
../../gcc/gcc/cfgexpand.c:2304
0x7e9162 expand_gimple_basic_block
../../gcc/gcc/cfgexpand.c:4138
0x7eacdc gimple_expand_cfg
../../gcc/gcc/cfgexpand.c:4657
Please submit a full bug report, [etc.]


Stack trace with trunk:

cc1plus: internal compiler error: Segmentation fault
0xba523f crash_signal
../../gcc/gcc/toplev.c:337
0x87e004 tree_check
../../gcc/gcc/tree.h:2918
0x87e004 decl_assembler_name_hash
../../gcc/gcc/symtab.c:98
0x87e46f insert_to_assembler_name_hash
../../gcc/gcc/symtab.c:209
0x87e5c1 symtab_initialize_asm_name_hash
../../gcc/gcc/symtab.c:432
0x88cda2 analyze_functions
../../gcc/gcc/cgraphunit.c:1124
0x88e2a5 finalize_compilation_unit()
../../gcc/gcc/cgraphunit.c:2320
0x689cae cp_write_global_declarations()
../../gcc/gcc/cp/decl2.c:4448
Please submit a full bug report, [etc.]


[Bug c++/59066] C++11, 'using' instead of 'typedef' causes a segmentation fault.

2013-11-13 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Doesn't look like a front-end issue.


[Bug c++/59066] C+11, 'using' instead of 'typedef' causes a segmentation fault.

2013-11-10 Thread alexandre.hamez at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

Alexandre Hamez alexandre.hamez at gmail dot com changed:

   What|Removed |Added

Summary|Segmentation fault. |C+11, 'using' instead of
   ||'typedef' causes a
   ||segmentation fault.

--- Comment #2 from Alexandre Hamez alexandre.hamez at gmail dot com ---
I've found what causes the crash. On line 1199 of bug.ii, if 'using data_type =
variantidentityC' is changed to 'typedef variantidentityC data_type',
the segmentation no longer occurs [1].
I changed the summary to reflect that.

[1] Note that this particular code will fail to compile because of a missing
member.