On Fri, May 6, 2016 at 2:35 PM, Martin Liška <mli...@suse.cz> wrote: > On 05/06/2016 12:56 PM, Richard Biener wrote: >> Hmmm. But this means debug stmt remapping calls >> remap_dependence_clique which may end up bumping >> cfun->last_clique and thus may change code generation. >> >> So what debug stmts contain MEM_REFs? If you put an assert >> processing_debug_stmt == 0 in >> remap_dependence_clique I'd like to see a testcase that triggers it. >> >> Richard. > > Ok, I've placed the suggested assert which is triggered for following debug > statement: > > (gdb) p debug_gimple_stmt(stmt) > # DEBUG D#21 => a_1(D)->dim[0].ubound > > (gdb) p debug_tree(*tp) > <mem_ref 0x7ffff66c1b40 > type <record_type 0x7ffff6a642a0 array1_unknown type_1 BLK > size <integer_cst 0x7ffff6a46180 constant 384> > unit size <integer_cst 0x7ffff6a23c90 constant 48> > align 64 symtab -160828560 alias set -1 canonical type 0x7ffff6a4f000 > fields <field_decl 0x7ffff6a47980 data type <pointer_type > 0x7ffff68a7348> > unsigned DI file > /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/actual_array_constructor_1.f90 > line 21 col 0 > size <integer_cst 0x7ffff6886bd0 constant 64> > unit size <integer_cst 0x7ffff6886be8 constant 8> > align 64 offset_align 128 > offset <integer_cst 0x7ffff6886c00 constant 0> > bit offset <integer_cst 0x7ffff6886c48 constant 0> context > <record_type 0x7ffff6a4f498 array_descriptor1> chain <field_decl > 0x7ffff6a47a18 offset>> > pointer_to_this <pointer_type 0x7ffff6a64540> reference_to_this > <reference_type 0x7ffff6a645e8> chain <type_decl 0x7ffff6a511c8 D.3431>> > > arg 0 <ssa_name 0x7ffff66b41f8 > type <reference_type 0x7ffff6a64690 type <record_type 0x7ffff6a642a0 > array1_unknown> > public unsigned restrict DI size <integer_cst 0x7ffff6886bd0 64> > unit size <integer_cst 0x7ffff6886be8 8> > align 64 symtab 0 alias set -1 canonical type 0x7ffff6a53150> > var <parm_decl 0x7ffff6696800 a>def_stmt GIMPLE_NOP > > version 1> > arg 1 <integer_cst 0x7ffff6a7a438 type <reference_type 0x7ffff6a64690> > constant 0>> > > for the following test-case: > gfortran > /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/actual_array_constructor_1.f90 > -O3 -g
Ok. I suggest you instead do sth like Index: gcc/tree-inline.c =================================================================== --- gcc/tree-inline.c (revision 236021) +++ gcc/tree-inline.c (working copy) @@ -840,7 +840,7 @@ is_parm (tree decl) static unsigned short remap_dependence_clique (copy_body_data *id, unsigned short clique) { - if (clique == 0) + if (clique == 0 || processing_debug_stmt) return 0; if (!id->dependence_map) id->dependence_map = new hash_map<dependence_hash, unsigned short>; does that resolve the issue? If so, this is ok for trunk and branches. Thanks, Richard. > Martin > > >