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

            Bug ID: 103618
           Summary: constexpr std::reverse produces strict-overflow
                    warning
           Product: gcc
           Version: og11 (devel/omp/gcc-11)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: maik.urbannek at cattatech dot de
  Target Milestone: ---

(error.cpp)
```cpp
#include <algorithm>
#include <array>
#include <cstdio>

constexpr static std::array<char,4> foo()
{
    std::array<char,4> raw={'\0','a','b','c'};
    std::reverse(raw.begin(), raw.end());
    return raw;
}

int main() {
    constexpr std::array<char,4> a=foo();
    puts(a.data());
    return 0;
}
```

command
`gcc -o error error.cpp -std=c++20 -Werror=strict-overflow`

Reply via email to