aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-06-07 13:01:27 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-06-07 13:01:27 +0000
commit009db074870ccdf44bafc9d3f604246ddb80974b (patch)
treecbb46e504142fe46fdb3be5ff672c24a8d0d2cd1 /gcc/tree.c
parentb4592b92ac97f5573c08b16d115c89d3b8157c39 (diff)
downloadgcc-009db074870ccdf44bafc9d3f604246ddb80974b.zip
gcc-009db074870ccdf44bafc9d3f604246ddb80974b.tar.gz
gcc-009db074870ccdf44bafc9d3f604246ddb80974b.tar.bz2
tree.c (build_common_tree_nodes): Also initialize size_type_node.
2011-06-07 Richard Guenther <rguenther@suse.de> * tree.c (build_common_tree_nodes): Also initialize size_type_node. Call set_sizetype from here. c-family/ * c-common.c (c_common_nodes_and_builtins): Do not set size_type_node or call set_sizetype. go/ * go-lang.c (go_langhook_init): Do not set size_type_node or call set_sizetype. fortran/ * f95-lang.c (gfc_init_decl_processing): Do not set size_type_node or call set_sizetype. java/ * decl.c (java_init_decl_processing): Properly initialize size_type_node. lto/ * lto-lang.c (lto_init): Do not set size_type_node or call set_sizetype. ada/ * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call set_sizetype. From-SVN: r174743
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 764a0f4..a2ea14c 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -9142,6 +9142,7 @@ build_common_tree_nodes (bool signed_char)
int128_unsigned_type_node = make_unsigned_type (128);
}
#endif
+
/* Define a boolean type. This type only represents boolean values but
may be larger than char depending on the value of BOOL_TYPE_SIZE.
Front ends which want to override this size (i.e. Java) can redefine
@@ -9151,6 +9152,17 @@ build_common_tree_nodes (bool signed_char)
TYPE_MAX_VALUE (boolean_type_node) = build_int_cst (boolean_type_node, 1);
TYPE_PRECISION (boolean_type_node) = 1;
+ /* Define what type to use for size_t. */
+ if (strcmp (SIZE_TYPE, "unsigned int") == 0)
+ size_type_node = unsigned_type_node;
+ else if (strcmp (SIZE_TYPE, "long unsigned int") == 0)
+ size_type_node = long_unsigned_type_node;
+ else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
+ size_type_node = long_long_unsigned_type_node;
+ else
+ gcc_unreachable ();
+ set_sizetype (size_type_node);
+
/* Fill in the rest of the sized types. Reuse existing type nodes
when possible. */
intQI_type_node = make_or_reuse_type (GET_MODE_BITSIZE (QImode), 0);