https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114399
Bug ID: 114399 Summary: [14] RISC-V rv32i miscompile Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: int a; struct b { long long c; }; struct d { short e; long long f; }; union { struct b g; struct d h; } i; int main() { i.h.f++; a = i.g.c >> 1; __builtin_printf("%X\n", a); } Commands: > gcc red.c -o red.out -m32 -fno-strict-aliasing -static > ./red.out 80000000 > riscv64-unknown-linux-gnu-gcc -mabi=ilp32 -march=rv32i red.c -o red.out > -fno-strict-aliasing -static > /scratch/tc-testing/tc-mar-19/build-rv32-64-gcv/bin/qemu-riscv32 red.out 0 Discovered/tested with r14-9544-gc7a774edbf8 (not bisected) Found via fuzzer. I don't think this has any undefined behavior but the combo of union/struct has me a bit wary.