aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@phydeaux.cygnus.com>1995-09-11 18:31:59 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-09-11 18:31:59 -0400
commitf83b0cb6cbcede2df2e2a1fe7a85fc48db30cae7 (patch)
treed9117ae877c1d5d125b67c8bb016ea124f07ec6b
parente02791a61919e7ce9592b5a45a845892a0ba8913 (diff)
downloadgcc-f83b0cb6cbcede2df2e2a1fe7a85fc48db30cae7.zip
gcc-f83b0cb6cbcede2df2e2a1fe7a85fc48db30cae7.tar.gz
gcc-f83b0cb6cbcede2df2e2a1fe7a85fc48db30cae7.tar.bz2
(tsubst): Handle PROMOTE_PROTOTYPES.
From-SVN: r10309
-rw-r--r--gcc/cp/pt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index d06799a..a1e718e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1461,6 +1461,12 @@ tsubst (t, args, nargs, in_decl)
r = build_decl (PARM_DECL, DECL_NAME (t), type);
DECL_INITIAL (r) = TREE_TYPE (r);
DECL_ARTIFICIAL (r) = DECL_ARTIFICIAL (t);
+#ifdef PROMOTE_PROTOTYPES
+ if ((TREE_CODE (type) == INTEGER_TYPE
+ || TREE_CODE (type) == ENUMERAL_TYPE)
+ && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
+ DECL_ARG_TYPE (r) = integer_type_node;
+#endif
if (TREE_CHAIN (t))
TREE_CHAIN (r) = tsubst (TREE_CHAIN (t), args, nargs, TREE_CHAIN (t));
return r;