예제 #1
0
void Relocation::apply(Relocator& pRelocator) {
  Relocator::Result result = pRelocator.applyRelocation(*this);

  switch (result) {
    case Relocator::OK: {
      // do nothing
      return;
    }
    case Relocator::Overflow: {
      error(diag::result_overflow) << pRelocator.getName(type())
                                   << symInfo()->name();
      return;
    }
    case Relocator::BadReloc: {
      error(diag::result_badreloc) << pRelocator.getName(type())
                                   << symInfo()->name();
      return;
    }
    case Relocator::Unsupported: {
      fatal(diag::unsupported_relocation) << type()
                                          << "*****@*****.**";
      return;
    }
    case Relocator::Unknown: {
      fatal(diag::unknown_relocation) << type() << symInfo()->name();
      return;
    }
  }  // end of switch
}
예제 #2
0
파일: phase.c 프로젝트: dokterp/aldor
local void
saveAndEmptyPhaseSymbolData(Symbol sym)
{
	if (symInfo(sym) && symCoInfo(sym) && symCoInfo(sym)->phaseVal.generic){
		PhaseSymbolData psd =
			(PhaseSymbolData) stoAlloc(OB_Other, sizeof(*psd));
		psd->sym  = sym;
		psd->data = symCoInfo(sym)->phaseVal.generic;
		psdl = listCons(PhaseSymbolData)(psd, psdl);
		symCoInfo(sym)->phaseVal.generic = 0;
	}
}