diff options
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DIE.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DIE.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DIE.cpp b/llvm/lib/CodeGen/AsmPrinter/DIE.cpp index cf8cbd5b7ea..4722d2b5501 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DIE.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DIE.cpp @@ -426,15 +426,13 @@ void DIETypeSignature::dump() const { print(dbgs()); } /// ComputeSize - calculate the size of the location expression. /// unsigned DIELoc::ComputeSize(AsmPrinter *AP) const { - if (Size) - return Size; - - unsigned Sz = 0; - const SmallVectorImpl<DIEAbbrevData> &AbbrevData = Abbrev.getData(); - for (unsigned i = 0, N = Values.size(); i < N; ++i) - Sz += Values[i]->SizeOf(AP, AbbrevData[i].getForm()); + if (!Size) { + const SmallVectorImpl<DIEAbbrevData> &AbbrevData = Abbrev.getData(); + for (unsigned i = 0, N = Values.size(); i < N; ++i) + Size += Values[i]->SizeOf(AP, AbbrevData[i].getForm()); + } - return Sz; + return Size; } /// EmitValue - Emit location data. @@ -483,15 +481,13 @@ void DIELoc::print(raw_ostream &O) const { /// ComputeSize - calculate the size of the block. /// unsigned DIEBlock::ComputeSize(AsmPrinter *AP) const { - if (Size) - return Size; - - unsigned Sz = 0; - const SmallVectorImpl<DIEAbbrevData> &AbbrevData = Abbrev.getData(); - for (unsigned i = 0, N = Values.size(); i < N; ++i) - Sz += Values[i]->SizeOf(AP, AbbrevData[i].getForm()); + if (!Size) { + const SmallVectorImpl<DIEAbbrevData> &AbbrevData = Abbrev.getData(); + for (unsigned i = 0, N = Values.size(); i < N; ++i) + Size += Values[i]->SizeOf(AP, AbbrevData[i].getForm()); + } - return Sz; + return Size; } /// EmitValue - Emit block data. |