Hi,

On 04/02/2013 11:30 AM, Gabriel Dos Reis wrote:

[]
Sorry for chiming in late - but VAR_P loses the fact that we are checking
for a decl ... VAR_DECL_P would be more like following existing practice
(otherwise we can shorten VAR_OR_FUNCTION_DECL_P to
VAR_OR_FUNCTION_P for example).  As for further cleanups we seem
to have a few IS_... macros as well (one even IS_..._P).

Richard.
If we are checking for a VAR, we necessarily checking for a VAR decl..

The purpose of the macro is make the predicates more readable.
I would not mind having VAR_OR_FUNCTION_P instead.

Yes, we should get rid of the IS_.
For example we have:

#define IS_OVERLOAD_TYPE(T) TAGGED_TYPE_P (T)

shall we keep only one? The below - untested - gets rid of the latter and renames the former to OVERLOAD_TYPE_P.

Paolo.

/////////////////


Index: call.c
===================================================================
--- call.c      (revision 197341)
+++ call.c      (working copy)
@@ -5097,8 +5097,8 @@ build_new_op_1 (location_t loc, enum tree_code cod
   if (code == COND_EXPR)
     /* Use build_conditional_expr instead.  */
     gcc_unreachable ();
-  else if (! IS_OVERLOAD_TYPE (TREE_TYPE (arg1))
-          && (! arg2 || ! IS_OVERLOAD_TYPE (TREE_TYPE (arg2))))
+  else if (! OVERLOAD_TYPE_P (TREE_TYPE (arg1))
+          && (! arg2 || ! OVERLOAD_TYPE_P (TREE_TYPE (arg2))))
     goto builtin;
 
   if (code == POSTINCREMENT_EXPR || code == POSTDECREMENT_EXPR)
Index: class.c
===================================================================
--- class.c     (revision 197341)
+++ class.c     (working copy)
@@ -1319,7 +1319,7 @@ struct abi_tag_data
 static tree
 find_abi_tags_r (tree *tp, int */*walk_subtrees*/, void *data)
 {
-  if (!TAGGED_TYPE_P (*tp))
+  if (!OVERLOAD_TYPE_P (*tp))
     return NULL_TREE;
 
   if (tree attributes = lookup_attribute ("abi_tag", TYPE_ATTRIBUTES (*tp)))
Index: cp-tree.h
===================================================================
--- cp-tree.h   (revision 197341)
+++ cp-tree.h   (working copy)
@@ -1233,7 +1233,7 @@ enum languages { lang_c, lang_cplusplus, lang_java
 
 /* Nonzero if NODE has no name for linkage purposes.  */
 #define TYPE_ANONYMOUS_P(NODE) \
-  (TAGGED_TYPE_P (NODE) && ANON_AGGRNAME_P (TYPE_LINKAGE_IDENTIFIER (NODE)))
+  (OVERLOAD_TYPE_P (NODE) && ANON_AGGRNAME_P (TYPE_LINKAGE_IDENTIFIER (NODE)))
 
 /* The _DECL for this _TYPE.  */
 #define TYPE_MAIN_DECL(NODE) (TYPE_STUB_DECL (TYPE_MAIN_VARIANT (NODE)))
@@ -1270,9 +1270,8 @@ enum languages { lang_c, lang_cplusplus, lang_java
 /* Keep these checks in ascending code order.  */
 #define RECORD_OR_UNION_CODE_P(T)      \
   ((T) == RECORD_TYPE || (T) == UNION_TYPE)
-#define TAGGED_TYPE_P(T) \
+#define OVERLOAD_TYPE_P(T) \
   (CLASS_TYPE_P (T) || TREE_CODE (T) == ENUMERAL_TYPE)
-#define IS_OVERLOAD_TYPE(T) TAGGED_TYPE_P (T)
 
 /* True if this a "Java" type, defined in 'extern "Java"'.  */
 #define TYPE_FOR_JAVA(NODE) TYPE_LANG_FLAG_3 (NODE)
Index: decl.c
===================================================================
--- decl.c      (revision 197341)
+++ decl.c      (working copy)
@@ -4182,7 +4182,7 @@ void
 warn_misplaced_attr_for_class_type (source_location location,
                                    tree class_type)
 {
-  gcc_assert (TAGGED_TYPE_P (class_type));
+  gcc_assert (OVERLOAD_TYPE_P (class_type));
 
   warning_at (location, OPT_Wattributes,
              "attribute ignored in declaration "
@@ -4497,7 +4497,7 @@ start_decl (const cp_declarator *declarator,
   /* If this is a typedef that names the class for linkage purposes
      (7.1.3p8), apply any attributes directly to the type.  */
   if (TREE_CODE (decl) == TYPE_DECL
-      && TAGGED_TYPE_P (TREE_TYPE (decl))
+      && OVERLOAD_TYPE_P (TREE_TYPE (decl))
       && decl == TYPE_NAME (TYPE_MAIN_VARIANT (TREE_TYPE (decl))))
     flags = ATTR_FLAG_TYPE_IN_PLACE;
   else
@@ -10938,7 +10938,7 @@ type_is_deprecated (tree type)
     return type;
 
   /* Do warn about using typedefs to a deprecated class.  */
-  if (TAGGED_TYPE_P (type) && type != TYPE_MAIN_VARIANT (type))
+  if (OVERLOAD_TYPE_P (type) && type != TYPE_MAIN_VARIANT (type))
     return type_is_deprecated (TYPE_MAIN_VARIANT (type));
 
   code = TREE_CODE (type);
Index: decl2.c
===================================================================
--- decl2.c     (revision 197341)
+++ decl2.c     (working copy)
@@ -868,7 +868,7 @@ grokfield (const cp_declarator *declarator,
 
          /* If this is a typedef that names the class for linkage purposes
             (7.1.3p8), apply any attributes directly to the type.  */
-         if (TAGGED_TYPE_P (TREE_TYPE (value))
+         if (OVERLOAD_TYPE_P (TREE_TYPE (value))
              && value == TYPE_NAME (TYPE_MAIN_VARIANT (TREE_TYPE (value))))
            attrflags = ATTR_FLAG_TYPE_IN_PLACE;
 
@@ -1934,7 +1934,7 @@ min_vis_r (tree *tp, int *walk_subtrees, void *dat
     {
       *walk_subtrees = 0;
     }
-  else if (TAGGED_TYPE_P (*tp)
+  else if (OVERLOAD_TYPE_P (*tp)
           && !TREE_PUBLIC (TYPE_MAIN_DECL (*tp)))
     {
       *vis_p = VISIBILITY_ANON;
Index: pt.c
===================================================================
--- pt.c        (revision 197341)
+++ pt.c        (working copy)
@@ -324,7 +324,7 @@ get_template_info (const_tree t)
   if (!tinfo && DECL_IMPLICIT_TYPEDEF_P (t))
     t = TREE_TYPE (t);
 
-  if (TAGGED_TYPE_P (t))
+  if (OVERLOAD_TYPE_P (t))
     tinfo = TYPE_TEMPLATE_INFO (t);
   else if (TREE_CODE (t) == BOUND_TEMPLATE_TEMPLATE_PARM)
     tinfo = TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO (t);
Index: tree.c
===================================================================
--- tree.c      (revision 197341)
+++ tree.c      (working copy)
@@ -3306,7 +3306,7 @@ handle_abi_tag_attribute (tree* node, tree name, t
 {
   if (TYPE_P (*node))
     {
-      if (!TAGGED_TYPE_P (*node))
+      if (!OVERLOAD_TYPE_P (*node))
        {
          error ("%qE attribute applied to non-class, non-enum type %qT",
                 name, *node);

Reply via email to