]> gcc.gnu.org Git - gcc.git/commitdiff
c-typeck.c (c_expand_start_case): Return immediately if exp is an ERROR_MARK.
authorZack Weinberg <zack@bitmover.com>
Fri, 27 Aug 1999 07:37:16 +0000 (07:37 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Fri, 27 Aug 1999 07:37:16 +0000 (07:37 +0000)
1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>

* c-typeck.c (c_expand_start_case): Return immediately if exp
is an ERROR_MARK.
* fold-const.c (operand_equal_p): Return immediately if arg1
or arg0 are ERROR_MARKs.
* stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
fields of type ERROR_MARK when calculating if the record can
go in a register.

From-SVN: r28923

gcc/ChangeLog
gcc/c-typeck.c
gcc/fold-const.c
gcc/stor-layout.c

index 6191b48cee7732278d3016689cdae0c6d55944a9..42838d8d50957912d91bd500d239213b7c279097 100644 (file)
@@ -1,3 +1,13 @@
+1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
+
+       * c-typeck.c (c_expand_start_case): Return immediately if exp
+       is an ERROR_MARK.
+       * fold-const.c (operand_equal_p): Return immediately if arg1
+       or arg0 are ERROR_MARKs.
+       * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
+       fields of type ERROR_MARK when calculating if the record can
+       go in a register.
+
 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
        with much help from Jeffrey A Law and Richard Henderson
 
index 73d98e96419ba82a30879f49659d1495865132d0..3bab9ff16b88cec1076f02e473fc1b956230c3d9 100644 (file)
@@ -6706,8 +6706,14 @@ tree
 c_expand_start_case (exp)
      tree exp;
 {
-  register enum tree_code code = TREE_CODE (TREE_TYPE (exp));
-  tree type = TREE_TYPE (exp);
+  register enum tree_code code;
+  tree type;
+
+  if (TREE_CODE (exp) == ERROR_MARK)
+    return exp;
+
+  code = TREE_CODE (TREE_TYPE (exp));
+  type = TREE_TYPE (exp);
 
   if (code != INTEGER_TYPE && code != ENUMERAL_TYPE && code != ERROR_MARK)
     {
index 327ebd36a79ffd24b194e61f7f57341a0fc671bb..ed353f896271f451bf11124176c77c1cd03edbd5 100644 (file)
@@ -2091,6 +2091,8 @@ operand_equal_p (arg0, arg1, only_const)
   if (TREE_CODE (arg0) != TREE_CODE (arg1)
       /* This is needed for conversions and for COMPONENT_REF.
         Might as well play it safe and always test this.  */
+      || TREE_CODE (TREE_TYPE (arg0)) == ERROR_MARK
+      || TREE_CODE (TREE_TYPE (arg1)) == ERROR_MARK
       || TYPE_MODE (TREE_TYPE (arg0)) != TYPE_MODE (TREE_TYPE (arg1)))
     return 0;
 
index 408846ae9896c2a1c4f9d328b53148f69a0d9e46..8707c8fac8698260800b5bcbb149f5acd5b44981 100644 (file)
@@ -936,7 +936,8 @@ layout_type (type)
            {
              int bitpos;
 
-             if (TREE_CODE (field) != FIELD_DECL)
+             if (TREE_CODE (field) != FIELD_DECL
+                 || TREE_CODE (TREE_TYPE (field)) == ERROR_MARK)
                continue;
 
              if (TYPE_MODE (TREE_TYPE (field)) == BLKmode
This page took 0.086328 seconds and 5 git commands to generate.