[lld] r190254 - Run clang-format.
Daniel Jasper
djasper at google.com
Sat Sep 7 23:42:36 PDT 2013
Yes, but a bug that has already been fixed already ..
However, I think we are now messing up that lambda ..
On Sat, Sep 7, 2013 at 9:14 PM, Sean Silva <silvas at purdue.edu> wrote:
> - // Sort symbols by position.
> - std::stable_sort(symbols.begin(), symbols.end(),
> - // For some reason MSVC fails to allow the lambda in this context
> with a
> - // "illegal use of local type in type instantiation". MSVC is
> clearly
> - // wrong here. Force a conversion to function pointer to work
> around.
> - static_cast<bool(*)(const coff_symbol*, const coff_symbol*)>(
> - [](const coff_symbol *a, const coff_symbol *b) -> bool {
> + // Sort symbols by position.
> + std::stable_sort(
>
> I wonder why this comment ("// Sort symbols...") got indented?
> clang-format bug?
>
> -- Sean Silva
>
>
> On Sat, Sep 7, 2013 at 1:56 PM, Joerg Sonnenberger <joerg at bec.de> wrote:
>
>> Author: joerg
>> Date: Sat Sep 7 12:56:23 2013
>> New Revision: 190254
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=190254&view=rev
>> Log:
>> Run clang-format.
>>
>> Modified:
>> lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
>>
>> Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp?rev=190254&r1=190253&r2=190254&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp (original)
>> +++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp Sat Sep 7 12:56:23
>> 2013
>> @@ -51,11 +51,11 @@ namespace {
>> // Converts the COFF symbol attribute to the LLD's atom attribute.
>> Atom::Scope getScope(const coff_symbol *symbol) {
>> switch (symbol->StorageClass) {
>> - case llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL:
>> - return Atom::scopeGlobal;
>> - case llvm::COFF::IMAGE_SYM_CLASS_STATIC:
>> - case llvm::COFF::IMAGE_SYM_CLASS_LABEL:
>> - return Atom::scopeTranslationUnit;
>> + case llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL:
>> + return Atom::scopeGlobal;
>> + case llvm::COFF::IMAGE_SYM_CLASS_STATIC:
>> + case llvm::COFF::IMAGE_SYM_CLASS_LABEL:
>> + return Atom::scopeTranslationUnit;
>> }
>> llvm_unreachable("Unknown scope");
>> }
>> @@ -96,22 +96,22 @@ DefinedAtom::Alignment getAlignment(cons
>>
>> DefinedAtom::Merge getMerge(const coff_aux_section_definition *auxsym) {
>> switch (auxsym->Selection) {
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_NODUPLICATES:
>> - return DefinedAtom::mergeNo;
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_ANY:
>> - return DefinedAtom::mergeAsWeakAndAddressUsed;
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_SAME_SIZE:
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH:
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE:
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_LARGEST:
>> - case llvm::COFF::IMAGE_COMDAT_SELECT_NEWEST:
>> - // FIXME: These attributes has more complicated semantics than the
>> regular
>> - // weak symbol. These are mapped to mergeAsWeakAndAddressUsed for
>> now
>> - // because the core linker does not support them yet. We
>> eventually have
>> - // to implement them for full COFF support.
>> - return DefinedAtom::mergeAsWeakAndAddressUsed;
>> - default:
>> - llvm_unreachable("Unknown merge type");
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_NODUPLICATES:
>> + return DefinedAtom::mergeNo;
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_ANY:
>> + return DefinedAtom::mergeAsWeakAndAddressUsed;
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_SAME_SIZE:
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH:
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE:
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_LARGEST:
>> + case llvm::COFF::IMAGE_COMDAT_SELECT_NEWEST:
>> + // FIXME: These attributes has more complicated semantics than the
>> regular
>> + // weak symbol. These are mapped to mergeAsWeakAndAddressUsed for now
>> + // because the core linker does not support them yet. We eventually
>> have
>> + // to implement them for full COFF support.
>> + return DefinedAtom::mergeAsWeakAndAddressUsed;
>> + default:
>> + llvm_unreachable("Unknown merge type");
>> }
>> }
>>
>> @@ -120,7 +120,7 @@ private:
>> typedef vector<const coff_symbol *> SymbolVectorT;
>> typedef std::map<const coff_section *, SymbolVectorT>
>> SectionToSymbolsT;
>> typedef std::map<const StringRef, Atom *> SymbolNameToAtomT;
>> - typedef std::map<const coff_section *, vector<COFFDefinedFileAtom *>>
>> + typedef std::map<const coff_section *, vector<COFFDefinedFileAtom *> >
>> SectionToAtomsT;
>>
>> public:
>> @@ -222,8 +222,8 @@ private:
>> for (const coff_symbol *sym : symbols) {
>> if (sym->SectionNumber != llvm::COFF::IMAGE_SYM_ABSOLUTE)
>> continue;
>> - auto *atom = new (_alloc) COFFAbsoluteAtom(
>> - *this, _symbolName[sym], getScope(sym), sym->Value);
>> + auto *atom = new (_alloc)
>> + COFFAbsoluteAtom(*this, _symbolName[sym], getScope(sym),
>> sym->Value);
>>
>> result.push_back(atom);
>> _symbolAtom[sym] = atom;
>> @@ -277,9 +277,9 @@ private:
>> sym->Value > 0) {
>> StringRef name = _symbolName[sym];
>> uint32_t size = sym->Value;
>> - auto *atom = new (_alloc) COFFBSSAtom(
>> - *this, name, getScope(sym), DefinedAtom::permRW_,
>> - DefinedAtom::mergeAsWeakAndAddressUsed, size, 0);
>> + auto *atom = new (_alloc)
>> + COFFBSSAtom(*this, name, getScope(sym), DefinedAtom::permRW_,
>> + DefinedAtom::mergeAsWeakAndAddressUsed, size, 0);
>> result.push_back(atom);
>> continue;
>> }
>> @@ -349,8 +349,8 @@ private:
>>
>> if (sym->NumberOfAuxSymbols == 0)
>> return llvm::object::object_error::parse_failed;
>> - const coff_aux_section_definition *aux = reinterpret_cast<
>> - const coff_aux_section_definition *>(i.second);
>> + const coff_aux_section_definition *aux =
>> + reinterpret_cast<const coff_aux_section_definition
>> *>(i.second);
>> _merge[sec] = getMerge(aux);
>> }
>>
>> @@ -372,13 +372,14 @@ private:
>> AtomizeDefinedSymbolsInSection(const coff_section *section,
>> vector<const coff_symbol *> &symbols,
>> vector<COFFDefinedFileAtom *> &atoms) {
>> - // Sort symbols by position.
>> - std::stable_sort(symbols.begin(), symbols.end(),
>> - // For some reason MSVC fails to allow the lambda in this context
>> with a
>> - // "illegal use of local type in type instantiation". MSVC is
>> clearly
>> - // wrong here. Force a conversion to function pointer to work
>> around.
>> - static_cast<bool(*)(const coff_symbol*, const coff_symbol*)>(
>> - [](const coff_symbol *a, const coff_symbol *b) -> bool {
>> + // Sort symbols by position.
>> + std::stable_sort(
>> + symbols.begin(), symbols.end(),
>> + // For some reason MSVC fails to allow the lambda in this
>> context with a
>> + // "illegal use of local type in type instantiation". MSVC is
>> clearly
>> + // wrong here. Force a conversion to function pointer to work
>> around.
>> + static_cast<bool (*)(const coff_symbol *, const coff_symbol *)>(
>> + [](const coff_symbol * a, const coff_symbol * b)->bool {
>> return a->Value < b->Value;
>> }));
>>
>> @@ -393,9 +394,8 @@ private:
>> llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA) {
>> for (auto si = symbols.begin(), se = symbols.end(); si != se;
>> ++si) {
>> const coff_symbol *sym = *si;
>> - uint32_t size = (si + 1 == se)
>> - ? section->SizeOfRawData - sym->Value
>> - : si[1]->Value - sym->Value;
>> + uint32_t size = (si + 1 == se) ? section->SizeOfRawData -
>> sym->Value
>> + : si[1]->Value - sym->Value;
>> auto *atom = new (_alloc) COFFBSSAtom(
>> *this, _symbolName[sym], getScope(sym),
>> getPermissions(section),
>> DefinedAtom::mergeAsWeakAndAddressUsed, size, ++ordinal);
>> @@ -427,9 +427,9 @@ private:
>> // Create an atom for the entire section.
>> if (symbols.empty()) {
>> ArrayRef<uint8_t> data(secData.data(), secData.size());
>> - auto *atom = new (_alloc) COFFDefinedAtom(
>> - *this, "", sectionName, Atom::scopeTranslationUnit, type,
>> perms,
>> - _merge[section], data, 0);
>> + auto *atom = new (_alloc)
>> + COFFDefinedAtom(*this, "", sectionName,
>> Atom::scopeTranslationUnit,
>> + type, perms, _merge[section], data, 0);
>> atoms.push_back(atom);
>> _definedAtomLocations[section][0] = atom;
>> return error_code::success();
>> @@ -440,9 +440,9 @@ private:
>> if (symbols[0]->Value != 0) {
>> uint64_t size = symbols[0]->Value;
>> ArrayRef<uint8_t> data(secData.data(), size);
>> - auto *atom = new (_alloc) COFFDefinedAtom(
>> - *this, "", sectionName, Atom::scopeTranslationUnit, type,
>> perms,
>> - _merge[section], data, ++ordinal);
>> + auto *atom = new (_alloc)
>> + COFFDefinedAtom(*this, "", sectionName,
>> Atom::scopeTranslationUnit,
>> + type, perms, _merge[section], data, ++ordinal);
>> atoms.push_back(atom);
>> _definedAtomLocations[section][0] = atom;
>> }
>> @@ -450,13 +450,12 @@ private:
>> for (auto si = symbols.begin(), se = symbols.end(); si != se; ++si) {
>> const uint8_t *start = secData.data() + (*si)->Value;
>> // if this is the last symbol, take up the remaining data.
>> - const uint8_t *end = (si + 1 == se)
>> - ? secData.data() + secData.size()
>> - : secData.data() + (*(si + 1))->Value;
>> + const uint8_t *end = (si + 1 == se) ? secData.data() +
>> secData.size()
>> + : secData.data() + (*(si +
>> 1))->Value;
>> ArrayRef<uint8_t> data(start, end);
>> - auto *atom = new (_alloc) COFFDefinedAtom(
>> - *this, _symbolName[*si], sectionName, getScope(*si), type,
>> perms,
>> - _merge[section], data, ++ordinal);
>> + auto *atom = new (_alloc)
>> + COFFDefinedAtom(*this, _symbolName[*si], sectionName,
>> getScope(*si),
>> + type, perms, _merge[section], data, ++ordinal);
>> atoms.push_back(atom);
>> _symbolAtom[*si] = atom;
>> _definedAtomLocations[section][(*si)->Value] = atom;
>> @@ -583,7 +582,8 @@ private:
>> return error_code::success();
>> }
>> }
>> - // Section was not found, but it's not an error. This method returns
>> an error
>> + // Section was not found, but it's not an error. This method returns
>> an
>> + // error
>> // only when there's a read error.
>> return error_code::success();
>> }
>> @@ -643,15 +643,15 @@ private:
>> std::map<const coff_symbol *, const coff_symbol *> _auxSymbol;
>>
>> // A map from section to its atoms.
>> - std::map<const coff_section *, vector<COFFDefinedFileAtom *>>
>> _sectionAtoms;
>> + std::map<const coff_section *, vector<COFFDefinedFileAtom *> >
>> _sectionAtoms;
>>
>> // A map to get whether the section allows its contents to be merged
>> or not.
>> std::map<const coff_section *, DefinedAtom::Merge> _merge;
>>
>> // A sorted map to find an atom from a section and an offset within
>> // the section.
>> - std::map<const coff_section *,
>> - std::map<uint32_t, COFFDefinedAtom *>> _definedAtomLocations;
>> + std::map<const coff_section *, std::map<uint32_t, COFFDefinedAtom *> >
>> + _definedAtomLocations;
>>
>> mutable llvm::BumpPtrAllocator _alloc;
>> const PECOFFLinkingContext &_context;
>> @@ -677,8 +677,9 @@ public:
>> _PECOFFLinkingContext(context) {}
>>
>> error_code parseFile(LinkerInput &input,
>> - std::vector<std::unique_ptr<File>> &result) const
>> {
>> - StringRef magic(input.getBuffer().getBufferStart(),
>> input.getBuffer().getBufferSize());
>> + std::vector<std::unique_ptr<File> > &result)
>> const {
>> + StringRef magic(input.getBuffer().getBufferStart(),
>> + input.getBuffer().getBufferSize());
>> llvm::sys::fs::file_magic fileType =
>> llvm::sys::fs::identify_magic(magic);
>> if (fileType == llvm::sys::fs::file_magic::archive)
>> return _readerArchive.parseFile(input, result);
>> @@ -702,7 +703,7 @@ private:
>>
>> // Split the string into tokens, as the shell would do for argv.
>> SmallVector<const char *, 16> tokens;
>> - tokens.push_back("link"); // argv[0] is the command name. Will be
>> ignored.
>> + tokens.push_back("link"); // argv[0] is the command name. Will be
>> ignored.
>> llvm::cl::TokenizeWindowsCommandLine(directives, _stringSaver,
>> tokens);
>> tokens.push_back(nullptr);
>>
>> @@ -712,14 +713,14 @@ private:
>> const char **argv = &tokens[0];
>> std::string errorMessage;
>> llvm::raw_string_ostream stream(errorMessage);
>> - bool parseFailed = WinLinkDriver::parse(
>> - argc, argv, _PECOFFLinkingContext, stream, /*isDirective*/true);
>> + bool parseFailed = WinLinkDriver::parse(argc, argv,
>> _PECOFFLinkingContext,
>> + stream, /*isDirective*/
>> true);
>> stream.flush();
>>
>> // Print error message if error.
>> if (parseFailed) {
>> - auto msg = Twine("Failed to parse '") + directives + "': "
>> - + errorMessage + "\n";
>> + auto msg =
>> + Twine("Failed to parse '") + directives + "': " + errorMessage
>> + "\n";
>> llvm::report_fatal_error(msg);
>> }
>> if (!errorMessage.empty()) {
>> @@ -728,7 +729,7 @@ private:
>> }
>>
>> error_code parseCOFFFile(std::unique_ptr<MemoryBuffer> &mb,
>> - std::vector<std::unique_ptr<File>> &result)
>> const {
>> + std::vector<std::unique_ptr<File> > &result)
>> const {
>> // Parse the memory buffer as PECOFF file.
>> error_code ec;
>> std::unique_ptr<FileCOFF> file(
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130908/b97c003a/attachment.html>
More information about the llvm-commits
mailing list