tree.c (build_common_tree_nodes): Also initialize size_type_node.
authorRichard Guenther <rguenther@suse.de>
Tue, 7 Jun 2011 13:01:27 +0000 (13:01 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 7 Jun 2011 13:01:27 +0000 (13:01 +0000)
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

14 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/misc.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/fortran/ChangeLog
gcc/fortran/f95-lang.c
gcc/go/ChangeLog
gcc/go/go-lang.c
gcc/java/ChangeLog
gcc/java/decl.c
gcc/lto/ChangeLog
gcc/lto/lto-lang.c
gcc/tree.c

index 7d8ac5c93c7e26cdc7f1013f2a6f61aa9b55bc01..4dd12e31dbc0143619ca6cd075d71dfa1384af62 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (build_common_tree_nodes): Also initialize size_type_node.
+       Call set_sizetype from here.
+
 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
 
        * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
index a54c336971946ffe405d246832ce121730e78572..17eb8963a1d6ded8e529b7453b2145f671d71a17 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * gcc-interface/misc.c (gnat_init): Do not set
+       size_type_node or call set_sizetype.
+
 2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate
index 4067e01e78d1e60d4aaa5b72a44b16a2c8c3fec4..e69668ae852a74070ec7ca3646a62d22bc958fe8 100644 (file)
@@ -309,17 +309,6 @@ gnat_init (void)
      matter since we'll use the explicit `unsigned char' for Character.  */
   build_common_tree_nodes (flag_signed_char);
 
-  /* In Ada, we use the unsigned type corresponding to the width of Pmode as
-     SIZETYPE.  In most cases when ptr_mode and Pmode differ, C will use the
-     width of ptr_mode for SIZETYPE, but we get better code using the width
-     of Pmode.  Note that, although we manipulate negative offsets for some
-     internal constructs and rely on compile time overflow detection in size
-     computations, using unsigned types for SIZETYPEs is fine since they are
-     treated specially by the middle-end, in particular sign-extended.  */
-  size_type_node = gnat_type_for_mode (Pmode, 1);
-  set_sizetype (size_type_node);
-  TYPE_NAME (sizetype) = get_identifier ("size_type");
-
   /* In Ada, we use an unsigned 8-bit type for the default boolean type.  */
   boolean_type_node = make_unsigned_type (8);
   TREE_SET_CODE (boolean_type_node, BOOLEAN_TYPE);
index f0592f5390bcef89d88dc4538de56d43dd719d4e..1c5f9d3e00153562d111c8dd833d823bfb2d5e3b 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (c_common_nodes_and_builtins): Do not set
+       size_type_node or call set_sizetype.
+
 2011-06-07  Dodji Seketeli  <dodji@redhat.com>
 
        PR debug/49130
index dbef4b314eab6045fd700dd631edc98bd0b0d5f1..e5c070f940b7dbea1839621dd6ffb5438ae534fa 100644 (file)
@@ -4666,13 +4666,7 @@ c_common_nodes_and_builtins (void)
                                         TYPE_DECL, NULL_TREE,
                                         widest_unsigned_literal_type_node));
 
-  /* `unsigned long' is the standard type for sizeof.
-     Note that stddef.h uses `unsigned long',
-     and this must agree, even if long and int are the same size.  */
-  size_type_node =
-    TREE_TYPE (identifier_global_value (get_identifier (SIZE_TYPE)));
   signed_size_type_node = c_common_signed_type (size_type_node);
-  set_sizetype (size_type_node);
 
   pid_type_node =
     TREE_TYPE (identifier_global_value (get_identifier (PID_TYPE)));
index af16e578341246a7eed528330a96ba40d4815229..33199109cc7bac7c7e1aab00d01fdfeeab7f7e9b 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * f95-lang.c (gfc_init_decl_processing): Do not set
+       size_type_node or call set_sizetype.
+
 2011-06-05  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/49255
index e247d70a6c014220f95702033b0a5d7e58f4c17e..fea76102c35eddb95e6006dea86e120ee4dd84a9 100644 (file)
@@ -590,9 +590,6 @@ gfc_init_decl_processing (void)
      want double_type_node to actually have double precision.  */
   build_common_tree_nodes (false);
 
-  size_type_node = gfc_build_uint_type (POINTER_SIZE);
-  set_sizetype (size_type_node);
-
   build_common_tree_nodes_2 (0);
   void_list_node = build_tree_list (NULL_TREE, void_type_node);
 
index 5df1e050b8748f8d2fabe17f0dde48aa8dae9e55..edaadec3c470b935d8822af7db8e45956c014cb2 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * go-lang.c (go_langhook_init): Do not set
+       size_type_node or call set_sizetype.
+
 2011-05-27  Ian Lance Taylor  <iant@google.com>
 
        * go-backend.c: Include "output.h".
index 84c7f8d159158b8254fe4fb20a6fcb0ce39e2821..4687c6e19ba8f508f040ab41059a9b2e2b8adfaf 100644 (file)
@@ -87,15 +87,6 @@ go_langhook_init (void)
 {
   build_common_tree_nodes (false);
 
-  /* The sizetype may be "unsigned long" or "unsigned long long".  */
-  if (TYPE_MODE (long_unsigned_type_node) == ptr_mode)
-    size_type_node = long_unsigned_type_node;
-  else if (TYPE_MODE (long_long_unsigned_type_node) == ptr_mode)
-    size_type_node = long_long_unsigned_type_node;
-  else
-    size_type_node = long_unsigned_type_node;
-  set_sizetype (size_type_node);
-
   build_common_tree_nodes_2 (0);
 
   /* We must create the gogo IR after calling build_common_tree_nodes
index 1e50bc86e6c84affbe06aea31cb4ff17a4144918..b29e9c29f006fb564471729b10c6b1c48e587b8d 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * decl.c (java_init_decl_processing): Properly initialize
+       size_type_node.
+
 2011-05-30  Joern Rennecke  <joern.rennecke@embecosm.com>
 
        PR middle-end/46500
index e95813680881bb31917567d2718d0a3857c6b5ff..0ee23742a166a4e2645d94fe68b26233583fdbcb 100644 (file)
@@ -606,7 +606,14 @@ java_init_decl_processing (void)
 
   /* This is not a java type, however tree-dfa requires a definition for
      size_type_node.  */
-  size_type_node = make_unsigned_type (POINTER_SIZE);
+  if (strcmp (SIZE_TYPE, "unsigned int") == 0)
+    size_type_node = make_unsigned_type (INT_TYPE_SIZE);
+  else if (strcmp (SIZE_TYPE, "long unsigned int") == 0)
+    size_type_node = make_unsigned_type (LONG_TYPE_SIZE);
+  else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
+    size_type_node = make_unsigned_type (LONG_LONG_TYPE_SIZE);
+  else
+    gcc_unreachable ();
   set_sizetype (size_type_node);
 
   /* Define these next since types below may used them.  */
index e8393c1f523762f8e150b69500529edeaddbe2e0..0d980ee3fc68de9f01a8a051ac35ab10c7a8c9d2 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * lto-lang.c (lto_init): Do not set
+       size_type_node or call set_sizetype.
+
 2011-06-04  Diego Novillo  <dnovillo@google.com>
 
        * lto.c (lto_init): New.
index 296a71976d1bbd4ac1c9ab2ac8eec45c4095cfb4..8a4cee029d3c0ebff107aef1c5ceade7ba895c96 100644 (file)
@@ -1087,17 +1087,6 @@ lto_init (void)
   /* Create the basic integer types.  */
   build_common_tree_nodes (flag_signed_char);
 
-  /* Tell the middle end what type to use for the size of objects.  */
-  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);
-
   /* The global tree for the main identifier is filled in by
      language-specific front-end initialization that is not run in the
      LTO back-end.  It appears that all languages that perform such
index 764a0f422dfcd108e03c22318bc5ba5c916d9d18..a2ea14c82acdfb150ccd2666a30d19cf3571d5b4 100644 (file)
@@ -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);