https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106417
Bug ID: 106417 Summary: [13 Regression] Wrong code with -O0 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vsevolod.livinskiy at gmail dot com Target Milestone: --- Reproducer: #include <stdio.h> signed char var_84 = (signed char)-125; int a; void test() __attribute__((noipa)); void test() { var_84 = ~((a < 4094) ^ int(!a)); } int main() { test(); printf("%d\n", var_84); if (var_84 != -1) __builtin_abort(); } Error: >$ /usr/bin/g++ -O0 driver.cpp && ./a.out -1 >$ g++ -O0 driver.cpp && ./a.out 1 Aborted (core dumped) gcc version 13.0.0 20220722 (3c4af0f0549a07799d76e9e48d3d3bd85197b92a)