From e438e1b788a2877778e1592d914e6285964faac4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 3 Aug 1999 01:14:31 +0200 Subject: [PATCH] Jakub Jelinek * java/decl.c (start_java_method): Change all uses of PROMOTE_PROTOTYPES, so that it tests it as a C expression. Ensure expr.h is included. * java/expr.c (pop_arguments): Ditto. * java/parse.y (expand_start_java_method): Ditto. From-SVN: r28419 --- gcc/java/ChangeLog | 8 ++++++++ gcc/java/decl.c | 6 +++--- gcc/java/expr.c | 5 ++--- gcc/java/parse.c | 4 +++- gcc/java/parse.y | 4 +++- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 1b6bdd26afd..77fcd63dafe 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,11 @@ +1999-08-02 Jakub Jelinek + + * java/decl.c (start_java_method): Change all uses of + PROMOTE_PROTOTYPES, so that it tests it as a C expression. + Ensure expr.h is included. + * java/expr.c (pop_arguments): Ditto. + * java/parse.y (expand_start_java_method): Ditto. + 1999-08-01 Kaveh R. Ghazi * Makefile.in (ALL_CFLAGS): Add '-W -Wall'. diff --git a/gcc/java/decl.c b/gcc/java/decl.c index ed1e7f84e5a..71e84d0a819 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -34,6 +34,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "toplev.h" #include "function.h" #include "except.h" +#include "expr.h" static tree push_jvm_slot PROTO ((int, tree)); static tree builtin_function PROTO ((const char *, tree, @@ -1637,11 +1638,10 @@ start_java_method (fndecl) parm_decl = build_decl (PARM_DECL, parm_name, parm_type); DECL_CONTEXT (parm_decl) = fndecl; -#ifdef PROMOTE_PROTOTYPES - if (TYPE_PRECISION (parm_type) < TYPE_PRECISION (integer_type_node) + if (PROMOTE_PROTOTYPES + && TYPE_PRECISION (parm_type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (parm_type)) parm_type = integer_type_node; -#endif DECL_ARG_TYPE (parm_decl) = parm_type; *ptr = parm_decl; diff --git a/gcc/java/expr.c b/gcc/java/expr.c index a825e981c35..38fa5d46fba 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1448,11 +1448,10 @@ pop_arguments (arg_types) tree tail = pop_arguments (TREE_CHAIN (arg_types)); tree type = TREE_VALUE (arg_types); tree arg = pop_value (type); -#ifdef PROMOTE_PROTOTYPES - if (TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) + if (PROMOTE_PROTOTYPES + && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (type)) arg = convert (integer_type_node, arg); -#endif return tree_cons (NULL_TREE, arg, tail); } abort (); diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 45744593f1f..b8620547d7d 100644 --- a/gcc/java/parse.c +++ b/gcc/java/parse.c @@ -140,6 +140,7 @@ #include "xref.h" #include "function.h" #include "except.h" +#include "expr.h" #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' @@ -8178,7 +8179,8 @@ expand_start_java_method (fndecl) tree next = TREE_CHAIN (tem); tree type = TREE_TYPE (tem); #ifdef PROMOTE_PROTOTYPES - if (TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) + if (PROMOTE_PROTOTYPES + && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (type)) type = integer_type_node; #endif diff --git a/gcc/java/parse.y b/gcc/java/parse.y index deba7e9c6bf..e9caf8d0c63 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -64,6 +64,7 @@ definitions and other extensions. */ #include "xref.h" #include "function.h" #include "except.h" +#include "expr.h" #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' @@ -5593,7 +5594,8 @@ expand_start_java_method (fndecl) tree next = TREE_CHAIN (tem); tree type = TREE_TYPE (tem); #ifdef PROMOTE_PROTOTYPES - if (TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) + if (PROMOTE_PROTOTYPES + && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (type)) type = integer_type_node; #endif -- 2.30.2