(init_decl_processing): When making SIZETYPE, start with name in SIZE_TYPE.
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 26 Jun 1993 15:15:29 +0000 (11:15 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 26 Jun 1993 15:15:29 +0000 (11:15 -0400)
(init_decl_processing): When making SIZETYPE, start with name in
SIZE_TYPE.  If -traditional, use a signed version of that type, if it
is unsigned.

From-SVN: r4752

gcc/c-decl.c

index d7001b99138286da57e52917dc8ba479f9112ea2..11447e4730a5850f3ea6e336fce19a90e40e28c6 100644 (file)
@@ -1,5 +1,5 @@
 /* Process declarations and variables for C compiler.
-   Copyright (C) 1988, 1992 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1992, 1993 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -2615,11 +2615,10 @@ init_decl_processing ()
      Traditionally, use a signed type.
      Note that stddef.h uses `unsigned long',
      and this must agree, even of long and int are the same size.  */
-  if (flag_traditional)
-    sizetype = long_integer_type_node;
-  else
-    sizetype
-      = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (SIZE_TYPE)));
+  sizetype
+    = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (SIZE_TYPE)));
+  if (flag_traditional && TREE_UNSIGNED (sizetype))
+    sizetype = signed_type (sizetype);
 
   ptrdiff_type_node
     = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (PTRDIFF_TYPE)));