Mercurial > projects > ldc
annotate tools/binding/llvmsample2.d @ 1619:c61782a76dff
Merge DMD r304: refactor invariant => immutable
---
dmd/cast.c | 2 +-
dmd/declaration.c | 2 +-
dmd/declaration.h | 3 +--
dmd/doc.c | 2 +-
dmd/expression.c | 6 +++---
dmd/interpret.c | 4 ++--
dmd/mtype.c | 2 +-
dmd/mtype.h | 2 +-
dmd/parse.c | 4 ++--
dmd/struct.c | 2 +-
10 files changed, 14 insertions(+), 15 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:22 -0300 |
parents | 1ba61de8796b |
children |
rev | line source |
---|---|
1273
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
1 // simple test of recursive types. |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
2 module llvmsample2; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
3 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
4 import llvm.llvm; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
5 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
6 void main() |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
7 { |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
8 auto th = new TypeHandle(); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
9 auto s = StructType.Get([ PointerType.Get(th.resolve) ], false); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
10 th.refine(s); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
11 s.dump(); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
12 th.dispose(); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
13 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
14 auto t = getTypeOf(s.ll); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
15 t.dump(); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
16 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
17 assert(s is t); |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
18 } |