https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109775
Bug ID: 109775 Summary: gcc misidentifies a VLA Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: janezz55 at gmail dot com Target Milestone: --- If I compile the example .cpp file: gcc -std=c++20 -Wextra -Wall -Wpedantic add_sub_tests.cpp -o a gcc produces the warning: ../intt.hpp: In member function 'constexpr auto intt::intt< <template-parameter-1-1>, N, <anonymous> >::naimul(const intt::intt< <template-parameter-1-1>, N, <anonymous> >&) const': ../intt.hpp:675:24: warning: ISO C++ forbids variable length array 'v_' [-Wvla] 675 | D const pp(D(v_[i]) * o.v_[S - i]); | ^~ But no VLA is involved and clang++ 15 manages to avoid this issue. The example file is here: https://github.com/user1095108/intt/blob/master/tests/add_sub_tests.cpp I believe the bug was present in prior versions of gcc as well.