decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.

* decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
	* rtti.c (typeinfo_in_lib_p): Likewise.
	* cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
	* name-lookup.c (arg_assoc_type): Likewise.

From-SVN: r110687
This commit is contained in:
Roger Sayle 2006-02-07 03:40:19 +00:00 committed by Roger Sayle
parent 0cc8f5c5a0
commit b38a05d083
5 changed files with 18 additions and 16 deletions

View File

@ -1,3 +1,10 @@
2006-02-06 Roger Sayle <roger@eyesopen.com>
* decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
* rtti.c (typeinfo_in_lib_p): Likewise.
* cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
* name-lookup.c (arg_assoc_type): Likewise.
2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
* cp-tree.h (tf_warn_or_error): New substituion flag.

View File

@ -1,6 +1,6 @@
/* Definitions for C++ parsing and type checking.
Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
@ -2358,12 +2358,12 @@ extern void decl_shadowed_for_var_insert (tree, tree);
#define DECL_EXTERNAL_LINKAGE_P(DECL) \
(decl_linkage (DECL) == lk_external)
/* Keep these codes in ascending code order. CHAR_TYPE is used here
to completely fill the range. */
/* Keep these codes in ascending code order. */
#define INTEGRAL_CODE_P(CODE) \
((CODE) == ENUMERAL_TYPE || (CODE) == BOOLEAN_TYPE \
|| (CODE) == CHAR_TYPE || (CODE) == INTEGER_TYPE)
#define INTEGRAL_CODE_P(CODE) \
((CODE) == ENUMERAL_TYPE \
|| (CODE) == BOOLEAN_TYPE \
|| (CODE) == INTEGER_TYPE)
/* [basic.fundamental]
@ -2372,11 +2372,9 @@ extern void decl_shadowed_for_var_insert (tree, tree);
Note that INTEGRAL_TYPE_P, as defined in tree.h, allows enumeration
types as well, which is incorrect in C++. Keep these checks in
ascending code order. CHAR_TYPE is added to complete the interval of
values. */
ascending code order. */
#define CP_INTEGRAL_TYPE_P(TYPE) \
(TREE_CODE (TYPE) == BOOLEAN_TYPE \
|| TREE_CODE (TYPE) == CHAR_TYPE \
|| TREE_CODE (TYPE) == INTEGER_TYPE)
/* Returns true if TYPE is an integral or enumeration name. Keep

View File

@ -1,6 +1,6 @@
/* Process declarations and variables for C++ compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
@ -7035,8 +7035,7 @@ grokdeclarator (const cp_declarator *declarator,
`signed int' cannot be so controlled. */
&& !(typedef_decl
&& C_TYPEDEF_EXPLICITLY_SIGNED (typedef_decl))
&& (TREE_CODE (type) == INTEGER_TYPE
|| TREE_CODE (type) == CHAR_TYPE)
&& TREE_CODE (type) == INTEGER_TYPE
&& !same_type_p (TYPE_MAIN_VARIANT (type), wchar_type_node)))
{
if (longlong)

View File

@ -1,5 +1,5 @@
/* Definitions for C++ name lookup routines.
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
@ -4445,7 +4445,6 @@ arg_assoc_type (struct arg_lookup *k, tree type)
case REAL_TYPE:
case COMPLEX_TYPE:
case VECTOR_TYPE:
case CHAR_TYPE:
case BOOLEAN_TYPE:
return false;
case RECORD_TYPE:

View File

@ -1,6 +1,6 @@
/* RunTime Type Identification
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005
2005, 2006
Free Software Foundation, Inc.
Mostly written by Jason Merrill (jason@cygnus.com).
@ -986,7 +986,6 @@ typeinfo_in_lib_p (tree type)
{
case INTEGER_TYPE:
case BOOLEAN_TYPE:
case CHAR_TYPE:
case REAL_TYPE:
case VOID_TYPE:
return true;