diff gen/irstate.h @ 309:d59c363fccad trunk

[svn r330] Implemented synchronized statements. Changed the tryfinally handlers to a more generalized EnclosingHandler. Changed ClassInfoS to be mutable so they can be used as locks. Added new BB after throw ala return/break etc.
author lindquist
date Sat, 28 Jun 2008 11:37:53 +0200
parents 2b72433d5c8c
children 9967a3270837
line wrap: on
line diff
--- a/gen/irstate.h	Sat Jun 28 05:57:16 2008 +0200
+++ b/gen/irstate.h	Sat Jun 28 11:37:53 2008 +0200
@@ -23,7 +23,7 @@
 struct Module;
 struct TypeStruct;
 struct BaseClass;
-struct TryFinallyStatement;
+struct EnclosingHandler;
 
 struct IrModule;
 
@@ -44,10 +44,10 @@
     // generating statement
     Statement* s;
     // the try of a TryFinally that encloses the loop
-    TryFinallyStatement* enclosingtryfinally;
+    EnclosingHandler* enclosinghandler;
 
     IRLoopScope();
-    IRLoopScope(Statement* s, TryFinallyStatement* enclosingtryfinally, llvm::BasicBlock* b, llvm::BasicBlock* e);
+    IRLoopScope(Statement* s, EnclosingHandler* enclosinghandler, llvm::BasicBlock* b, llvm::BasicBlock* e);
 };
 
 struct IRBuilderHelper
@@ -96,7 +96,8 @@
     llvm::Module* module;
 
     // interface info type, used in DtoInterfaceInfoType
-    llvm::StructType* interfaceInfoType;
+    const LLStructType* interfaceInfoType;
+    const LLStructType* mutexType;
 
     // functions
     typedef std::vector<IrFunction*> FunctionVector;