* readelf.c (dynamic_info): Correct size of array.
[deliverable/binutils-gdb.git] / gdb / c-typeprint.c
index 26c8951bdb3488feaf17a7cbc60a180f9b22a216..807eec16781d4eae9a2c1321284c4cd1354245c4 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for printing C and C++ types for GDB, the GNU debugger.
    Copyright (C) 1986, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
-   1999, 2000, 2001, 2002, 2003, 2006, 2007, 2008
+   1999, 2000, 2001, 2002, 2003, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -70,17 +70,15 @@ c_print_type (struct type *type, char *varstring, struct ui_file *stream,
   c_type_print_base (type, stream, show, level);
   code = TYPE_CODE (type);
   if ((varstring != NULL && *varstring != '\0')
-      ||
   /* Need a space if going to print stars or brackets;
      but not if we will print just a type name.  */
-      ((show > 0 || TYPE_NAME (type) == 0)
-       &&
-       (code == TYPE_CODE_PTR || code == TYPE_CODE_FUNC
-       || code == TYPE_CODE_METHOD
-       || code == TYPE_CODE_ARRAY
-       || code == TYPE_CODE_MEMBERPTR
-       || code == TYPE_CODE_METHODPTR
-       || code == TYPE_CODE_REF)))
+      || ((show > 0 || TYPE_NAME (type) == 0)
+         && (code == TYPE_CODE_PTR || code == TYPE_CODE_FUNC
+             || code == TYPE_CODE_METHOD
+             || code == TYPE_CODE_ARRAY
+             || code == TYPE_CODE_MEMBERPTR
+             || code == TYPE_CODE_METHODPTR
+             || code == TYPE_CODE_REF)))
     fputs_filtered (" ", stream);
   need_post_space = (varstring != NULL && strcmp (varstring, "") != 0);
   c_type_print_varspec_prefix (type, stream, show, 0, need_post_space);
@@ -338,7 +336,8 @@ c_type_print_modifier (struct type *type, struct ui_file *stream,
       did_print_modifier = 1;
     }
 
-  address_space_id = address_space_int_to_name (TYPE_INSTANCE_FLAGS (type));
+  address_space_id = address_space_int_to_name (get_type_arch (type),
+                                               TYPE_INSTANCE_FLAGS (type));
   if (address_space_id)
     {
       if (did_print_modifier || need_pre_space)
@@ -746,8 +745,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
        * tag  for unnamed struct/union/enum's, which we don't
        * want to print.
        */
-      if (TYPE_TAG_NAME (type) != NULL &&
-         strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
+      if (TYPE_TAG_NAME (type) != NULL
+         && strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
        {
          fputs_filtered (TYPE_TAG_NAME (type), stream);
          if (show > 0)
@@ -784,8 +783,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
             masquerading as a class, if all members are public, there's
             no need for a "public:" label. */
 
-         if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_CLASS) ||
-             (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_TEMPLATE))
+         if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_CLASS)
+             || (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_TEMPLATE))
            {
              QUIT;
              len = TYPE_NFIELDS (type);
@@ -813,8 +812,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
                    }
                }
            }
-         else if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_STRUCT) ||
-                  (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_UNION))
+         else if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_STRUCT)
+                  || (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_UNION))
            {
              QUIT;
              len = TYPE_NFIELDS (type);
@@ -833,8 +832,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
                      QUIT;
                      len = TYPE_FN_FIELDLIST_LENGTH (type, j);
                      for (i = 0; i < len; i++)
-                       if (TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i) ||
-                           TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type, j), i))
+                       if (TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i)
+                           || TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type, j), i))
                          {
                            need_access_label = 1;
                            break;
@@ -890,14 +889,12 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
                }
 
              print_spaces_filtered (level + 4, stream);
-             if (TYPE_FIELD_STATIC (type, i))
-               {
-                 fprintf_filtered (stream, "static ");
-               }
+             if (field_is_static (&TYPE_FIELD (type, i)))
+               fprintf_filtered (stream, "static ");
              c_print_type (TYPE_FIELD_TYPE (type, i),
                            TYPE_FIELD_NAME (type, i),
                            stream, show - 1, level + 4);
-             if (!TYPE_FIELD_STATIC (type, i)
+             if (!field_is_static (&TYPE_FIELD (type, i))
                  && TYPE_FIELD_PACKED (type, i))
                {
                  /* It is a bitfield.  This code does not attempt
@@ -987,9 +984,9 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
                                        TYPE_FN_FIELD_PHYSNAME (f, j));
                      break;
                    }
-                 else if (!is_constructor &&   /* constructors don't have declared types */
-                          !is_full_physname_constructor &&     /*    " "  */
-                          !is_type_conversion_operator (type, i, j))
+                 else if (!is_constructor      /* constructors don't have declared types */
+                          && !is_full_physname_constructor     /*    " "  */
+                          && !is_type_conversion_operator (type, i, j))
                    {
                      type_print (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)),
                                  "", stream, -1);
@@ -1071,8 +1068,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show,
          "{unnamed struct}"/"{unnamed union}"/"{unnamed enum}"
          tag for unnamed struct/union/enum's, which we don't
          want to print. */
-      if (TYPE_TAG_NAME (type) != NULL &&
-         strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
+      if (TYPE_TAG_NAME (type) != NULL
+         && strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
        {
          fputs_filtered (TYPE_TAG_NAME (type), stream);
          if (show > 0)
This page took 0.025569 seconds and 4 git commands to generate.