summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
diff options
context:
space:
mode:
authorKeno Fischer <kfischer@college.harvard.edu>2016-01-16 01:15:32 +0000
committerKeno Fischer <kfischer@college.harvard.edu>2016-01-16 01:15:32 +0000
commitbc0cb11eb206b2441611016d0e57f4fe80af8544 (patch)
treee08008fc600b865b57aa9912e2feb646babf9cf5 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
parentd73cd4ab01b510f88b03f90882bb07a78eb16627 (diff)
downloadbcm5719-llvm-bc0cb11eb206b2441611016d0e57f4fe80af8544.tar.gz
bcm5719-llvm-bc0cb11eb206b2441611016d0e57f4fe80af8544.zip
[DwarfDebug] Don't merge DebugLocEntries if their pieces overlap
Summary: Later in DWARF emission we check that DebugLocEntries have non-overlapping pieces, so we should create any such entries by merging here. Fixes PR26163. Reviewers: aprantl Differential Revision: http://reviews.llvm.org/D16249 llvm-svn: 257979
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 6a1596232be..ae62b6b19a4 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -813,7 +813,8 @@ bool DebugLocEntry::MergeValues(const DebugLocEntry &Next) {
if (Begin == Next.Begin) {
auto *Expr = cast_or_null<DIExpression>(Values[0].Expression);
auto *NextExpr = cast_or_null<DIExpression>(Next.Values[0].Expression);
- if (Expr->isBitPiece() && NextExpr->isBitPiece()) {
+ if (Expr->isBitPiece() && NextExpr->isBitPiece() &&
+ !piecesOverlap(Expr, NextExpr)) {
addValues(Next.Values);
End = Next.End;
return true;
OpenPOWER on IntegriCloud