public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
@ 2022-01-22 11:11 glisse at gcc dot gnu.org
  2022-01-22 11:14 ` [Bug c++/104184] " glisse at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-01-22 11:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

            Bug ID: 104184
           Summary: [11/12 Regression] ICE Error reporting routines
                    re-entered. xref_basetypes
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: glisse at gcc dot gnu.org
  Target Milestone: ---

This is reduced from valid code (I think) and it still compiles with "g++ -c
-w" or "clang++ -c", although the undefined inline function seems to play a
strong role, so this may not be exactly the same as the original ICE. The call
stack starts the same (xref_basetypes) but in the original it went through
"unify" and only failed with gcc-12 (not 11) with -Wall and -Wextra.

template <long> using mp_size_t = int;
template <class...> struct mp_list;
template <class> struct mp_identity { using type = int; };
template <class... T> struct mp_inherit : T... {};
template <class T> using mpmf_wrap = mp_identity<T>;
template <class T> using mpmf_unwrap = typename T::type;
template <class, class> struct mp_map_find_impl;
template <template <class...> class M, class... T, class K> 
struct mp_map_find_impl<M<T...>, K> { 
  using U = mp_inherit<mpmf_wrap<T>...>;
  static mp_identity<void> f(mp_identity<int> *); 
  using type = mpmf_unwrap<decltype(f((U *)0))>;
};  
template <class M, class K> 
using mp_map_find = typename mp_map_find_impl<M, K>::type;
template <class> using mp_second = int;
template <class, int I> struct mp_at_c_impl { 
  using _map = mp_list<mp_list<>, int>;
  using type = mp_second<mp_map_find<_map, mp_size_t<I>>>;
};  
template <typename> using make_arg_list = mp_identity<void>;
template <typename Parameters, typename> struct argument_pack { 
  using type = typename mp_at_c_impl<
      typename make_arg_list<typename Parameters::parameter_spec>::type,
      0>::type;
}; 
struct parameters {
  typedef mp_list<> parameter_spec;
}; 
template <typename> 
using boost_param_result_39refine_mesh_3 = mp_identity<void>;
template <typename ParameterArgumentType0 = double> 
inline typename boost_param_result_39refine_mesh_3<
    typename argument_pack<parameters, ParameterArgumentType0>::type>::type
refine_mesh_3();
int main() { refine_mesh_3(); }

Internal compiler error: Error reporting routines re-entered.
0xec0348 xref_basetypes(tree_node*, tree_node*)
        ../../src/gcc/cp/decl.cc:15783
0x101d194 instantiate_class_template_1
        ../../src/gcc/cp/pt.cc:11953
0x101ec31 instantiate_class_template(tree_node*)
        ../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
        ../../src/gcc/cp/typeck.cc:143
0x102d168 lookup_base(tree_node*, tree_node*, int, base_kind*, int)
        ../../src/gcc/cp/search.cc:229
0xe0ea26 standard_conversion
        ../../src/gcc/cp/call.cc:1403
0xe12484 implicit_conversion_1
        ../../src/gcc/cp/call.cc:2031
0xe12484 implicit_conversion
        ../../src/gcc/cp/call.cc:2131
0xe13d7e add_function_candidate
        ../../src/gcc/cp/call.cc:2465
0xe15349 add_candidates
        ../../src/gcc/cp/call.cc:6182
0xe1c362 add_candidates
        ../../src/gcc/cp/call.cc:6051
0xe1c362 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../src/gcc/cp/call.cc:11012
0x1039e3d finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
        ../../src/gcc/cp/semantics.cc:2788
0xfe96d4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        ../../src/gcc/cp/pt.cc:20780
0xff5e8c tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16162
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:15461
0x1005a77 tsubst_decl
        ../../src/gcc/cp/pt.cc:14815
0x101d842 instantiate_class_template_1
        ../../src/gcc/cp/pt.cc:12076
0x101ec31 instantiate_class_template(tree_node*)
        ../../src/gcc/cp/pt.cc:12311

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
@ 2022-01-22 11:14 ` glisse at gcc dot gnu.org
  2022-01-22 11:19 ` glisse at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-01-22 11:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
A different reduction from the same code. This one does not compile with clang
anymore. ICEs with -Wall -W, but not if I remove one of them.

using mp_false = struct mp_identity { using type = void; };
template <bool, class T> using mp_if_c = typename T ::type;
template <class L, long I> using mp_at_c = typename mp_if_c<I, L>::type;
template <typename List, typename, typename> using make_arg_list = List;
template <typename SpecSeq> using make_parameter_spec_items = SpecSeq;
template <typename Parameters> struct argument_pack {
  using type =
      mp_at_c<typename make_arg_list<
                  typename make_parameter_spec_items<
                      typename Parameters::parameter_spec>::type,
                  typename Parameters::deduced_listboosttag_keyword_arg,
                  mp_false>::type,
              0>;
};
void no_exude();
template <typename> using boost_param_result_465refine_mesh_3 = mp_identity;
template <typename ParameterArgumentType0, typename ParameterArgumentType1,
          typename ParameterArgumentType2, typename ParameterArgumentType3,
          typename ParameterArgumentType4, typename ParameterArgumentType5>
typename boost_param_result_465refine_mesh_3<
    typename argument_pack<ParameterArgumentType5>::type>::type
refine_mesh_3(ParameterArgumentType0, ParameterArgumentType1,
              ParameterArgumentType2, ParameterArgumentType3,
              ParameterArgumentType4, ParameterArgumentType5 a5) {}
int verify___trans_tmp_1, image_domain;
struct Tester {
  template <typename C3t3, typename Domain, typename Criteria,
            typename Domain_type_tag>
  void verify(C3t3 c3t3, Domain domain, Criteria criteria, Domain_type_tag) {
    refine_mesh_3(c3t3, domain, criteria, no_exude, verify___trans_tmp_1,
                  verify___trans_tmp_1);
  }
} image_c3t3;
struct Image_tester : Tester {
  void image() {
    void criteria();
    verify(image_c3t3, image_domain, criteria, int());
  }
};

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
  2022-01-22 11:14 ` [Bug c++/104184] " glisse at gcc dot gnu.org
@ 2022-01-22 11:19 ` glisse at gcc dot gnu.org
  2022-01-22 11:37 ` pinskia at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-01-22 11:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
And the stack trace for comment #1

Internal compiler error: Error reporting routines re-entered.
0xff6b0d tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16068
0xff5f6d tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16055
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:15461
0xff5f6d tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16055
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:15461
0x1005a77 tsubst_decl
        ../../src/gcc/cp/pt.cc:14815
0x101d842 instantiate_class_template_1
        ../../src/gcc/cp/pt.cc:12076
0x101ec31 instantiate_class_template(tree_node*)
        ../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
        ../../src/gcc/cp/typeck.cc:143
0x107163d complete_type_or_maybe_complain(tree_node*, tree_node*, int)
        ../../src/gcc/cp/typeck.cc:156
0xff73d0 tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16081
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:15461
0xee6e31 dump_template_bindings
        ../../src/gcc/cp/error.cc:486
0xee0619 dump_function_decl
        ../../src/gcc/cp/error.cc:1805
0xee8602 decl_to_string
        ../../src/gcc/cp/error.cc:3225
0xee8602 cp_printer
        ../../src/gcc/cp/error.cc:4396
0x281b82f pp_format(pretty_printer*, text_info*)
        ../../src/gcc/pretty-print.cc:1475

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
  2022-01-22 11:14 ` [Bug c++/104184] " glisse at gcc dot gnu.org
  2022-01-22 11:19 ` glisse at gcc dot gnu.org
@ 2022-01-22 11:37 ` pinskia at gcc dot gnu.org
  2022-01-22 23:13 ` glisse at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-01-22 11:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
   Target Milestone|---                         |11.3

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2022-01-22 11:37 ` pinskia at gcc dot gnu.org
@ 2022-01-22 23:13 ` glisse at gcc dot gnu.org
  2022-01-22 23:30 ` glisse at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-01-22 23:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> ---
comment #1 actually reduces to

struct voider {
  using type = void;
};
template <typename P> struct rename : P {};
template <typename> using ignore = voider;
template <typename T> typename ignore<typename rename<T>::type>::type g(T a) {}
void f() { g(1); }

(still questionable and rejected by clang, I think I'll also attach the
compressed initial preprocessed file, in case the reductions hit different
bugs)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2022-01-22 23:13 ` glisse at gcc dot gnu.org
@ 2022-01-22 23:30 ` glisse at gcc dot gnu.org
  2022-01-24  8:10 ` [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a marxin at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-01-22 23:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> ---
https://geometrica.saclay.inria.fr/team/Marc.Glisse/tmp/mybug.cc.xz
(1.7M after compression still exceeds the limit)

With -Wall -Wextra

Internal compiler error: Error reporting routines re-entered.
0xec0348 xref_basetypes(tree_node*, tree_node*)
        ../../src/gcc/cp/decl.cc:15783
0x101d194 instantiate_class_template_1
        ../../src/gcc/cp/pt.cc:11953
0x101ec31 instantiate_class_template(tree_node*)
        ../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
        ../../src/gcc/cp/typeck.cc:143
0xff0ad6 get_template_base
        ../../src/gcc/cp/pt.cc:23282
0xff2720 unify
        ../../src/gcc/cp/pt.cc:24348
0xff10d4 unify
        ../../src/gcc/cp/pt.cc:24499
0xfee75b unify_one_argument
        ../../src/gcc/cp/pt.cc:22472
0xfffd65 type_unification_real
        ../../src/gcc/cp/pt.cc:22595
0x1019da9 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool,
bool)
        ../../src/gcc/cp/pt.cc:21923
0xe146d9 add_template_candidate_real
        ../../src/gcc/cp/call.cc:3544
0xe15633 add_template_candidate
        ../../src/gcc/cp/call.cc:3632
0xe15633 add_candidates
        ../../src/gcc/cp/call.cc:6165
0xe1c362 add_candidates
        ../../src/gcc/cp/call.cc:6051
0xe1c362 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../src/gcc/cp/call.cc:11012
0x1039e3d finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
        ../../src/gcc/cp/semantics.cc:2788
0xfe96d4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        ../../src/gcc/cp/pt.cc:20780
0xff5e8c tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:16162
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../src/gcc/cp/pt.cc:15461

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2022-01-22 23:30 ` glisse at gcc dot gnu.org
@ 2022-01-24  8:10 ` marxin at gcc dot gnu.org
  2022-01-24  8:16 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-01-24  8:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[11/12 Regression] ICE      |[11/12 Regression] ICE
                   |Error reporting routines    |Error reporting routines
                   |re-entered. xref_basetypes  |re-entered. xref_basetypes
                   |                            |since
                   |                            |r11-291-g0f50f6daa140186a
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-01-24
                 CC|                            |jason at gcc dot gnu.org,
                   |                            |marxin at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r11-291-g0f50f6daa140186a.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2022-01-24  8:10 ` [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a marxin at gcc dot gnu.org
@ 2022-01-24  8:16 ` pinskia at gcc dot gnu.org
  2022-01-24  9:12 ` rguenth at gcc dot gnu.org
  2022-01-26  5:01 ` jason at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-01-24  8:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #5)
> Started with r11-291-g0f50f6daa140186a.

Which does make it look so much related to PR 103057.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2022-01-24  8:16 ` pinskia at gcc dot gnu.org
@ 2022-01-24  9:12 ` rguenth at gcc dot gnu.org
  2022-01-26  5:01 ` jason at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-01-24  9:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a
  2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2022-01-24  9:12 ` rguenth at gcc dot gnu.org
@ 2022-01-26  5:01 ` jason at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: jason at gcc dot gnu.org @ 2022-01-26  5:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #6)
> (In reply to Martin Liška from comment #5)
> > Started with r11-291-g0f50f6daa140186a.
> 
> Which does make it look so much related to PR 103057.

Yep, my patch for 103057 fixes the testcase from comment #4.

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-01-26  5:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-22 11:11 [Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes glisse at gcc dot gnu.org
2022-01-22 11:14 ` [Bug c++/104184] " glisse at gcc dot gnu.org
2022-01-22 11:19 ` glisse at gcc dot gnu.org
2022-01-22 11:37 ` pinskia at gcc dot gnu.org
2022-01-22 23:13 ` glisse at gcc dot gnu.org
2022-01-22 23:30 ` glisse at gcc dot gnu.org
2022-01-24  8:10 ` [Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes since r11-291-g0f50f6daa140186a marxin at gcc dot gnu.org
2022-01-24  8:16 ` pinskia at gcc dot gnu.org
2022-01-24  9:12 ` rguenth at gcc dot gnu.org
2022-01-26  5:01 ` jason at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).