===================================================================
@@ -9167,10 +9167,12 @@ make_or_reuse_accum_type (unsigned size,
}
/* Create nodes for all integer types (and error_mark_node) using the sizes
- of C datatypes. */
+ of C datatypes. SIGNED_CHAR specifies whether char is signed,
+ SHORT_DOUBLE specifies whether double should be of the same precision
+ as float. */
void
-build_common_tree_nodes (bool signed_char)
+build_common_tree_nodes (bool signed_char, bool short_double)
{
error_mark_node = make_node (ERROR_MARK);
TREE_TYPE (error_mark_node) = error_mark_node;
@@ -9247,14 +9249,7 @@ build_common_tree_nodes (bool signed_cha
access_public_node = get_identifier ("public");
access_protected_node = get_identifier ("protected");
access_private_node = get_identifier ("private");
-}
-
-/* Call this function after calling build_common_tree_nodes.
- It will create several other common tree nodes. */
-void
-build_common_tree_nodes_2 (int short_double)
-{
/* Define these next since types below may used them. */
integer_zero_node = build_int_cst (integer_type_node, 0);
integer_one_node = build_int_cst (integer_type_node, 1);
===================================================================
@@ -5396,8 +5396,7 @@ extern int real_onep (const_tree);
extern int real_twop (const_tree);
extern int real_minus_onep (const_tree);
extern void init_ttree (void);
-extern void build_common_tree_nodes (bool);
-extern void build_common_tree_nodes_2 (int);
+extern void build_common_tree_nodes (bool, bool);
extern void build_common_builtin_nodes (void);
extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int);
extern tree build_range_type (tree, tree, tree);
===================================================================
@@ -4576,8 +4576,7 @@ c_common_nodes_and_builtins (void)
tree va_list_ref_type_node;
tree va_list_arg_type_node;
- build_common_tree_nodes (flag_signed_char);
- build_common_tree_nodes_2 (flag_short_double);
+ build_common_tree_nodes (flag_signed_char, flag_short_double);
/* Define `int' and `char' first so that dbx will output them first. */
record_builtin_type (RID_INT, NULL, integer_type_node);
===================================================================
@@ -588,9 +588,8 @@ gfc_init_decl_processing (void)
/* Build common tree nodes. char_type_node is unsigned because we
only use it for actual characters, not for INTEGER(1). Also, we
want double_type_node to actually have double precision. */
- build_common_tree_nodes (false);
+ build_common_tree_nodes (false, false);
- build_common_tree_nodes_2 (0);
void_list_node = build_tree_list (NULL_TREE, void_type_node);
/* Set up F95 type nodes. */
===================================================================
@@ -86,9 +86,7 @@ struct GTY(()) language_function
static bool
go_langhook_init (void)
{
- build_common_tree_nodes (false);
-
- build_common_tree_nodes_2 (0);
+ build_common_tree_nodes (false, false);
/* We must create the gogo IR after calling build_common_tree_nodes
(because Gogo::define_builtin_function_trees refers indirectly
===================================================================
@@ -567,10 +567,7 @@ java_init_decl_processing (void)
global_binding_level = current_binding_level;
/* Build common tree nodes, Java has an unsigned char. */
- build_common_tree_nodes (false);
-
- /* Build the rest of the common tree nodes. */
- build_common_tree_nodes_2 (0);
+ build_common_tree_nodes (false, false);
/* ??? Now we continue and override some of the built types again
with Java specific types. As the above generated types are
===================================================================
@@ -1085,7 +1085,7 @@ lto_init (void)
linemap_add (line_table, LC_RENAME, 0, NULL, 0);
/* Create the basic integer types. */
- build_common_tree_nodes (flag_signed_char);
+ build_common_tree_nodes (flag_signed_char, /*short_double=*/false);
/* The global tree for the main identifier is filled in by
language-specific front-end initialization that is not run in the
@@ -1102,8 +1102,6 @@ lto_init (void)
ptrdiff_type_node = integer_type_node;
- /* Create other basic types. */
- build_common_tree_nodes_2 (/*short_double=*/false);
lto_build_c_type_nodes ();
gcc_assert (va_list_type_node);
===================================================================
@@ -307,7 +307,7 @@ gnat_init (void)
/* Do little here, most of the standard declarations are set up after the
front-end has been run. Use the same `char' as C, this doesn't really
matter since we'll use the explicit `unsigned char' for Character. */
- build_common_tree_nodes (flag_signed_char);
+ build_common_tree_nodes (flag_signed_char, false);
/* In Ada, we use an unsigned 8-bit type for the default boolean type. */
boolean_type_node = make_unsigned_type (8);
@@ -316,7 +316,6 @@ gnat_init (void)
build_int_cst (boolean_type_node, 1));
SET_TYPE_RM_SIZE (boolean_type_node, bitsize_int (1));
- build_common_tree_nodes_2 (0);
sbitsize_one_node = sbitsize_int (1);
sbitsize_unit_node = sbitsize_int (BITS_PER_UNIT);
boolean_true_node = TYPE_MAX_VALUE (boolean_type_node);
===================================================================
@@ -10876,7 +10876,7 @@ instructions or prefetch instructions).
To create a built-in function, call the function
@code{lang_hooks.builtin_function}
which is defined by the language front end. You can use any type nodes set
-up by @code{build_common_tree_nodes} and @code{build_common_tree_nodes_2};
+up by @code{build_common_tree_nodes};
only language front ends that use those two functions will call
@samp{TARGET_INIT_BUILTINS}.
@end deftypefn