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

            Bug ID: 126737
           Summary: [14/15/16/17 Regression]  -Wmaybe-uninitialized false
                    positive under -O2
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gnu.ojxq8 at dralias dot com
  Target Milestone: ---

The repro is a small function to pad some input buffer.

Flags to repro:

-O2 -g -std=c++11 -Wall -Wextra -Warray-bounds=2

Code to repro:

#include <algorithm>
#include <string>
#include <vector>
void consume(const char*);
void make_buffer(const std::string& input, std::size_t extra_size)
{
    if (input.size() >= std::string::npos - extra_size) return;
    std::vector<char> buffer(extra_size + input.size() + 1);
    std::copy(input.begin(), input.end(), buffer.data() + 1);
    consume(buffer.data());
}


https://godbolt.org/z/EoadcbzMr

Reply via email to