https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119466
Bug ID: 119466
Summary: Incorrect result generated by g++
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: zleyk at tamu dot edu
Target Milestone: ---
Created attachment 60878
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60878&action=edit
A simple C++ code producing the buggy result when compiled by g++
Using g++ on my machine (and several others) 555 is produced instead of the
correct answer 559. The assembly shows that the address c points to (b's
address) is stored in a register, the function call is made, then the return
value of the function is stored at the address the register holds instead of
loading c's address again. Note that the clang-based compilers produce the
correct answer 559. Also, the code analysis (code tracing) indicates that 555
is incorrect.