summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-01-14 18:25:45 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-01-14 18:25:45 +0000
commit4e74d3be35b2e5b08a03c0df487570652d6c12a5 (patch)
treef0da9288a741cfef74dc3768fb0f6dc9ebdb94b1 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent76c508bc9afff652bb0d0e58de87a1c3d13a42de (diff)
downloadbcm5719-llvm-4e74d3be35b2e5b08a03c0df487570652d6c12a5.tar.gz
bcm5719-llvm-4e74d3be35b2e5b08a03c0df487570652d6c12a5.zip
Add support for comdats with names larger than 256 characters.
llvm-svn: 226012
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index a96e866ed2c..5e8c64ee9cd 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -549,11 +549,13 @@ static unsigned getEncodedComdatSelectionKind(const Comdat &C) {
}
static void writeComdats(const ValueEnumerator &VE, BitstreamWriter &Stream) {
- SmallVector<uint8_t, 64> Vals;
+ SmallVector<uint16_t, 64> Vals;
for (const Comdat *C : VE.getComdats()) {
// COMDAT: [selection_kind, name]
Vals.push_back(getEncodedComdatSelectionKind(*C));
- Vals.push_back(C->getName().size());
+ size_t Size = C->getName().size();
+ assert(isUInt<16>(Size));
+ Vals.push_back(Size);
for (char Chr : C->getName())
Vals.push_back((unsigned char)Chr);
Stream.EmitRecord(bitc::MODULE_CODE_COMDAT, Vals, /*AbbrevToUse=*/0);
OpenPOWER on IntegriCloud