https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98054
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |11.0 Summary|[11 Regression] ICE: in |[11 Regression] ICE: in |pp_cxx_trait_expression, at |pp_cxx_trait_expression, at |cp/cxx-pretty-print.c:2671 |cp/cxx-pretty-print.c:2671 | |since | |r11-4386-g9e2256dcd481ffe3 CC| |ville.voutilainen at gmail dot com --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Started with r11-4386-g9e2256dcd481ffe3, before the revision it was rejected. Reduced test-case: $ cat polymorphicsmallobjecttest.cc.ii struct integral_constant {}; template <bool> using __bool_constant = integral_constant; template <typename _Tp, typename _Up> using __is_nothrow_assignable_impl = __bool_constant<__is_nothrow_assignable(_Tp, _Up)>; template <typename _Tp> struct __is_nt_move_assignable_impl : __is_nothrow_assignable_impl<_Tp, _Tp> {}; template <int _Len> struct aligned_storage { struct type { char __data[_Len]; }; }; template <long _Len> using aligned_storage_t = typename aligned_storage<_Len>::type; template <int bufferSize> class PolymorphicSmallObject { aligned_storage_t<bufferSize> buffer_; }; template <class Obj> void test() { __is_nt_move_assignable_impl<Obj> value; } int main() { test<PolymorphicSmallObject<0>>; return 0; } $ g++ polymorphicsmallobjecttest.cc.ii -c $ g++ polymorphicsmallobjecttest.cc.ii -c -pedantic ‘ polymorphicsmallobjecttest.cc.ii: In instantiation of ‘struct aligned_storage<0>::type’: polymorphicsmallobjecttest.cc.ii:16:33: required from ‘class PolymorphicSmallObject<0>’ polymorphicsmallobjecttest.cc.ii:5:21: in pp_cxx_trait_expression, at cp/cxx-pretty-print.c:2671 10 | char __data[_Len]; | ^~~~~~ 0x65210c pp_cxx_trait_expression(cxx_pretty_printer*, tree_node*) /home/marxin/Programming/gcc/gcc/cp/cxx-pretty-print.c:2671 0x9949ea dump_template_parms /home/marxin/Programming/gcc/gcc/cp/error.c:1945 0x996c3a subst_to_string /home/marxin/Programming/gcc/gcc/cp/error.c:3369 0x996c3a cp_printer /home/marxin/Programming/gcc/gcc/cp/error.c:4361 0x1b72e3c pp_format(pretty_printer*, text_info*) /home/marxin/Programming/gcc/gcc/pretty-print.c:1475 0x1b74ec0 pp_format_verbatim(pretty_printer*, text_info*) /home/marxin/Programming/gcc/gcc/pretty-print.c:1536 0x1b74ec0 pp_verbatim(pretty_printer*, char const*, ...) /home/marxin/Programming/gcc/gcc/pretty-print.c:1790 0x98c3ac print_instantiation_partial_context_line /home/marxin/Programming/gcc/gcc/cp/error.c:3596 0x98c3ac print_instantiation_partial_context /home/marxin/Programming/gcc/gcc/cp/error.c:3705 0x98c3ac print_instantiation_full_context /home/marxin/Programming/gcc/gcc/cp/error.c:3585 0x99791a maybe_print_instantiation_context /home/marxin/Programming/gcc/gcc/cp/error.c:3722 0x99791a cp_diagnostic_starter /home/marxin/Programming/gcc/gcc/cp/error.c:3413 0x1b56c7a diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*) /home/marxin/Programming/gcc/gcc/diagnostic.c:1217 0x1b59338 diagnostic_impl /home/marxin/Programming/gcc/gcc/diagnostic.c:1366 0x1b59338 pedwarn(unsigned int, int, char const*, ...) /home/marxin/Programming/gcc/gcc/diagnostic.c:1599 0x94d269 compute_array_index_type_loc /home/marxin/Programming/gcc/gcc/cp/decl.c:10512 0xa69a70 tsubst(tree_node*, tree_node*, int, tree_node*) /home/marxin/Programming/gcc/gcc/cp/pt.c:15842 0xa54b1f tsubst_decl /home/marxin/Programming/gcc/gcc/cp/pt.c:14475 0xa81ead instantiate_class_template_1 /home/marxin/Programming/gcc/gcc/cp/pt.c:11959 0xa830f2 instantiate_class_template(tree_node*) /home/marxin/Programming/gcc/gcc/cp/pt.c:12196 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.