Mercurial > projects > ldc
view ir/irdtype.cpp @ 1215:08f87d8cd101
Fix some unittests for 64-bit asm. They were operating on int variables as if
they were longs.
This was causing asm1_1 to fail when compiled with -O3 because it was
overwriting the spilled value of callee-saved register %rbx, which the runtime
was using as a pointer value at the time.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 13 Apr 2009 17:42:36 +0200 |
parents | a6dbd571d417 |
children | 2a92c115461d |
line wrap: on
line source
#include "gen/llvm.h" #include "ir/ir.h" #include "ir/irdtype.h" std::set<IrDType*> IrDType::list; void IrDType::resetAll() { std::set<IrDType*>::iterator it; for(it = list.begin(); it != list.end(); ++it) (*it)->reset(); } IrDType::IrDType() { assert(list.insert(this).second); reset(); } IrDType::IrDType(const IrDType& s) { assert(list.insert(this).second); type = s.type; } IrDType::~IrDType() { list.erase(this); } void IrDType::reset() { type = NULL; }