mirror of git://gcc.gnu.org/git/gcc.git
i386.c (ix86_handle_struct_attribute): Use the proper predicate to discriminate types.
* config/i386/i386.c (ix86_handle_struct_attribute): Use the proper predicate to discriminate types. ada/ * gcc-interface/utils.c (finish_record_type): Force the traditional GCC layout for bitfields on the type if it is packed or has a representation clause and an alternate layout is available. From-SVN: r186958
This commit is contained in:
parent
e6c69da096
commit
bb358f1cd9
|
@ -1,3 +1,8 @@
|
||||||
|
2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
* config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
|
||||||
|
predicate to discriminate types.
|
||||||
|
|
||||||
2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||||||
|
|
||||||
* doc/invoke.texi (Wmissing-format-attribute): Document as an
|
* doc/invoke.texi (Wmissing-format-attribute): Document as an
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
* gcc-interface/utils.c (finish_record_type): Force the traditional GCC
|
||||||
|
layout for bitfields on the type if it is packed or has a representation
|
||||||
|
clause and an alternate layout is available.
|
||||||
|
|
||||||
2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
|
2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
* gcc-interface/gigi.h (mark_out_of_scope): Delete.
|
* gcc-interface/gigi.h (mark_out_of_scope): Delete.
|
||||||
|
|
|
@ -721,6 +721,19 @@ finish_record_type (tree record_type, tree field_list, int rep_level,
|
||||||
case where there is a rep clause but all fields have errors and
|
case where there is a rep clause but all fields have errors and
|
||||||
no longer have a position. */
|
no longer have a position. */
|
||||||
TYPE_SIZE (record_type) = 0;
|
TYPE_SIZE (record_type) = 0;
|
||||||
|
|
||||||
|
/* Ensure we use the traditional GCC layout for bitfields when we need
|
||||||
|
to pack the record type or have a representation clause. The other
|
||||||
|
possible layout (Microsoft C compiler), if available, would prevent
|
||||||
|
efficient packing in almost all cases. */
|
||||||
|
#ifdef TARGET_MS_BITFIELD_LAYOUT
|
||||||
|
if (TARGET_MS_BITFIELD_LAYOUT && TYPE_PACKED (record_type))
|
||||||
|
decl_attributes (&record_type,
|
||||||
|
tree_cons (get_identifier ("gcc_struct"),
|
||||||
|
NULL_TREE, NULL_TREE),
|
||||||
|
ATTR_FLAG_TYPE_IN_PLACE);
|
||||||
|
#endif
|
||||||
|
|
||||||
layout_type (record_type);
|
layout_type (record_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32465,8 +32465,7 @@ ix86_handle_struct_attribute (tree *node, tree name,
|
||||||
else
|
else
|
||||||
type = node;
|
type = node;
|
||||||
|
|
||||||
if (!(type && (TREE_CODE (*type) == RECORD_TYPE
|
if (!(type && RECORD_OR_UNION_TYPE_P (*type)))
|
||||||
|| TREE_CODE (*type) == UNION_TYPE)))
|
|
||||||
{
|
{
|
||||||
warning (OPT_Wattributes, "%qE attribute ignored",
|
warning (OPT_Wattributes, "%qE attribute ignored",
|
||||||
name);
|
name);
|
||||||
|
|
Loading…
Reference in New Issue