gcc-patches@gcc.gnu.org
[Top] [All Lists]

TYPE_VECTOR_OPAQUE broken

Subject: TYPE_VECTOR_OPAQUE broken
From: DJ Delorie
Date: Tue, 28 Jul 2009 16:06:06 -0400
This patch:

r146153 | bonzini | 2009-04-16 05:11:39 -0400 (Thu, 16 Apr 2009) | 25 lines

2009-04-16  Paolo Bonzini  <bonzini@xxxxxxx>

        * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
        Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
        * c-typeck.c (really_start_incremental_init): Likewise.
        * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
        (TARGET_INITIALIZER): Remove it.
        * target.h (struct target): Remove vector_opaque_p.
        * tree.c (build_opaque_vector_type): New.
        * tree.h (TYPE_VECTOR_OPAQUE): New.
        (build_opaque_vector_type): Declare.
        * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
        * config/rs6000/rs6000.c (build_opaque_vector_type,
        rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
        (rs6000_init_builtins): Use build_opaque_vector_type for
        opaque_V4SI_type_node.


Forces all opaque vectors to be deprecated:

+/* Nonzero in an IDENTIFIER_NODE if the name is a local alias, whose
+   uses are to be substituted for uses of the TREE_CHAINed identifier.  */
+#define TYPE_VECTOR_OPAQUE(NODE) \
+  (VECTOR_TYPE_CHECK (NODE)->base.deprecated_flag)
+

Why?  This is causing problems with the mep-elf port, which uses
opaque vectors extensively.

<Prev in Thread] Current Thread [Next in Thread>