public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/105644] New: ICE in a fold expression with a requires expression: in iterative_hash_template_arg, at cp/pt.cc:1805
@ 2022-05-18  9:15 namniav at gmail dot com
  2022-05-18 13:18 ` [Bug c++/105644] " marxin at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: namniav at gmail dot com @ 2022-05-18  9:15 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 105644
           Summary: ICE in a fold expression with a requires expression:
                    in iterative_hash_template_arg, at cp/pt.cc:1805
           Product: gcc
           Version: 12.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: namniav at gmail dot com
  Target Milestone: ---

https://godbolt.org/z/8qehadhbT

============
#include <concepts>
#include <type_traits>

#include <utility>
#include <tuple>

template<class T>
concept tuple_like = 
    [] <std::size_t...I> (std::index_sequence<I...>) {
        return ((requires(T t) {
                    { get<I>(t) } ->
std::convertible_to<std::tuple_element_t<I, T>&>;
                }) && ...);
    } (std::make_index_sequence<std::tuple_size_v<T>>{});

static_assert(tuple_like<std::tuple<int>>);
============

Both 12.1 and current trunk version on godbolt.org crashed.
There's no issue if `std::tuple_element_t<I, T>&` is replaced with `int&`.


Compiler output:
<source>: In instantiation of '<lambda(std::index_sequence<I ...>)> [with long
unsigned int ...I = {0}; std::index_sequence<I ...> =
std::integer_sequence<long unsigned int, 0>]':
<source>:13:7:   required from here
<source>:11:23: internal compiler error: in iterative_hash_template_arg, at
cp/pt.cc:1805
   11 |                     { get<I>(t) } ->
std::convertible_to<std::tuple_element_t<I, T>&>;
      |                    
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x2204919 internal_error(char const*, ...)
        ???:0
0x744dd3 fancy_abort(char const*, int, char const*)
        ???:0
0x99a843 iterative_hash_template_arg(tree_node*, unsigned int)
        ???:0
0x7da898 sat_hasher::hash(sat_entry*)
        ???:0
0x7d52c7 satisfaction_cache::satisfaction_cache(tree_node*, tree_node*,
sat_info)
        ???:0
0x7d9c2a constraints_satisfied_p(tree_node*, tree_node*)
        ???:0
0x9b3ffe do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
        ???:0
0x7d7ce2 tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x9dd888 tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x9c8517 instantiate_decl(tree_node*, bool, bool)
        ???:0
0x864c7e maybe_instantiate_decl(tree_node*)
        ???:0
0x866758 mark_used(tree_node*, int)
        ???:0
0x77a52b build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
        ???:0
0xa31a87 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
        ???:0
0x7d9c88 evaluate_concept_check(tree_node*)
        ???:0
0x7c50ec maybe_constant_value(tree_node*, tree_node*, bool)
        ???:0
0xa3dafd finish_static_assert(tree_node*, tree_node*, unsigned int, bool, bool)
        ???:0
0x98c15d c_parse_file()
        ???:0
0xb20141 c_common_parse_file()
        ???:0
```

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

end of thread, other threads:[~2024-05-13 18:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18  9:15 [Bug c++/105644] New: ICE in a fold expression with a requires expression: in iterative_hash_template_arg, at cp/pt.cc:1805 namniav at gmail dot com
2022-05-18 13:18 ` [Bug c++/105644] " marxin at gcc dot gnu.org
2022-10-27  8:04 ` marxin at gcc dot gnu.org
2023-03-30 16:22 ` ppalka at gcc dot gnu.org
2023-08-11  0:19 ` namniav at gmail dot com
2023-08-15 17:54 ` ppalka at gcc dot gnu.org
2024-05-13 18:26 ` mpolacek 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).