public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/114290] New: GCC output incorrect output with -O2
@ 2024-03-09 9:52 jlame646 at gmail dot com
2024-03-09 18:34 ` [Bug ipa/114290] " i at rvalue dot moe
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: jlame646 at gmail dot com @ 2024-03-09 9:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
Bug ID: 114290
Summary: GCC output incorrect output with -O2
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: jlame646 at gmail dot com
Target Milestone: ---
The following program gives wrong output `0` with `-O2` for input `2`. When
`f(1,1)` is commented out(or removed) it produces correct output.
https://godbolt.org/z/3rxah7Grx
```
#include <cstdio>
#include <iostream>
struct Node {
int x;
};
Node f(int A, int B) {
if (A < 0) return {0};
return {A / B + (A % B != 0)};
}
Node g(int C, int D) {
if (C > 0) return {0};
return {C / D + (C % D != 0)};
}
int main() {
int n;
std::cin >> n;
f(1, 1); //commenting this line fixes the issue
Node t = g(-1, n);
std::cout << t.x;
}
```
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug ipa/114290] GCC output incorrect output with -O2
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
@ 2024-03-09 18:34 ` i at rvalue dot moe
2024-03-09 18:39 ` [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de sjames at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: i at rvalue dot moe @ 2024-03-09 18:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
rvalue <i at rvalue dot moe> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |i at rvalue dot moe
--- Comment #1 from rvalue <i at rvalue dot moe> ---
I've done some bisect and found the problematic commit was
9f2cfe108f75de49a331ba27f01d509e2c8c1c70 and the problematic patch was
https://gcc.gnu.org/pipermail/gcc-patches/2019-June/524662.html
Tested on target x86_64-unknown-linux-gnu
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
2024-03-09 18:34 ` [Bug ipa/114290] " i at rvalue dot moe
@ 2024-03-09 18:39 ` sjames at gcc dot gnu.org
2024-03-09 18:41 ` sjames at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-03-09 18:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
Sam James <sjames at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sjames at gcc dot gnu.org
Summary|GCC output incorrect output |[11/12/13/14 regression]
|with -O2 |GCC output incorrect output
| |with -O2 since
| |r9-7460-g9f2cfe108f75de
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=90982
--- Comment #2 from Sam James <sjames at gcc dot gnu.org> ---
r9-7460-g9f2cfe108f75de
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
2024-03-09 18:34 ` [Bug ipa/114290] " i at rvalue dot moe
2024-03-09 18:39 ` [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de sjames at gcc dot gnu.org
@ 2024-03-09 18:41 ` sjames at gcc dot gnu.org
2024-03-09 20:53 ` pinskia at gcc dot gnu.org
2024-03-09 21:04 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-03-09 18:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
Sam James <sjames at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #3 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Sam James from comment #2)
> r9-7460-g9f2cfe108f75de
... i.e. r10-1350-gbaf8d2ecd702d4.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
` (2 preceding siblings ...)
2024-03-09 18:41 ` sjames at gcc dot gnu.org
@ 2024-03-09 20:53 ` pinskia at gcc dot gnu.org
2024-03-09 21:04 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-03-09 20:53 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Target Milestone|--- |11.5
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
` (3 preceding siblings ...)
2024-03-09 20:53 ` pinskia at gcc dot gnu.org
@ 2024-03-09 21:04 ` pinskia at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-03-09 21:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114290
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |DUPLICATE
Status|UNCONFIRMED |RESOLVED
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Yes this is a dup of bug 113907.
What is happening is fnsplit happens and splits off from both f and g:
return {A / B + (A % B != 0)};
and
return {C / D + (C % D != 0)};
into a new 2 functions and the range information is still there for A/B (C/D).
Which is fine.
And then ICF comes along and sees this 2 new functions are the same (which they
are) but since the range information is there still from one version of the
function (which in this case the bad one), the wrong result happens.
This is all described in PR 113907 too.
*** This bug has been marked as a duplicate of bug 113907 ***
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-03-09 21:04 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-09 9:52 [Bug c++/114290] New: GCC output incorrect output with -O2 jlame646 at gmail dot com
2024-03-09 18:34 ` [Bug ipa/114290] " i at rvalue dot moe
2024-03-09 18:39 ` [Bug ipa/114290] [11/12/13/14 regression] GCC output incorrect output with -O2 since r9-7460-g9f2cfe108f75de sjames at gcc dot gnu.org
2024-03-09 18:41 ` sjames at gcc dot gnu.org
2024-03-09 20:53 ` pinskia at gcc dot gnu.org
2024-03-09 21:04 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).