https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109319
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Summary|[13 Regression] ICE in |[12/13 Regression] ICE in
|build_min_non_dep_op_overlo |build_min_non_dep_op_overlo
|ad, at cp/tree.cc:3793 |ad, at cp/tree.cc:3793
| |since r12-5510
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> With release checking I see
Those are two separate testcases which just differ in 0,1 vs. 1,0.
Anyway, adjusted testcase so that it isn't so invalid:
struct S
{
static int &operator[] (int x) { static int a[2]; return a[x]; }
};
template <int N>
int
foo ()
{
S s;
++s[0, 1];
return 0;
}
and without the template <int N> line is accepted with a pedwarn.
And, if it is changed to:
struct S
{
int &operator[] (int x) { static int a[2]; return a[x]; }
};
template <int N>
int
foo ()
{
S s;
++s[0, 1];
return 0;
}
then it is also accepted with pedwarn without the template <int N> line and
otherwise ICEs already starting with r12-5510-gb38c9cf6d570f6.