Пример #1
0
    static void Main()
    {
        LLVM.Module module = new LLVM.Module("test_type");

        module.AddTypeName("int1", LLVM.Type.GetInt1());
        module.AddTypeName("int8", LLVM.Type.GetInt8());
        module.AddTypeName("int16", LLVM.Type.GetInt16());
        module.AddTypeName("int32", LLVM.Type.GetInt32());
        module.AddTypeName("int64", LLVM.Type.GetInt64());
        module.AddTypeName("int24", LLVM.Type.GetIntN(24));
        module.AddTypeName("int48", LLVM.IntegerType.Get(48));

        LLVM.Type[] arr = new LLVM.Type[] {LLVM.Type.GetInt8(), LLVM.Type.GetInt8(), LLVM.Type.GetInt32()};
        module.AddTypeName("structtype", LLVM.StructType.Get(arr));

        module.AddTypeName("arraytype", LLVM.ArrayType.Get(LLVM.Type.GetInt8(), 10));

        module.AddTypeName("pointertype", LLVM.PointerType.Get(LLVM.Type.GetInt8(), 0));

        module.AddTypeName("opaquetype", LLVM.OpaqueType.Get());

        LLVM.OpaqueType o  = LLVM.OpaqueType.Get();
        LLVM.TypeHandle th = new LLVM.TypeHandle(o);
        LLVM.StructType st = LLVM.StructType.Get(new LLVM.Type[] {LLVM.Type.GetInt32(), o});
        o.RefineAbstractTypeTo(st);
        module.AddTypeName("refinedtype", th.Resolve());

        module.Dump();
    }
Пример #2
0
    static void Main()
    {
        LLVM.Module module = new LLVM.Module("test_type");

        module.AddTypeName("int1", LLVM.Type.GetInt1());
        module.AddTypeName("int8", LLVM.Type.GetInt8());
        module.AddTypeName("int16", LLVM.Type.GetInt16());
        module.AddTypeName("int32", LLVM.Type.GetInt32());
        module.AddTypeName("int64", LLVM.Type.GetInt64());
        module.AddTypeName("int24", LLVM.Type.GetIntN(24));
        module.AddTypeName("int48", LLVM.IntegerType.Get(48));

        LLVM.Type[] arr = new LLVM.Type[] { LLVM.Type.GetInt8(), LLVM.Type.GetInt8(), LLVM.Type.GetInt32() };
        module.AddTypeName("structtype", LLVM.StructType.Get(arr));

        module.AddTypeName("arraytype", LLVM.ArrayType.Get(LLVM.Type.GetInt8(), 10));

        module.AddTypeName("pointertype", LLVM.PointerType.Get(LLVM.Type.GetInt8(), 0));

        module.AddTypeName("opaquetype", LLVM.OpaqueType.Get());

        LLVM.OpaqueType o  = LLVM.OpaqueType.Get();
        LLVM.TypeHandle th = new LLVM.TypeHandle(o);
        LLVM.StructType st = LLVM.StructType.Get(new LLVM.Type[] { LLVM.Type.GetInt32(), o });
        o.RefineAbstractTypeTo(st);
        module.AddTypeName("refinedtype", th.Resolve());

        module.Dump();
    }