src/dwarf/dwarf_expr.c:156-160 Four of the five stack ops are wrong: dup and over push zero, swap is an identity, rot is a 1↔3 swap (gaffes-and-perf.md#G2-G4, and C2 below). Any location or CFA expression using them silently yields a wrong address — wrong variable values and wrong unwinds on ELF targets. Nothing in src/dwarf/tests covers them. Fix: correct all four; add expression-level tests asserting final stack contents.
src/dwarf/dwarf_expr.c:159
case DW_ExprOp_Rot: {push_vals[0] = popped_vals[0]; push_vals[1] = popped_vals[1]; push_vals[2] = popped_vals[2];}break;