summaryrefslogtreecommitdiff
path: root/gcc/f/stc.c
diff options
context:
space:
mode:
authortoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-22 13:01:08 +0000
committertoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-22 13:01:08 +0000
commitc758d08fbe76d030a009ae4bc28d01f94cc3c14c (patch)
tree8a407bae36a52fb2123c2e1a020e6fee6d41df06 /gcc/f/stc.c
parentbb39af721f94c2cb70ffbe80d1e173f596525561 (diff)
downloadgcc-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.c12
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);