foo f;
foo g = f;
Whereas I had really imagined it would use the default constructor, followed by the operator= function if present.
In other news, I am working on interesting stuff but haven't spoken about it yet. See CIL, the C Intermediate Language for a really interesting approach to compiler IR: It uses (a subset of) C as an intermediate language for C.