In the GCC abi, single element structs are returned as registers, larger structs and any struct with a copy ctor are returned by passing a hidden "sret" pointer to the struct. llvm-gcc compiles this to:
Suddenly the the C compiler compiling the CBE output will return the struct in a register, instead of passing it by dummy argument. This causes miscompilation of Misc-C++/bigfib and probably a lot of other stuff because this affects std::string.
The text was updated successfully, but these errors were encountered: