| ▲ | samdoesnothing 4 days ago | |
Is that the case? I thought that it would be a copy instead of a heap allocation. Of course the compiler could inline it or do something else but semantically its a copy. | ||
| ▲ | masklinn 3 days ago | parent [-] | |
A copy of what? It’s returning a pointer, so i has to be on the heap[0]. gc could create i on the stack then copy it to the heap, but if you plug that code into godbolt you can see that it is not that dumb, it creates a heap allocation then writes the literal directly into that. [0] unless Foo is inlined and the result does not escape the caller’s frame, then that can be done away with. | ||