summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-25 20:00:59 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-25 20:00:59 +0000
commitd2d4bddeaa70b748e0c470537e51352a1912215f (patch)
treea6b2476cc75872ea15f87872782af87262afe2cb /gcc/cp
parentfa1f38e1482326b4816db021a39cc880e600e1e8 (diff)
downloadgcc-d2d4bddeaa70b748e0c470537e51352a1912215f.tar.gz
* builtins.def: Encode additional information, such as names and
types, here. * builtin-types.def: New file. * builtins.c (built_in_names): Adjust use of DEF_BUILTIN. (built_in_decls): Likewise. Don't explicitly initialize global data to NULL. (expand_builtin_mathfn): Handle float and long double variants of math builtins. (expand_builtin): Likewise. * c-common.c (c_common_nodes_and_builtins): Make it table-driven. (expand_tree_builtin): Handle long, long long, float, and long double variants of math functions. * c-common.h (c_tree_index): Remove some unused nodes. (void_ftype): Remove. (void_type_ptr): Likewise. (int_ftype_int): Likewise. (ptr_ftype_sizetype): Likewise. * c-decl.c (init_decl_processing): Remove creation of DWARF builtins. * defaults.h (MD_INIT_BUILTINS): Provide default definition. * tree.h (built_in_function): Adjust definition of DEF_BUILTIN. * Makefile.in (c-common.o): Depend on builtin-types.def. * decl.c (init_decl_processing): Tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42583 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl.c15
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index df72dfe3d0a..bf9bd893529 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2001-05-26 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (init_decl_processing): Tweak.
+
2001-05-24 Mark Mitchell <mark@codesourcery.com>
* decl.c (duplicate_decls): Tidy.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index c91ba6082ee..06f19cdeb0b 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -6325,6 +6325,8 @@ void
init_decl_processing ()
{
tree fields[20];
+ tree void_ftype;
+ tree void_ftype_ptr;
/* Check to see that the user did not specify an invalid combination
of command-line options. */
@@ -6452,6 +6454,11 @@ init_decl_processing ()
vtt_parm_type = build_pointer_type (const_ptr_type_node);
lang_type_promotes_to = convert_type_from_ellipsis;
+ void_ftype = build_function_type (void_type_node, void_list_node);
+ void_ftype_ptr = build_function_type (void_type_node,
+ tree_cons (NULL_TREE,
+ ptr_type_node,
+ void_list_node));
void_ftype_ptr
= build_exception_variant (void_ftype_ptr, empty_except_spec);
@@ -6528,13 +6535,19 @@ init_decl_processing ()
{
tree bad_alloc_type_node, newtype, deltype;
-
+ tree ptr_ftype_sizetype;
+
if (flag_honor_std)
push_namespace (std_identifier);
bad_alloc_type_node = xref_tag
(class_type_node, get_identifier ("bad_alloc"), 1);
if (flag_honor_std)
pop_namespace ();
+ ptr_ftype_sizetype
+ = build_function_type (ptr_type_node,
+ tree_cons (NULL_TREE,
+ c_size_type_node,
+ void_list_node));
newtype = build_exception_variant
(ptr_ftype_sizetype, add_exception_specifier
(NULL_TREE, bad_alloc_type_node, -1));