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

            Bug ID: 108499
           Summary: False positive -Warray-bounds
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: steveire at gmail dot com
  Target Milestone: ---

```

#include <vector>

class MyStruct
{
public:
    std::vector<double> const& refAccessor();
    std::size_t getSize();
};

void emitsWarning()
{
    MyStruct params;

    auto unusedThing = params.refAccessor();
    (void)unusedThing;
    auto const theSize = params.getSize();

    std::vector<double> initialVelocities(theSize, 0.0);
    initialVelocities.back() = 6;
    std::vector<double> initialJoints(theSize, 0.0);
    initialJoints.back() = 5;
}

```

-Werror=array-bounds  -O2

```
<source>: In function 'void emitsWarning()':
<source>:20:27: error: array subscript -1 is outside array bounds of 'double
[1152921504606846975]' [-Werror=array-bounds]
   20 |     initialVelocities.back() = 6;
      |     ~~~~~~~~~~~~~~~~~~~~~~^~
cc1plus: some warnings being treated as errors
Compiler returned: 1
```

https://gcc.godbolt.org/z/sYrK6o54a

Reply via email to