[PATCH] Avoid bugs like PR68273 to trigger

Eric Botcazou ebotcazou@adacore.com
Mon Feb 8 12:30:00 GMT 2016


> Yes, that place I just fixed.  I mean for the SRA case.

Are you sure that there is one?

	  expr = build_ref_for_model (loc, agg, access->offset - top_offset,
				      access, gsi, insert_after);

	  if (write)
	    {
	      if (access->grp_partial_lhs)
		expr = force_gimple_operand_gsi (gsi, expr, true, NULL_TREE,
						 !insert_after,
						 insert_after ? GSI_NEW_STMT
						 : GSI_SAME_STMT);
	      stmt = gimple_build_assign (repl, expr);


(gdb) p debug_tree(repl)        
 <var_decl 0x7ffff6d37870 q$typ
    type <pointer_type 0x7ffff6ceac78
        type <record_type 0x7ffff6cea498 Tnode type_0 BLK
            size <integer_cst 0x7ffff6c43678 constant 0>
            unit size <integer_cst 0x7ffff6c43618 constant 0>
            align 8 symtab 0 alias set -1 canonical type 0x7ffff6cea3f0 
context <translation_unit_decl 0x7ffff6d2e0f0 D.1453>
            pointer_to_this <pointer_type 0x7ffff6ceac78> chain <type_decl 
0x7ffff6c54a18 D.1410>>
        sizes-gimplified unsigned SI
        size <integer_cst 0x7ffff6c435e8 constant 32>
        unit size <integer_cst 0x7ffff6c43600 constant 4>
        align 32 symtab 0 alias set -1 canonical type 0x7ffff6cead20>
    used unsigned SI file pr68273.c line 67 col 10 size <integer_cst 
0x7ffff6c435e8 32> unit size <integer_cst 0x7ffff6c43600 4>
    align 32 context <function_decl 0x7ffff6d0e700 op>>


(gdb) p debug_tree(expr)
 <mem_ref 0x7ffff6d31a78
    type <pointer_type 0x7ffff6d335e8
        type <record_type 0x7ffff6cea498 Tnode type_0 BLK
            size <integer_cst 0x7ffff6c43678 constant 0>
            unit size <integer_cst 0x7ffff6c43618 constant 0>
            align 8 symtab 0 alias set -1 canonical type 0x7ffff6cea3f0 
context <translation_unit_decl 0x7ffff6d2e0f0 D.1453>
            pointer_to_this <pointer_type 0x7ffff6ceac78> chain <type_decl 
0x7ffff6c54a18 D.1410>>
        sizes-gimplified unsigned SI
        size <integer_cst 0x7ffff6c435e8 constant 32>
        unit size <integer_cst 0x7ffff6c43600 constant 4>
        align 64 symtab 0 alias set -1 canonical type 0x7ffff6cead20>
   
    arg 0 <addr_expr 0x7ffff6d1d8a0
        type <pointer_type 0x7ffff6d33348 type <record_type 0x7ffff6ceadc8 
Node>
            unsigned SI size <integer_cst 0x7ffff6c435e8 32> unit size 
<integer_cst 0x7ffff6c43600 4>
            align 32 symtab 0 alias set -1 canonical type 0x7ffff6d333f0>
       
        arg 0 <parm_decl 0x7ffff6d2d300 q type <record_type 0x7ffff6ceadc8 
Node>
            used BLK file pr68273.c line 67 col 10
            size <integer_cst 0x7ffff6c43948 constant 128>
            unit size <integer_cst 0x7ffff6c43960 constant 16>
            align 64 context <function_decl 0x7ffff6d0e700 op> arg-type 
<record_type 0x7ffff6ceadc8 Node>>>
    arg 1 <integer_cst 0x7ffff6d1c4f8 type <pointer_type 0x7ffff6d333f0> 
constant 0>>

-- 
Eric Botcazou



More information about the Gcc-patches mailing list