On Thu, Dec 4, 2008 at 10:37 AM, Brian <[EMAIL PROTECTED]> wrote:
> Is it safe to cast a function(or delegate) into one that takes more
> arguments, causing those arguments to be ignored?
> Example:
>
> void fn() {
> }
>
> auto fptr = cast(void function(int, int))&fn;
> fptr(1, 2);
>
> // It seems to work with a simple test case, I'm just afraid of it
> blowing up at me later on.
>

No.  According to the D ABI, the callee cleans the stack.  So if you
pass more parameters than the function expects, you'll end up trashing
the stack by leaving extra values on it.

Reply via email to