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).