On Tue, May 10, 2016 at 05:06:59PM +0200, Pierre-Marie de Rodat wrote: > When the DWARF back-end generates DW_OP_neg operations in DWARF > procedures, we get an ICE because of inconsistent stack usage > computation for the embedding expression. This is because > resolve_args_picking_1 thinks DW_OP_neg is a binary operation (pops 2 > stack slots, pushes 1) whereas it really is an unary one (one pop, one > push). > > This change fixes resolve_args_picking_1 and adds a regression testcase > (which crashes with the current trunk). Bootstrapped and regtested > without regression on x86_64-linux. Ok to commit? > > Thank you in advance! > > gcc/ > > * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an > unary operation, not a binary one.
Ok. > gcc/testsuite/ > > * gnat.dg/debug6.adb, gnat.dg/debug6_pkg.ads: New testcase. Jakub