comparison ir/irstruct.h @ 307:7ade5e035beb trunk

[svn r328] Fixed an issue with interfaces where the vtable type of a interface implemented could be invalid. Fixes several tango modules like, FileStream, ServerSocket and most tina cluster modules :)
author lindquist
date Sat, 28 Jun 2008 03:45:18 +0200
parents e3355ce5444b
children 74101be2a553
comparison
equal deleted inserted replaced
306:0baca2feb554 307:7ade5e035beb
9 struct IrInterface : IrBase 9 struct IrInterface : IrBase
10 { 10 {
11 BaseClass* base; 11 BaseClass* base;
12 ClassDeclaration* decl; 12 ClassDeclaration* decl;
13 13
14 #if OPAQUE_VTBLS 14 llvm::PATypeHolder* vtblTy;
15 const LLArrayType* vtblTy; 15 LLConstant* vtblInit;
16 LLConstantArray* vtblInit;
17 #else
18 const LLStructType* vtblTy;
19 LLConstantStruct* vtblInit;
20 #endif
21 LLGlobalVariable* vtbl; 16 LLGlobalVariable* vtbl;
22 17
23 const LLStructType* infoTy; 18 const LLStructType* infoTy;
24 LLConstantStruct* infoInit; 19 LLConstantStruct* infoInit;
25 LLConstant* info; 20 LLConstant* info;
26 21
27 int index; 22 int index;
28 23
29 #if OPAQUE_VTBLS 24 IrInterface(BaseClass* b);
30 IrInterface(BaseClass* b, const LLArrayType* vt);
31 #else
32 IrInterface(BaseClass* b, const LLStructType* vt);
33 #endif
34 ~IrInterface(); 25 ~IrInterface();
35 }; 26 };
36 27
37 ////////////////////////////////////////////////////////////////////////////// 28 //////////////////////////////////////////////////////////////////////////////
38 ////////////////////////////////////////////////////////////////////////////// 29 //////////////////////////////////////////////////////////////////////////////