mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-07 03:16:05 +03:00
[svn r177] moved variable for interface info type from being local static to being within IRState
This commit is contained in:
parent
a522719b85
commit
db2b3d1937
3 changed files with 8 additions and 5 deletions
|
@ -47,6 +47,7 @@ IRLoopScope::IRLoopScope(Statement* s, TryFinallyStatement* enclosingtryfinally,
|
|||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
IRState::IRState()
|
||||
{
|
||||
interfaceInfoType = NULL;
|
||||
dmodule = 0;
|
||||
module = 0;
|
||||
emitMain = false;
|
||||
|
|
|
@ -77,6 +77,9 @@ struct IRState
|
|||
Module* dmodule;
|
||||
llvm::Module* module;
|
||||
|
||||
// interface info type, used in DtoInterfaceInfoType
|
||||
llvm::StructType* interfaceInfoType;
|
||||
|
||||
// ir data associated with DMD Dsymbol nodes
|
||||
std::map<Dsymbol*, IrDsymbol> irDsymbol;
|
||||
|
||||
|
|
|
@ -1789,9 +1789,8 @@ void DtoAnnotation(const char* str)
|
|||
|
||||
const llvm::StructType* DtoInterfaceInfoType()
|
||||
{
|
||||
static const llvm::StructType* t = NULL;
|
||||
if (t)
|
||||
return t;
|
||||
if (gIR->interfaceInfoType)
|
||||
return gIR->interfaceInfoType;
|
||||
|
||||
// build interface info type
|
||||
std::vector<const llvm::Type*> types;
|
||||
|
@ -1808,7 +1807,7 @@ const llvm::StructType* DtoInterfaceInfoType()
|
|||
// int offset
|
||||
types.push_back(llvm::Type::Int32Ty);
|
||||
// create type
|
||||
t = llvm::StructType::get(types);
|
||||
gIR->interfaceInfoType = llvm::StructType::get(types);
|
||||
|
||||
return t;
|
||||
return gIR->interfaceInfoType;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue