Mercurial > projects > ldc
annotate test/vararg2.d @ 135:176bd52b3cf5 trunk
[svn r139] Fixed bug #33, thanks for the report :)
author | lindquist |
---|---|
date | Mon, 14 Jan 2008 23:09:55 +0100 |
parents | a9d29e9f1fed |
children |
rev | line source |
---|---|
57
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
1 module vararg2; |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
2 |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
3 void func(...) |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
4 { |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
5 assert(_arguments.length == 2); |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
6 assert(_arguments[0] is typeid(int)); |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
7 int a = *cast(int*)_argptr; |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
8 _argptr += int.sizeof; |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
9 assert(_arguments[1] is typeid(int)); |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
10 a += *cast(int*)_argptr; |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
11 _argptr += int.sizeof; |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
12 assert(a == 3); |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
13 } |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
14 |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
15 void main() |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
16 { |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
17 func(1,2); |
a9d29e9f1fed
[svn r61] Added support for D-style variadic functions :)
lindquist
parents:
diff
changeset
|
18 } |