diff options
author | toon <toon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-22 13:01:08 +0000 |
---|---|---|
committer | toon <toon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-22 13:01:08 +0000 |
commit | c758d08fbe76d030a009ae4bc28d01f94cc3c14c (patch) | |
tree | 8a407bae36a52fb2123c2e1a020e6fee6d41df06 /gcc/f/stc.c | |
parent | bb39af721f94c2cb70ffbe80d1e173f596525561 (diff) | |
download | gcc-c758d08fbe76d030a009ae4bc28d01f94cc3c14c.tar.gz |
2003-03-22 Bud Davis <bdavis9659@comcast.net>
* com.c (ffecom_constantunion_with_type): New function.
* com.h (ffecom_constantunion_with_type): Declare.
* stc.c (ffestc_R810): Check for kind type.
* ste.c (ffeste_R810): Use ffecom_constantunion_with_type
to discern SELECT CASE variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64709 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/f/stc.c')
-rw-r--r-- | gcc/f/stc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/f/stc.c b/gcc/f/stc.c index a28e3a949e6..b9602c20a46 100644 --- a/gcc/f/stc.c +++ b/gcc/f/stc.c @@ -9197,11 +9197,17 @@ ffestc_R810 (ffesttCaseList cases, ffelexToken name) } if (((caseobj->expr1 != NULL) && ((ffeinfo_basictype (ffebld_info (caseobj->expr1)) - != s->type))) + != s->type) + || ((ffeinfo_kindtype (ffebld_info (caseobj->expr1)) + != s->kindtype) + && (ffeinfo_kindtype (ffebld_info (caseobj->expr1)) != FFEINFO_kindtypeINTEGER1 )) || ((caseobj->range) && (caseobj->expr2 != NULL) && ((ffeinfo_basictype (ffebld_info (caseobj->expr2)) - != s->type)))) + != s->type) + || ((ffeinfo_kindtype (ffebld_info (caseobj->expr2)) + != s->kindtype) + && (ffeinfo_kindtype (ffebld_info (caseobj->expr2)) != FFEINFO_kindtypeINTEGER1))))))) { ffebad_start (FFEBAD_CASE_TYPE_DISAGREE); ffebad_here (0, ffelex_token_where_line (caseobj->t), @@ -9212,6 +9218,8 @@ ffestc_R810 (ffesttCaseList cases, ffelexToken name) continue; } + + if ((s->type == FFEINFO_basictypeLOGICAL) && (caseobj->range)) { ffebad_start (FFEBAD_CASE_LOGICAL_RANGE); |