https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117723
Bug ID: 117723 Summary: Miscompile with -O1 and -O0/2/3 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: yunboni at smail dot nju.edu.cn Target Milestone: --- When I compiled this code with -O1, its output was 0. With -O0/2/3, it was 1: ```c int printf(char *, ...); int a, b = 3; int c(int d, int e) { if (d & 1) { if (e || (d & 2)) return 1; else return 0; } return 0; } int main() { a = c(b - 98, b); printf("%d\n", a); } ``` Compiler Explorer: https://godbolt.org/z/44T1cxGoz It seems to be a recent regression.