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

            Bug ID: 109339
           Summary: stop_token compiled with -Og yields
                    maybe-uninitialized
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc at heine dot tech
  Target Milestone: ---

This happens since gcc 12.

This snippet compiled with -std=c++20 -Og -Wmaybe-uninitialized

```
#include <stop_token>

int main() {
    std::stop_source ss;
}
```

yields this warning

```
In constructor 'std::stop_source::stop_source()',
    inlined from 'int main()' at <source>:4:22:
/opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/stop_token:480:21:
warning: 'ss' may be used uninitialized [-Wmaybe-uninitialized]
  480 |     stop_source() : _M_state(*this)
      |                     ^~~~~~~~~~~~~~~
/opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/stop_token: In function
'int main()':
/opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/stop_token:397:7: note: by
argument 2 of type 'const std::stop_source&' to
'std::stop_token::_Stop_state_ref::_Stop_state_ref(const std::stop_source&)'
declared here
  397 |       _Stop_state_ref(const stop_source&)
      |       ^~~~~~~~~~~~~~~
<source>:4:22: note: 'ss' declared here
    4 |     std::stop_source ss;
      |                      ^~
```

Godbolt: https://godbolt.org/z/KofErdEzY

Reply via email to