aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2001-01-11 00:08:45 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2001-01-11 00:08:45 +0000
commitcbd5937a3d6a1cb2ca5e85ef86f7793744d669d8 (patch)
treef150c0d0016913715fc3aa21c3fe6ff2ab27eb29 /gcc
parentd0be7718ed07a29a3cf6307101fc26c6f2a482fb (diff)
downloadgcc-cbd5937a3d6a1cb2ca5e85ef86f7793744d669d8.zip
gcc-cbd5937a3d6a1cb2ca5e85ef86f7793744d669d8.tar.gz
gcc-cbd5937a3d6a1cb2ca5e85ef86f7793744d669d8.tar.bz2
c-common.h (CTI_VOID_LIST): Remove.
* c-common.h (CTI_VOID_LIST): Remove. (void_list_node): Likewise. * tree.h (TI_VOID_LIST_NODE): New enumeral. (void_list_node): New macro. * config/arm/arm.c (arm_init_builtins): Use void_list_node. * config/i386/i386.c (ix86_init_builtins): Likewise. * config/ia64a/ia64.c (ia64_init_builtins): Likewise. * class.c (finish_struct_1): Remove last argument in call to make_decl_rtl; use make_function_rtl instead of make_decl_rtl. * decl.c (builtin_function): Likewise. (build_cp_library_fn): Likewise. (check_initializer): Likewise. (make_rtl_for_nonlocal_decl): Likewise. (cp_finish_decl): Likewise. (start_function): Likewise. * decl2.c (finish_anon_union): Likewise. * friend.c (do_friend): Likewise. * init.c (build_java_class_ref): Likewise. * method.c (make_thunk): Likewise. * pt.c (tsubst_friend_function): Likewise. * semantics.c (expand_body): Likewise. From-SVN: r38887
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/c-common.h2
-rw-r--r--gcc/config/arm/arm.c2
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/config/ia64/ia64.c4
-rw-r--r--gcc/cp/cp-tree.h3
-rw-r--r--gcc/cp/pt.c9
-rw-r--r--gcc/tree.h9
8 files changed, 32 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3498c50..38524d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2001-01-10 Mark Mitchell <mark@codesourcery.com>
+
+ * c-common.h (CTI_VOID_LIST): Remove.
+ (void_list_node): Likewise.
+ * tree.h (TI_VOID_LIST_NODE): New enumeral.
+ (void_list_node): New macro.
+ * config/arm/arm.c (arm_init_builtins): Use void_list_node.
+ * config/i386/i386.c (ix86_init_builtins): Likewise.
+ * config/ia64a/ia64.c (ia64_init_builtins): Likewise.
+
2001-01-10 Neil Booth <neil@daikokuya.demon.co.uk>
* Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o
diff --git a/gcc/c-common.h b/gcc/c-common.h
index adee309..9ea2c63 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -143,7 +143,6 @@ enum c_tree_index
CTI_C_BOOL_TRUE,
CTI_C_BOOL_FALSE,
CTI_DEFAULT_FUNCTION_TYPE,
- CTI_VOID_LIST,
CTI_VOID_FTYPE,
CTI_VOID_FTYPE_PTR,
@@ -192,7 +191,6 @@ enum c_tree_index
#define const_string_type_node c_global_trees[CTI_CONST_STRING_TYPE]
#define default_function_type c_global_trees[CTI_DEFAULT_FUNCTION_TYPE]
-#define void_list_node c_global_trees[CTI_VOID_LIST]
#define void_ftype c_global_trees[CTI_VOID_FTYPE]
#define void_ftype_ptr c_global_trees[CTI_VOID_FTYPE_PTR]
#define int_ftype_int c_global_trees[CTI_INT_FTYPE_INT]
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a2f40c0..30335db 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -8794,7 +8794,7 @@ arm_init_builtins ()
front-end that causes a failure while building libstdc++-v3. When
that bug is fixed, this code can be re-enabled. */
- tree endlink = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
+ tree endlink = void_list_node;
tree int_endlink = tree_cons (NULL_TREE, integer_type_node, endlink);
tree pchar_type_node = build_pointer_type (char_type_node);
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 217426b..72dbb9a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -7427,7 +7427,7 @@ ix86_init_builtins ()
{
struct builtin_description * d;
int i;
- tree endlink = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
+ tree endlink = void_list_node;
tree pchar_type_node = build_pointer_type (char_type_node);
tree pfloat_type_node = build_pointer_type (float_type_node);
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 14948b0..5488869 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by James E. Wilson <wilson@cygnus.com> and
David Mosberger <davidm@hpl.hp.com>.
@@ -6454,7 +6454,7 @@ ia64_init_builtins ()
{
tree psi_type_node = build_pointer_type (integer_type_node);
tree pdi_type_node = build_pointer_type (long_integer_type_node);
- tree endlink = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
+ tree endlink = void_list_node;
/* __sync_val_compare_and_swap_si, __sync_bool_compare_and_swap_si */
tree si_ftype_psi_si_si
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 5c806ce..2c22954 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -61,6 +61,7 @@ Boston, MA 02111-1307, USA. */
ICS_THIS_FLAG (in _CONV)
BINDING_HAS_LEVEL_P (in CPLUS_BINDING)
BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P (in BINFO)
+ TREE_PARMLIST (in TREE_LIST)
3: TYPE_USES_VIRTUAL_BASECLASSES (in a class TYPE).
BINFO_VTABLE_PATH_MARKED.
BINFO_PUSHDECLS_MARKED.
@@ -1755,7 +1756,7 @@ struct lang_type
/* Nonzero for TREE_LIST node means that this list of things
is a list of parameters, as opposed to a list of expressions. */
-#define TREE_PARMLIST(NODE) ((NODE)->common.unsigned_flag) /* overloaded! */
+#define TREE_PARMLIST(NODE) (TREE_LANG_FLAG_2 (NODE))
/* Nonzero for a parmlist means that this parmlist ended in ... */
#define PARMLIST_ELLIPSIS_P(NODE) TREE_LANG_FLAG_0 (NODE)
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index a6a9381..b8bd02e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6449,8 +6449,13 @@ tsubst (t, args, complain, in_decl)
&& value == TREE_VALUE (t)
&& chain == TREE_CHAIN (t))
return t;
- result = hash_tree_cons (purpose, value, chain);
- TREE_PARMLIST (result) = TREE_PARMLIST (t);
+ if (TREE_PARMLIST (t))
+ {
+ result = tree_cons (purpose, value, chain);
+ TREE_PARMLIST (result) = 1;
+ }
+ else
+ result = hash_tree_cons (purpose, value, chain);
return result;
}
case TREE_VEC:
diff --git a/gcc/tree.h b/gcc/tree.h
index 5e8a1a1..60f787e 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1739,6 +1739,8 @@ enum tree_index
TI_PTRDIFF_TYPE,
TI_VA_LIST_TYPE,
+ TI_VOID_LIST_NODE,
+
TI_V4SF_TYPE,
TI_V4SI_TYPE,
TI_V8QI_TYPE,
@@ -1793,6 +1795,13 @@ extern tree global_trees[TI_MAX];
#define ptrdiff_type_node global_trees[TI_PTRDIFF_TYPE]
#define va_list_type_node global_trees[TI_VA_LIST_TYPE]
+/* The node that should be placed at the end of a parameter list to
+ indicate that the function does not take a variable number of
+ arguments. The TREE_VALUE will be void_type_node and there will be
+ no TREE_CHAIN. Language-independent code should not assume
+ anything else about this node. */
+#define void_list_node global_trees[TI_VOID_LIST_NODE]
+
#define main_identifier_node global_trees[TI_MAIN_IDENTIFIER]
#define MAIN_NAME_P(NODE) (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)