Mercurial > projects > ldc
view test/calls1.d @ 328:7086a84ab3d6 trunk
[svn r349] Fixed problems with static arrays of void as well as a static arrays with zero length.
Fixed issues with DMD generated assert statements when using class invariants, generally due to incomplete ASTs.
Removed some dead code.
Added a few comments.
author | lindquist |
---|---|
date | Fri, 11 Jul 2008 00:17:00 +0200 |
parents | 068cb3c60afb |
children |
line wrap: on
line source
module calls1; import tango.core.Vararg; extern(C) int printf(char*, ...); void main() { {int a = byVal1(3);} {int a = void; byRef1(a);} {char[] c = void; refType(c);} {char[] c = void; refTypeByRef(c);} {S s = void; structByVal(s);} {S s = void; structByRef(s);} {S s = void; structByPtr(&s);} {printf("c-varargs %d %d %d\n", 1,2,3);} {int i=3; float f=24.7; dvararg(i,f);} {char[] s = "hello"; dvarargRefTy(s);} {char[] ss = "hello world!"; dvarargRefTy(ss);} } int byVal1(int a) { return a; } void byRef1(ref int a) { a = 3; } void refType(char[] s) { } void refTypeByRef(ref char[] s) { } struct S { float f; double d; long l; byte b; } void structByVal(S s) { } void structByRef(ref S s) { } void structByPtr(S* s) { } void dvararg(...) { printf("%d %.1f\n", va_arg!(int)(_argptr), va_arg!(float)(_argptr)); } void dvarargRefTy(...) { char[] s = va_arg!(char[])(_argptr); printf("%.*s\n", s.length, s.ptr); }