Section* XdfObject::AppendSection(llvm::StringRef name, SourceLocation source, Diagnostic& diags) { bool code = (name == ".text"); Section* section = new Section(name, code, false, source); m_object.AppendSection(std::auto_ptr<Section>(section)); // Define a label for the start of the section Location start = {§ion->bytecodes_front(), 0}; SymbolRef sym = m_object.getSymbol(name); if (!sym->isDefined()) { sym->DefineLabel(start); sym->setDefSource(source); } section->setSymbol(sym); // Add XDF data to the section section->AddAssocData(std::auto_ptr<XdfSection>(new XdfSection(sym))); return section; }