https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110667
Bug ID: 110667 Summary: gcc-14, ICE: internal compiler error: in replace_reg, at reg-stack.cc:722 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: 141242068 at smail dot nju.edu.cn Target Milestone: --- When compiling below program using gcc-14 with option `gcc-14 -Ofast a.c`, gcc-14 crashes: ``` #include <assert.h> #include <stdint.h> void f() { long double res = 0; asm("" : "=&f"(res) : "f"(40.), "f"(2.)); assert(res == 42.); } ``` GCC's output is pasted below: ``` <source>: In function 'f': <source>:6:3: error: output constraint 0 must specify a single register 6 | asm("" : "=&f"(res) : "f"(40.), "f"(2.)); | ^~~ during RTL pass: stack <source>:8:1: internal compiler error: in replace_reg, at reg-stack.cc:722 8 | } | ^ 0x214e13e internal_error(char const*, ...) ???:0 0x9cd8e8 fancy_abort(char const*, int, char const*) ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ``` This can be verified by visiting the Compiler Explorer: https://gcc.godbolt.org/z/cbYGeaze8