diff options
author | toon <toon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-01 15:45:05 +0000 |
---|---|---|
committer | toon <toon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-01 15:45:05 +0000 |
commit | 157ed81477280b70dd98c8ffdec26b827d15bdfa (patch) | |
tree | 611b6885364e8fdb9b9dfcb40962d044ce34fe5a /gcc/f | |
parent | 3b8f8a40392b2c561d1f22a17cbabf9fa43465b9 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/f/ste.c | 27 |
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. */ |