decl.c (WINT_TYPE): Define.
authorJoseph Myers <jsm28@cam.ac.uk>
Tue, 17 Oct 2000 07:00:06 +0000 (08:00 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 17 Oct 2000 07:00:06 +0000 (08:00 +0100)
* decl.c (WINT_TYPE): Define.
(init_decl_processing): Create types unsigned_ptrdiff_type_node,
c_size_type_node, signed_size_type_node and wint_type_node.

From-SVN: r36898

gcc/cp/ChangeLog
gcc/cp/decl.c

index b9c74aded94a2720c7f415848bf75f7f59d857d8..1c61ab2393cf1479d0c51d5dd5f40aa3bbcbeeb2 100644 (file)
@@ -1,3 +1,9 @@
+2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * decl.c (WINT_TYPE): Define.
+       (init_decl_processing): Create types unsigned_ptrdiff_type_node,
+       c_size_type_node, signed_size_type_node and wint_type_node.
+
 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * decl2.c (warn_missing_format_attribute): New variable.
index ba99c3bd5026e77d0ffca0290c77c46bddeca958..8e7443f09be2ee02f681d01249d2501210574bd3 100644 (file)
@@ -79,6 +79,10 @@ extern int (*valid_lang_attribute) PARAMS ((tree, tree, tree, tree));
 #define WCHAR_TYPE "int"
 #endif
 
+#ifndef WINT_TYPE
+#define WINT_TYPE "unsigned int"
+#endif
+
 #ifndef INTMAX_TYPE
 #define INTMAX_TYPE ((INT_TYPE_SIZE == LONG_LONG_TYPE_SIZE)    \
                     ? "int"                                    \
@@ -6385,6 +6389,7 @@ init_decl_processing ()
 
   ptrdiff_type_node
     = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (PTRDIFF_TYPE)));
+  unsigned_ptrdiff_type_node = unsigned_type (ptrdiff_type_node);
 
   /* Define both `signed char' and `unsigned char'.  */
   record_builtin_type (RID_MAX, "signed char", signed_char_type_node);
@@ -6393,8 +6398,10 @@ init_decl_processing ()
   /* `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.  */
-  set_sizetype
-    (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (SIZE_TYPE))));
+  c_size_type_node =
+    TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (SIZE_TYPE)));
+  signed_size_type_node = signed_type (c_size_type_node);
+  set_sizetype (c_size_type_node);
 
   /* Create the widest literal types. */
   widest_integer_literal_type_node = make_signed_type (HOST_BITS_PER_WIDE_INT * 2);
@@ -6554,6 +6561,9 @@ init_decl_processing ()
   wchar_array_type_node
     = build_array_type (wchar_type_node, array_domain_type);
 
+  wint_type_node =
+    TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (WINT_TYPE)));
+
   intmax_type_node =
     TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (INTMAX_TYPE)));
   uintmax_type_node =