diff options
| author | 2019-01-27 16:42:12 +0000 | |
|---|---|---|
| committer | 2019-01-27 16:42:12 +0000 | |
| commit | b773203fb58f3ef282fb69c832d8710cab5bc82d (patch) | |
| tree | e75913f147570fbd75169647b144df85b88a038c /gnu/llvm/lib/MC/MCSectionCOFF.cpp | |
| parent | tweak errno in previous (diff) | |
| download | wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.tar.xz wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.zip | |
Import LLVM 7.0.1 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/MC/MCSectionCOFF.cpp')
| -rw-r--r-- | gnu/llvm/lib/MC/MCSectionCOFF.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/gnu/llvm/lib/MC/MCSectionCOFF.cpp b/gnu/llvm/lib/MC/MCSectionCOFF.cpp index 72a7fc36a46..c861963eec8 100644 --- a/gnu/llvm/lib/MC/MCSectionCOFF.cpp +++ b/gnu/llvm/lib/MC/MCSectionCOFF.cpp @@ -69,35 +69,40 @@ void MCSectionCOFF::PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T, OS << '"'; if (getCharacteristics() & COFF::IMAGE_SCN_LNK_COMDAT) { - OS << ","; + if (COMDATSymbol) + OS << ","; + else + OS << "\n\t.linkonce\t"; switch (Selection) { case COFF::IMAGE_COMDAT_SELECT_NODUPLICATES: - OS << "one_only,"; + OS << "one_only"; break; case COFF::IMAGE_COMDAT_SELECT_ANY: - OS << "discard,"; + OS << "discard"; break; case COFF::IMAGE_COMDAT_SELECT_SAME_SIZE: - OS << "same_size,"; + OS << "same_size"; break; case COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH: - OS << "same_contents,"; + OS << "same_contents"; break; case COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE: - OS << "associative,"; + OS << "associative"; break; case COFF::IMAGE_COMDAT_SELECT_LARGEST: - OS << "largest,"; + OS << "largest"; break; case COFF::IMAGE_COMDAT_SELECT_NEWEST: - OS << "newest,"; + OS << "newest"; break; default: assert(false && "unsupported COFF selection type"); break; } - assert(COMDATSymbol); - COMDATSymbol->print(OS, &MAI); + if (COMDATSymbol) { + OS << ","; + COMDATSymbol->print(OS, &MAI); + } } OS << '\n'; } |
