annotate tangotests/vararg2.d @ 212:4c2689d57ba4 trunk

[svn r228] Fixed: when new'ing basic types, the storage was not default initialized. Fixed: the tango/lib/compiler/llvmdc/llvmdc.mak makefile was a bit incorrect. Changed: the basic gc is now the default. Changed: renamed a few temporary names in the LLVM IR output.
author lindquist
date Tue, 27 May 2008 22:14:24 +0200
parents a8cd9bc1021a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
163
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
1 module tangotests.vararg2;
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
2
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
3 extern(C) int printf(char*, ...);
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
4
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
5 import tango.core.Vararg;
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
6
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
7 void main()
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
8 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
9 func(0xf00, 1, " ", 2, " ", 3, "\n", 0.3, "\n");
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
10 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
11
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
12 void func(int foo, ...)
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
13 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
14 foreach(t; _arguments)
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
15 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
16 if (t == typeid(char[]))
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
17 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
18 char[] str = va_arg!(char[])(_argptr);
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
19 printf("%.*s", str.length, str.ptr);
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
20 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
21 else if (t == typeid(int))
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
22 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
23 printf("%d", va_arg!(int)(_argptr));
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
24 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
25 else if (t == typeid(float))
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
26 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
27 printf("%f", va_arg!(float)(_argptr));
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
28 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
29 else if (t == typeid(double))
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
30 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
31 printf("%f", va_arg!(double)(_argptr));
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
32 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
33 else if (t == typeid(real))
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
34 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
35 printf("%f", va_arg!(real)(_argptr));
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
36 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
37 else
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
38 {
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
39 assert(0, "not int");
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
40 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
41 }
a8cd9bc1021a [svn r179] lots and lots of fixes, much more of tango now compiles/works.
lindquist
parents:
diff changeset
42 }