Mercurial > projects > ldc
view ir/irvar.cpp @ 1646:a8fc855f156e
Don't remove an old .o with -output-{bc,ll,s}.
author | Matti Niemenmaa <matti.niemenmaa+hg@iki.fi> |
---|---|
date | Tue, 09 Mar 2010 23:21:48 +0200 |
parents | 8d086d552909 |
children | 40bd4a0d4870 |
line wrap: on
line source
#include "gen/llvm.h" #include "declaration.h" #include "ir/irvar.h" ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// IrVar::IrVar(VarDeclaration* var) { V = var; value = NULL; } ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// IrGlobal::IrGlobal(VarDeclaration* v): IrVar(v), type(llvm::OpaqueType::get(llvm::getGlobalContext())) { constInit = NULL; } ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// IrLocal::IrLocal(VarDeclaration* v) : IrVar(v) { nestedIndex = -1; } ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// IrField::IrField(VarDeclaration* v) : IrVar(v) { assert(V->ir.irField == NULL && "field for this variable already exists"); V->ir.irField = this; if (v->aggrIndex) { index = v->aggrIndex; unionOffset = 0; } else { index = 0; unionOffset = v->offset; } constInit = NULL; } extern LLConstant* get_default_initializer( VarDeclaration* vd, Initializer* init); llvm::Constant * IrField::getDefaultInit() { if (constInit) return constInit; constInit = get_default_initializer(V, V->init); return constInit; } ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////