OSDN Git Service

* gcc.dg/cpp/include6.c: Change [] to ().
[pf3gnuchains/gcc-fork.git] / gcc / stor-layout.c
index e512db8..18c74cb 100644 (file)
@@ -1100,7 +1100,8 @@ place_field (record_layout_info rli, tree field)
              if (STRICT_ALIGNMENT)
                warning (OPT_Wattributes, "packed attribute causes "
                          "inefficient alignment for %q+D", field);
-             else
+             /* Don't warn if DECL_PACKED was set by the type.  */
+             else if (!TYPE_PACKED (rli->t))
                warning (OPT_Wattributes, "packed attribute is "
                         "unnecessary for %q+D", field);
            }
@@ -1345,11 +1346,12 @@ place_field (record_layout_info rli, tree field)
             until we see a bitfield (and come by here again) we just skip
             calculating it.  */
          if (DECL_SIZE (field) != NULL
-             && host_integerp (TYPE_SIZE (TREE_TYPE (field)), 0)
-             && host_integerp (DECL_SIZE (field), 0))
+             && host_integerp (TYPE_SIZE (TREE_TYPE (field)), 1)
+             && host_integerp (DECL_SIZE (field), 1))
            {
-             HOST_WIDE_INT bitsize = tree_low_cst (DECL_SIZE (field), 1);
-             HOST_WIDE_INT typesize
+             unsigned HOST_WIDE_INT bitsize
+               = tree_low_cst (DECL_SIZE (field), 1);
+             unsigned HOST_WIDE_INT typesize
                = tree_low_cst (TYPE_SIZE (TREE_TYPE (field)), 1);
 
              if (typesize < bitsize)
@@ -2098,7 +2100,7 @@ layout_type (tree type)
    change the result of vector_mode_supported_p and have_regs_of_mode
    on a per-function basis.  Thus the TYPE_MODE of a VECTOR_TYPE can
    change on a per-function basis.  */
-/* ??? Possibly a better solution is to run through all the types 
+/* ??? Possibly a better solution is to run through all the types
    referenced by a function and re-compute the TYPE_MODE once, rather
    than make the TYPE_MODE macro call a function.  */