Mercurial > projects > ldc
annotate tests/mini/vararg2.d @ 704:43165a082535
Fixed issue with accessing a WithStatement context from inside a nested function. see mini/with2.d
Renamed some LLVM uses of ::create statics to ::Create , lower case ones will be deprecated soon.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 14 Oct 2008 13:21:14 +0200 |
parents | 1bb99290e03a |
children | 4ac97ec7c18e |
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 } |