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

            Bug ID: 118073
           Summary: Bad diagnostic: 'nontype_argument_pack' not supported
                    by dump_expr
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: blubban at gmail dot com
  Target Milestone: ---

template<int... Ns>
struct index_sequence {};

void foo()
{
    index_sequence<5> bar = index_sequence<1>();
}


No flags needed.

Expected:

<source>: In function 'void foo()':
<source>:6:29: error: conversion from 'index_sequence<1>' to non-scalar type
'index_sequence<5>' requested
    6 |     index_sequence<5> bar = index_sequence<1>();
      |                             ^~~~~~~~~~~~~~~~~~~


Actual:

<source>: In function 'void foo()':
<source>:6:29: error: conversion from 'index_sequence<'nontype_argument_pack'
not supported by dump_expr<expression error>>' to non-scalar type
'index_sequence<'nontype_argument_pack' not supported by dump_expr<expression
error>>' requested
    6 |     index_sequence<5> bar = index_sequence<1>();
      |                             ^~~~~~~~~~~~~~~~~~~


GCC gives the expected error in gcc 4.4 through 7.x (older untested, Godbolt
coverage is spotty below 4.5); gives a slightly different error in 8.x and 9.x,
and gives this output in 10.x through 14.x and trunk-20241216.

https://godbolt.org/z/ohK3M69s7

Reply via email to