mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-04-29 06:30:39 +03:00

Fixed function literals in static initializers. Changed alignment of delegates from 2*PTRSIZE to just PTRSIZE. Changed errors to go to stderr instead of stdout. Fairly major rewriting of struct/union/class handling, STILL A BIT BUGGY !!!
34 lines
492 B
C++
34 lines
492 B
C++
#include "gen/llvm.h"
|
|
#include "ir/ir.h"
|
|
#include "ir/irtype.h"
|
|
|
|
std::set<IrType*> IrType::list;
|
|
|
|
void IrType::resetAll()
|
|
{
|
|
std::set<IrType*>::iterator it;
|
|
for(it = list.begin(); it != list.end(); ++it)
|
|
(*it)->reset();
|
|
}
|
|
|
|
IrType::IrType()
|
|
{
|
|
assert(list.insert(this).second);
|
|
reset();
|
|
}
|
|
|
|
IrType::IrType(const IrType& s)
|
|
{
|
|
assert(list.insert(this).second);
|
|
type = s.type;
|
|
}
|
|
|
|
IrType::~IrType()
|
|
{
|
|
list.erase(this);
|
|
}
|
|
|
|
void IrType::reset()
|
|
{
|
|
type = NULL;
|
|
}
|