On gcc/x86, when a class or struct has a copy constructor or destructor and is passed by value to a function, the caller creates a temporary copy and passes a pointer to the copy. LLVM does the same. msvc++ does not use the pointer trick. It puts the class on the stack like any other function parameter. How to pass a class parameter `byval' while honoring the copy constructor and/or destructor? -- Óscar
Reasonably Related Threads
- Re: [PATCH] lib: Add COMPILE_REGEXP macro to hide regexp constructors/destructors.
- [PATCH] lib: Add COMPILE_REGEXP macro to hide regexp constructors/destructors.
- [LLVMdev] making a copy of a byval aggregate on the callee's frame
- [LLVMdev] making a copy of a byval aggregate on the callee's frame
- [LLVMdev] making a copy of a byval aggregate on the callee's frame