On Wed, Jan 13, 2016 at 06:39:29PM +0100, Martin Jambor wrote:
> --- a/gcc/tree-inline.c
> +++ b/gcc/tree-inline.c
> @@ -340,8 +340,22 @@ remap_decl (tree decl, copy_body_data *id)
>        return decl;
>      }
>  
> -  /* If we didn't already have an equivalent for this declaration,
> -     create one now.  */
> +  /* When remapping a type within copy_gimple_seq_and_replace_locals, all
> +     necessary DECLs have already been remapped and we do not want to 
> duplicate
> +     a decl coming from outside of the sequence we are copying.  */
> +  if (!n
> +      && id->prevent_decl_creation_for_types
> +      && id->remapping_type_depth > 0
> +      && (VAR_P (decl) || TREE_CODE (decl) == PARM_DECL))
> +    {
> +      if (id->do_not_unshare)
> +     return decl;
> +      else
> +     return unshare_expr (decl);
> +    }

Just return decl; instead of the { if () return decl; else unshare_expr (decl); 
}
- both VAR_DECL and PARM_DECL are tcc_declaration for which unshare_expr
doesn't do anything.

Otherwise LGTM.  I'll get to your other patches tomorrow.

        Jakub

Reply via email to