I programmering är en återvändsgränd post ( eng. Dead Store ) tilldelningen av ett värde till en lokal variabel om detta värde inte läses av någon av de efterföljande instruktionerna. Deadlock-skrivningar tar upp CPU-tid och minne och gör ingenting. De kan upptäckas med statisk kodanalys .
Ett exempel på kod med en återvändsgränd i Java:
// DeadStoreExample.java import java.util.ArrayList ; importera java.util.List ; public class DeadStoreExample { public static void main ( String [] args ) { List < String > list = new ArrayList < String > (); // Den här uppgiften är en stubb eftersom ArrayList aldrig läses. list = getList (); System . ut . println ( lista ) } privat statisk lista < String > getList () { return new ArrayList < String > ( "hej" ); } }I det här exemplet instansierades ett ArrayList<String>-objekt men användes aldrig. Istället tilldelades variabeln som refererade till den en referens till ett annat objekt. Minnesområdet som tilldelades när ArrayList deklarerades måste frigöras, till exempel genom att använda garbage collector .
Ett exempel på kod med en återvändsgränd i JavaScript:
function func ( a , b ) { var x ; var i = 300 ; medan ( i -- ) { x = a + b ; // återvändsgränd post } }Detta exempel skriver över samma lokala variabel flera gånger i en loop . Medan endast det värde som skrevs vid den senaste iterationen kan användas i programmet efter denna loop . Alltså alla skrivningar till variabeln x, förutom den sista, är återvändsgränder.
I en optimeringskompilator kan borttagningen av återvändsgränd-poster göras genom att optimera borttagningen av död kod [1] eller genom att optimera borttagningen av återvändsgränd-poster ( eng. Dead Store Elimination ) [2] .