public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack
@ 2021-03-29  7:15 hewillk at gmail dot com
  2021-03-29 17:26 ` [Bug c++/99809] " mpolacek at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: hewillk at gmail dot com @ 2021-03-29  7:15 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 99809
           Summary: ICE: sorry, unimplemented: unexpected AST of kind
                    nontype_argument_pack
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hewillk at gmail dot com
  Target Milestone: ---

https://godbolt.org/z/4dnnTTzMW

#include <concepts>

auto f(auto... args) {
  return [](std::same_as<decltype(args)> auto) {};
}

int main() {
  f(0)(0);
}

<source>:4:10: sorry, unimplemented: unexpected AST of kind
nontype_argument_pack
    4 |   return [](std::same_as<decltype(args)> auto) {};
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:4:10: internal compiler error: in potential_constant_expression_1, at
cp/constexpr.c:8854
0x1cfb7f9 internal_error(char const*, ...)
        ???:0
0x6ba871 fancy_abort(char const*, int, char const*)
        ???:0
0x72ac1e is_nondependent_constant_expression(tree_node*)
        ???:0
0x91465c instantiate_non_dependent_expr_sfinae(tree_node*, int)
        ???:0
0x98afc1 finish_decltype_type(tree_node*, bool, int)
        ???:0
0x915dc3 tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x941bb6 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x739946 tsubst_constraint(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x949a91 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x91c84f instantiate_decl(tree_node*, bool, bool)
        ???:0
0x7c6c0e maybe_instantiate_decl(tree_node*)
        ???:0
0x7c8370 mark_used(tree_node*, int)
        ???:0
0x6de097 build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        ???:0
0x980c6c finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
        ???:0
0x8e12ad c_parse_file()
        ???:0
0xa600a2 c_common_parse_file()
        ???:0
Please submit a full bug report,
with preprocessed source if appropriate.

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

* [Bug c++/99809] ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack
  2021-03-29  7:15 [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack hewillk at gmail dot com
@ 2021-03-29 17:26 ` mpolacek at gcc dot gnu.org
  2021-03-29 17:31 ` hewillk at gmail dot com
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2021-03-29 17:26 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-03-29
                 CC|                            |mpolacek at gcc dot gnu.org
           Keywords|ice-on-invalid-code         |ice-on-valid-code
     Ever confirmed|0                           |1

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed, clang++ compiles it.  Reduced:

namespace std {
template <typename> bool is_same_v;
namespace __detail {
template <typename, typename _Up> concept __same_as = is_same_v<_Up>;
}
template <typename _Tp, typename _Up>
concept same_as = __detail::__same_as<_Up, _Tp>;
} // namespace std
void f(auto... args) {
  [](std::same_as<decltype(args)> auto) {};
}
int main() { f(); }

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

* [Bug c++/99809] ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack
  2021-03-29  7:15 [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack hewillk at gmail dot com
  2021-03-29 17:26 ` [Bug c++/99809] " mpolacek at gcc dot gnu.org
@ 2021-03-29 17:31 ` hewillk at gmail dot com
  2021-03-31 14:38 ` hewillk at gmail dot com
  2021-04-16  8:17 ` hewillk at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: hewillk at gmail dot com @ 2021-03-29 17:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from 康桓瑋 <hewillk at gmail dot com> ---
I think this is not a valid code even if clang accepts it, since the parameter
packs args are not expanded.

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

* [Bug c++/99809] ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack
  2021-03-29  7:15 [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack hewillk at gmail dot com
  2021-03-29 17:26 ` [Bug c++/99809] " mpolacek at gcc dot gnu.org
  2021-03-29 17:31 ` hewillk at gmail dot com
@ 2021-03-31 14:38 ` hewillk at gmail dot com
  2021-04-16  8:17 ` hewillk at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: hewillk at gmail dot com @ 2021-03-31 14:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from 康桓瑋 <hewillk at gmail dot com> ---
More reduced:

template <typename, typename>
concept C = true;

void f(auto... args) {
  [](C<decltype(args)> auto) {};
}

int main() { f(); }

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

* [Bug c++/99809] ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack
  2021-03-29  7:15 [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack hewillk at gmail dot com
                   ` (2 preceding siblings ...)
  2021-03-31 14:38 ` hewillk at gmail dot com
@ 2021-04-16  8:17 ` hewillk at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: hewillk at gmail dot com @ 2021-04-16  8:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from 康桓瑋 <hewillk at gmail dot com> ---
Hey, the following code (a small variation with PR 100109) triggers the same
ICE in cp/constexpr.c:8889 on gcc 8-11, so maybe this is a regression bug?

template <class... Ts>
void f(Ts... args) {
  [=]{
    enum { x = [=]{ args; }() };
  };
}

template void f<>();

<source>: In instantiation of 'void f(Ts ...) [with Ts = {}]':
<source>:8:19:   required from here
<source>:4:16: sorry, unimplemented: unexpected AST of kind
nontype_argument_pack
    4 |     enum { x = [=]{ args; }() };
      |                ^~~~~~~~~~~~
<source>:4:16: internal compiler error: in potential_constant_expression_1, at
cp/constexpr.c:8889
0x1d02fb9 internal_error(char const*, ...)
        ???:0
0x6bb4f9 fancy_abort(char const*, int, char const*)
        ???:0
0x72a64f potential_constant_expression(tree_node*)
        ???:0
0x7b11c5 finish_function(bool)
        ???:0
0x80714a finish_lambda_function(tree_node*)
        ???:0
0x94ba0b tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x92c502 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
        ???:0
0x91848d tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x918537 tsubst(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x94ba02 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
        ???:0
0x91e36f instantiate_decl(tree_node*, bool, bool)
        ???:0
0x96023b instantiate_pending_templates(int)
        ???:0
0x7cd659 c_parse_final_cleanups()
        ???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.

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

end of thread, other threads:[~2021-04-16  8:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-29  7:15 [Bug c++/99809] New: ICE: sorry, unimplemented: unexpected AST of kind nontype_argument_pack hewillk at gmail dot com
2021-03-29 17:26 ` [Bug c++/99809] " mpolacek at gcc dot gnu.org
2021-03-29 17:31 ` hewillk at gmail dot com
2021-03-31 14:38 ` hewillk at gmail dot com
2021-04-16  8:17 ` hewillk at gmail dot com

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).