diff options
Diffstat (limited to 'lld/lib/ReaderWriter')
| -rw-r--r-- | lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp | 4 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp | 1 | 
2 files changed, 4 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp index b5f0de049d5..c32ca9762d9 100644 --- a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp @@ -250,11 +250,13 @@ DefinedAtom::Merge getMerge(const coff_aux_section_definition *auxsym) {    case llvm::COFF::IMAGE_COMDAT_SELECT_ANY:      return DefinedAtom::mergeAsWeakAndAddressUsed;    case llvm::COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH: +    // TODO: This mapping is wrong. Fix it.      return DefinedAtom::mergeByContent;    case llvm::COFF::IMAGE_COMDAT_SELECT_SAME_SIZE:      return DefinedAtom::mergeSameNameAndSize; -  case llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE:    case llvm::COFF::IMAGE_COMDAT_SELECT_LARGEST: +    return DefinedAtom::mergeByLargestSection; +  case llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE:    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 diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp index fe3cffdafe4..e4c809f11d2 100644 --- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp +++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp @@ -340,6 +340,7 @@ template <> struct ScalarEnumerationTraits<lld::DefinedAtom::Merge> {      io.enumCase(value, "by-content",   lld::DefinedAtom::mergeByContent);      io.enumCase(value, "same-name-and-size",                  lld::DefinedAtom::mergeSameNameAndSize); +    io.enumCase(value, "largest", lld::DefinedAtom::mergeByLargestSection);    }  };  | 

