diff --git a/lib/SILOptimizer/Transforms/COWOpts.cpp b/lib/SILOptimizer/Transforms/COWOpts.cpp index 7a2c0e96e2769..007d4bb5c09e2 100644 --- a/lib/SILOptimizer/Transforms/COWOpts.cpp +++ b/lib/SILOptimizer/Transforms/COWOpts.cpp @@ -247,6 +247,7 @@ void COWOptsPass::collectEscapePoints(SILValue v, case SILInstructionKind::BeginCOWMutationInst: case SILInstructionKind::RefElementAddrInst: case SILInstructionKind::RefTailAddrInst: + case SILInstructionKind::DebugValueInst: break; case SILInstructionKind::BranchInst: collectEscapePoints(cast(user)->getArgForOperand(use), diff --git a/test/SILOptimizer/cow_opts.sil b/test/SILOptimizer/cow_opts.sil index c3b8d9d8d8208..6575f10180fc6 100644 --- a/test/SILOptimizer/cow_opts.sil +++ b/test/SILOptimizer/cow_opts.sil @@ -36,6 +36,7 @@ sil @test_simple : $@convention(thin) (@owned Buffer) -> (Int, Builtin.Int1, @ow bb0(%0 : $Buffer): %e = end_cow_mutation %0 : $Buffer %addr = ref_element_addr [immutable] %e : $Buffer, #Buffer.i + debug_value %e : $Buffer, var, name "x" %i = load %addr : $*Int (%u, %b) = begin_cow_mutation %e : $Buffer %t = tuple (%i : $Int, %u : $Builtin.Int1, %b : $Buffer)