Zdenek Dvorak wrote: > umm... OK. Could you please provide an example (that could perhaps also > be added to documentation) of how TARGET_EXPRs are used, that would > explain the rationale behind this semantics?
The canonical example is: struct S { S(); S(const S&); }; S f(); void g() { S s = f(); } Here, we want to elide the copy from f() into s; therefore, the value of f() is represented as a TARGET_EXPR. Since it appears as the RHS of an assignment, the middle end is required to pass the address of s to f, rather than the address of a temporary, so that f will construct the value directly into s. -- Mark Mitchell CodeSourcery [EMAIL PROTECTED] (650) 331-3385 x713