aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/m2/gm2-compiler/M2Quads.mod15
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 263fb7c..a58de93 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -6327,7 +6327,10 @@ BEGIN
ELSIF IsVar(Sym)
THEN
Type := GetDType(Sym) ;
- IF IsUnbounded(Type)
+ IF Type = NulSym
+ THEN
+ MetaErrorT1 (tok, '{%1ad} has no type and cannot be passed to a VAR formal parameter', Sym)
+ ELSIF IsUnbounded(Type)
THEN
IF Type = GetSType (UnboundedSym)
THEN
@@ -6382,7 +6385,10 @@ BEGIN
ELSIF IsVar (Sym)
THEN
Type := GetDType (Sym) ;
- IF IsUnbounded (Type)
+ IF Type = NulSym
+ THEN
+ MetaErrorT1 (tok, '{%1ad} has no type and cannot be passed to a non VAR formal parameter', Sym)
+ ELSIF IsUnbounded (Type)
THEN
UnboundedNonVarLinkToArray (tok, Sym, ArraySym, UnboundedSym, ParamType, dim)
ELSIF IsArray (Type) OR IsGenericSystemType (ParamType)
@@ -11386,7 +11392,10 @@ VAR
BEGIN
PopTFrwtok (Sym1, Type1, rw, exprtok) ;
Type1 := SkipType (Type1) ;
- IF IsUnknown (Sym1)
+ IF Type1 = NulSym
+ THEN
+ MetaErrorT1 (ptrtok, '{%1ad} has no type and therefore cannot be dereferenced by ^', Sym1)
+ ELSIF IsUnknown (Sym1)
THEN
MetaError1 ('{%1EMad} is undefined and therefore {%1ad}^ cannot be resolved', Sym1)
ELSIF IsPointer (Type1)