[Bug c++/120385] [14/15/16 Regression] GCC 14 incorrectly accepts array prvalues with certain operators

2025-05-23 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120385

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|14.3|14.4

--- Comment #4 from Richard Biener  ---
GCC 14.3 is being released, retargeting bugs to GCC 14.4.

[Bug c++/120385] [14/15/16 Regression] GCC 14 incorrectly accepts array prvalues with certain operators

2025-05-23 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120385

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/120385] [14/15/16 Regression] GCC 14 incorrectly accepts array prvalues with certain operators

2025-05-22 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120385

Jason Merrill  changed:

   What|Removed |Added

   Last reconfirmed||2025-05-22
 Status|UNCONFIRMED |NEW
 CC||jason at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Jason Merrill  ---
https://cplusplus.github.io/CWG/issues/2548.html

[Bug c++/120385] [14/15/16 Regression] GCC 14 incorrectly accepts array prvalues with certain operators

2025-05-21 Thread language.lawyer at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120385

--- Comment #2 from Language Lawyer  ---
(In reply to Andrew Pinski from comment #1)
> Is this still valid?
> ```
> int main()
> {
>   using IA = int[];
>   using IP = int*;
>   void(+IP{IA{ 1, 2, 3 }});
> }
> ```

Prolly, the wording is (was) a bit unclear to reason about

> Which makes this kinda of inconsistent after all.

Explicit casts changing the meaning of code mean inconsistency?

[Bug c++/120385] [14/15/16 Regression] GCC 14 incorrectly accepts array prvalues with certain operators

2025-05-21 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120385

--- Comment #1 from Andrew Pinski  ---
Is this still valid?
```
int main()
{
  using IA = int[];
  using IP = int*;
  void(+IP{IA{ 1, 2, 3 }});
}
```

Which makes this kinda of inconsistent after all.