diff options
author | Devang Patel <dpatel@apple.com> | 2009-07-30 23:06:35 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-07-30 23:06:35 +0000 |
commit | 16e5124a828fea795bb28f112e752fd4030a678f (patch) | |
tree | 70219aa8ba3a98d047a4ef46caa65ff560b59989 | |
parent | d14bacfb7abcb4caf7a7272eeb460aeb6b16cc89 (diff) | |
download | bcm5719-llvm-16e5124a828fea795bb28f112e752fd4030a678f.tar.gz bcm5719-llvm-16e5124a828fea795bb28f112e752fd4030a678f.zip |
Do not use abbrev while writing NamedMDNode name.
llvm-svn: 77637
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 13 | ||||
-rw-r--r-- | llvm/test/Feature/NamedMDNode2.ll | 7 |
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} |