diff options
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 4 | ||||
-rw-r--r-- | llvm/test/Transforms/SafeStack/X86/debug-loc2.ll | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index c2d4303ecb0..be160541117 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1597,13 +1597,13 @@ static void replaceOneDbgValueForAlloca(DbgValueInst *DVI, Value *NewAddress, DIExpr->getElement(0) != dwarf::DW_OP_deref) return; - // Insert the offset immediately after the first deref. + // Insert the offset before the first deref. // We could just change the offset argument of dbg.value, but it's unsigned... if (Offset) { SmallVector<uint64_t, 4> Ops; - Ops.push_back(dwarf::DW_OP_deref); DIExpression::appendOffset(Ops, Offset); Ops.append(DIExpr->elements_begin() + 1, DIExpr->elements_end()); + Ops.push_back(dwarf::DW_OP_deref); DIExpr = Builder.createExpression(Ops); } diff --git a/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll b/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll index afa143f9c08..30623962691 100644 --- a/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll +++ b/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll @@ -25,7 +25,7 @@ entry: tail call void @llvm.dbg.value(metadata i32* %x1, metadata !10, metadata !24), !dbg !16 ; Supported dbg.value: rewritted based on the [[USP]] value. -; CHECK: call void @llvm.dbg.value(metadata i8* %[[USP]], metadata ![[X1:.*]], metadata !DIExpression(DW_OP_deref, DW_OP_constu, 4, DW_OP_minus)) +; CHECK: call void @llvm.dbg.value(metadata i8* %[[USP]], metadata ![[X1:.*]], metadata !DIExpression(DW_OP_constu, 4, DW_OP_minus, DW_OP_deref)) tail call void @llvm.dbg.value(metadata i32* %x1, metadata !10, metadata !15), !dbg !16 call void @capture(i32* nonnull %x1), !dbg !17 @@ -33,7 +33,7 @@ entry: ; CHECK: call void @llvm.random.metadata.use(metadata ![[EMPTY]]) call void @llvm.random.metadata.use(metadata i32* %x2) -; CHECK: call void @llvm.dbg.value(metadata i8* %[[USP]], metadata ![[X2:.*]], metadata !DIExpression(DW_OP_deref, DW_OP_constu, 8, DW_OP_minus)) +; CHECK: call void @llvm.dbg.value(metadata i8* %[[USP]], metadata ![[X2:.*]], metadata !DIExpression(DW_OP_constu, 8, DW_OP_minus, DW_OP_deref)) call void @llvm.dbg.value(metadata i32* %x2, metadata !12, metadata !15), !dbg !18 call void @capture(i32* nonnull %x2), !dbg !19 ret void, !dbg !20 |