summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-07-30 23:06:35 +0000
committerDevang Patel <dpatel@apple.com>2009-07-30 23:06:35 +0000
commit16e5124a828fea795bb28f112e752fd4030a678f (patch)
tree70219aa8ba3a98d047a4ef46caa65ff560b59989 /llvm
parentd14bacfb7abcb4caf7a7272eeb460aeb6b16cc89 (diff)
downloadbcm5719-llvm-16e5124a828fea795bb28f112e752fd4030a678f.tar.gz
bcm5719-llvm-16e5124a828fea795bb28f112e752fd4030a678f.zip
Do not use abbrev while writing NamedMDNode name.
llvm-svn: 77637
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp13
-rw-r--r--llvm/test/Feature/NamedMDNode2.ll7
2 files changed, 11 insertions, 9 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index ff47cf436cb..e5fb50f5bc7 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -495,7 +495,6 @@ static void WriteModuleMetadata(const ValueEnumerator &VE,
const ValueEnumerator::ValueList &Vals = VE.getValues();
bool StartedMetadataBlock = false;
unsigned MDSAbbrev = 0;
- unsigned String8Abbrev = 0;
SmallVector<uint64_t, 64> Record;
for (unsigned i = 0, e = Vals.size(); i != e; ++i) {
@@ -530,18 +529,14 @@ static void WriteModuleMetadata(const ValueEnumerator &VE,
if (!StartedMetadataBlock) {
Stream.EnterSubblock(bitc::METADATA_BLOCK_ID, 3);
StartedMetadataBlock = true;
- BitCodeAbbrev *Abbv = new BitCodeAbbrev();
- Abbv->Add(BitCodeAbbrevOp(bitc::CST_CODE_STRING));
- Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
- Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 8));
- String8Abbrev = Stream.EmitAbbrev(Abbv);
}
// Write name.
- const char *StrBegin = NMD->getName().data();
- for (unsigned i = 0, e = NMD->getName().size(); i != e; ++i)
+ std::string Str = NMD->getNameStr();
+ const char *StrBegin = Str.c_str();
+ for (unsigned i = 0, e = Str.length(); i != e; ++i)
Record.push_back(StrBegin[i]);
- Stream.EmitRecord(bitc::METADATA_NAME, Record, String8Abbrev);
+ Stream.EmitRecord(bitc::METADATA_NAME, Record, 0/*TODO*/);
Record.clear();
// Write named metadata elements.
diff --git a/llvm/test/Feature/NamedMDNode2.ll b/llvm/test/Feature/NamedMDNode2.ll
new file mode 100644
index 00000000000..b560772c797
--- /dev/null
+++ b/llvm/test/Feature/NamedMDNode2.ll
@@ -0,0 +1,7 @@
+; RUN: llvm-as < %s -f -o /dev/null
+; PR4654
+
+
+@foo = constant i1 false
+!0 = metadata !{i1 false}
+!a = !{!0}
OpenPOWER on IntegriCloud