[LLVMdev] Wrong calling convention?

David Vandevoorde daveed at vandevoorde.com
Wed Mar 26 10:59:44 PDT 2008


On Mar 26, 2008, at 1:31 PM, Óscar Fuentes wrote:
> Óscar Fuentes <ofv at wanadoo.es> writes:
>
>> BTW, -fpcc-struct-return solves the case that motivated this thread.
>
> -fpcc-struct-return is an ABI change, hence it requires "compiling the
> world". Not acceptable.
>
> I'll be interested on hearing ideas about how to determine how a
> function returns a small struct, without knowing the internals of the
> struct.

You need to know _something_ about the internals.  GCC approximately  
implements the IA-64 C++ ABI; which is fairly conventional in this  
particular aspect of a C++ ABI.  See
	http://www.codesourcery.com/cxx-abi/abi.html#calls

In that ABI, if there is a "nontrivial" (that's a precise term) copy- 
constructor or destructor, the caller is responsible for allocation.

	Daveed





More information about the llvm-dev mailing list