(build_c_cast): Don't warn about alignment when we have an opaque type.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 15 Jan 1996 12:36:59 +0000 (07:36 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 15 Jan 1996 12:36:59 +0000 (07:36 -0500)
From-SVN: r10982

gcc/c-typeck.c

index 50fbad0ffbd7383a24edf964f8c55fc0db025d9b..00e14661e414732c6ef8fee5d0a5a681732c5439 100644 (file)
@@ -3712,6 +3712,11 @@ build_c_cast (type, expr)
          && TREE_CODE (otype) == POINTER_TYPE
          && TREE_CODE (TREE_TYPE (otype)) != VOID_TYPE
          && TREE_CODE (TREE_TYPE (otype)) != FUNCTION_TYPE
+         /* Don't warn about opaque types, where the actual alignment
+            restriction is unknown.  */
+         && !((TREE_CODE (TREE_TYPE (otype)) == UNION_TYPE
+               || TREE_CODE (TREE_TYPE (otype)) == RECORD_TYPE)
+              && TYPE_MODE (TREE_TYPE (otype)) == VOIDmode)
          && TYPE_ALIGN (TREE_TYPE (type)) > TYPE_ALIGN (TREE_TYPE (otype)))
        warning ("cast increases required alignment of target type");