Mercurial > projects > ldc
diff tools/binding/llvmsample3.d @ 1651:cb960b882ca3 default tip
bindings were moved to dsource.org/projects/bindings/
author | Moritz Warning <moritzwarning@web.de> |
---|---|
date | Thu, 20 May 2010 20:05:03 +0200 |
parents | 40bd4a0d4870 |
children |
line wrap: on
line diff
--- a/tools/binding/llvmsample3.d Wed May 19 12:42:32 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -// simple example that shows off getting D wrappers from C values. -module llvmsample3; - -import llvm.c.Core; -import llvm.llvm; - -void main() -{ - auto m = new Module("sample3"); - - // global int32 - auto gi = m.addGlobal(Type.Int32, "myint"); - gi.initializer = ConstantInt.GetU(Type.Int32, 42); - - // this is not a cached value, it's recreated dynamically - auto _i = gi.initializer; - auto ci = cast(ConstantInt)_i; - assert(ci !is null); - ci.dump; - - // global struct - auto st = StructType.Get([Type.Double,Type.Double,Type.Double]); - auto gs = m.addGlobal(st, "mystruct"); - auto elems = new Constant[3]; - foreach(i,ref e; elems) - e = ConstantReal.Get(Type.Double, i+1); - gs.initializer = ConstantStruct.Get(elems); - - // again this is not a cached value. - auto s = gs.initializer; - auto cs = cast(ConstantStruct)s; - assert(cs !is null); - - cs.dump; -}