diff options
Diffstat (limited to 'gcc/integrate.c')
| -rw-r--r-- | gcc/integrate.c | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index bd96be8..2fa5164 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -116,36 +116,14 @@ copy_decl_for_inlining (tree decl, tree from_fn, tree to_fn) /* Copy the declaration. */ if (TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == RESULT_DECL) { - tree type; - int invisiref = 0; - - /* See if the frontend wants to pass this by invisible reference. */ - if (TREE_CODE (decl) == PARM_DECL - && DECL_ARG_TYPE (decl) != TREE_TYPE (decl) - && POINTER_TYPE_P (DECL_ARG_TYPE (decl)) - && TREE_TYPE (DECL_ARG_TYPE (decl)) == TREE_TYPE (decl)) - { - invisiref = 1; - type = DECL_ARG_TYPE (decl); - } - else - type = TREE_TYPE (decl); + tree type = TREE_TYPE (decl); /* For a parameter or result, we must make an equivalent VAR_DECL, not a new PARM_DECL. */ copy = build_decl (VAR_DECL, DECL_NAME (decl), type); - if (!invisiref) - { - TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl); - TREE_READONLY (copy) = TREE_READONLY (decl); - TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl); - } - else - { - TREE_ADDRESSABLE (copy) = 0; - TREE_READONLY (copy) = 1; - TREE_THIS_VOLATILE (copy) = 0; - } + TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl); + TREE_READONLY (copy) = TREE_READONLY (decl); + TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl); } else { |
