[Bug c++/99362] New: invalid unused result
gcc at cookiesoft dot de
gcc-bugzilla@gcc.gnu.org
Wed Mar 3 15:36:23 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99362
Bug ID: 99362
Summary: invalid unused result
Product: gcc
Version: 10.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: gcc at cookiesoft dot de
Target Milestone: ---
Target: arm
The following code will emit a warning on arm 32 bit compilers:
```
struct S {
[[nodiscard]] S() {}
};
int main() {
S s;
}
```
```
<source>: In function 'int main()':
<source>:6:7: warning: ignoring return value of 'S::S()', declared with
attribute 'nodiscard' [-Wunused-result]
6 | S s;
| ^
<source>:2:19: note: declared here
2 | [[nodiscard]] S() {}
| ^
<source>:6:7: warning: ignoring return value of 'S::S()', declared with
attribute 'nodiscard' [-Wunused-result]
6 | S s;
| ^
<source>:2:19: note: declared here
2 | [[nodiscard]] S() {}
| ^
Compiler returned: 0
```
```
S s = {}
```
does not emit such warning.
Does not emit a warning on x86 compiler though.
Does not emit a warning on 9.x branch, seems to be a regression.
Godbolt link: https://godbolt.org/z/4Kof1x
More information about the Gcc-bugs
mailing list