summaryrefslogtreecommitdiff
path: root/gcc/f
diff options
context:
space:
mode:
authortoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-01 15:45:05 +0000
committertoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-01 15:45:05 +0000
commit157ed81477280b70dd98c8ffdec26b827d15bdfa (patch)
tree611b6885364e8fdb9b9dfcb40962d044ce34fe5a /gcc/f
parent3b8f8a40392b2c561d1f22a17cbabf9fa43465b9 (diff)
downloadgcc-157ed81477280b70dd98c8ffdec26b827d15bdfa.tar.gz
2003-06-01 Bud Davis <bdavis9659@comcast.net>
* ste.c (ffeste_R838): Handle ERROR_MARK. (ffeste_R839): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67295 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/f')
-rw-r--r--gcc/f/ChangeLog5
-rw-r--r--gcc/f/ste.c27
2 files changed, 22 insertions, 10 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 624b607a2cd..3b0f188998d 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-01 Bud Davis <bdavis9659@comcast.net>
+
+ * ste.c (ffeste_R838): Handle ERROR_MARK.
+ (ffeste_R839): Ditto.
+
2003-06-01 Andreas Jaeger <aj@suse.de>
* lex.c (ffelex_file_fixed): Remove usage of
diff --git a/gcc/f/ste.c b/gcc/f/ste.c
index f27c93ec296..b0d464af81f 100644
--- a/gcc/f/ste.c
+++ b/gcc/f/ste.c
@@ -2950,16 +2950,19 @@ ffeste_R838 (ffelab label, ffebld target)
TREE_CONSTANT (label_tree) = 1;
target_tree = ffecom_expr_assign_w (target);
- if (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (target_tree)))
- < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (label_tree))))
- error ("ASSIGN to variable that is too small");
+ if (TREE_CODE (target_tree) != ERROR_MARK)
+ {
+ if (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (target_tree)))
+ < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (label_tree))))
+ error ("ASSIGN to variable that is too small");
- label_tree = convert (TREE_TYPE (target_tree), label_tree);
+ label_tree = convert (TREE_TYPE (target_tree), label_tree);
- expr_tree = ffecom_modify (void_type_node,
+ expr_tree = ffecom_modify (void_type_node,
target_tree,
label_tree);
- expand_expr_stmt (expr_tree);
+ expand_expr_stmt (expr_tree);
+ }
}
}
@@ -2978,11 +2981,15 @@ ffeste_R839 (ffebld target)
seen here should never require use of temporaries. */
t = ffecom_expr_assign (target);
- if (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (t)))
- < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (null_pointer_node))))
- error ("ASSIGNed GOTO target variable is too small");
- expand_computed_goto (convert (TREE_TYPE (null_pointer_node), t));
+ if (TREE_CODE (t) != ERROR_MARK)
+ {
+ if (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (t)))
+ < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (null_pointer_node))))
+ error ("ASSIGNed GOTO target variable is too small");
+
+ expand_computed_goto (convert (TREE_TYPE (null_pointer_node), t));
+ }
}
/* Arithmetic IF statement. */