aboutsummaryrefslogtreecommitdiff
path: root/gcc/m2
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/m2')
-rw-r--r--gcc/m2/gm2-compiler/M2Check.mod9
-rw-r--r--gcc/m2/gm2-compiler/M2Quads.mod3
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.def8
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.mod29
4 files changed, 17 insertions, 32 deletions
diff --git a/gcc/m2/gm2-compiler/M2Check.mod b/gcc/m2/gm2-compiler/M2Check.mod
index a445193..1750fe0 100644
--- a/gcc/m2/gm2-compiler/M2Check.mod
+++ b/gcc/m2/gm2-compiler/M2Check.mod
@@ -47,7 +47,8 @@ FROM SymbolTable IMPORT NulSym, IsRecord, IsSet, GetDType, GetSType, IsType,
IsReallyPointer, IsPointer, IsParameter, ModeOfAddr,
GetMode, GetType, IsUnbounded, IsComposite, IsConstructor,
IsParameter, IsConstString, IsConstLitInternal, IsConstLit,
- GetStringLength, GetProcedureProcType ;
+ GetStringLength, GetProcedureProcType, IsHiddenType,
+ IsHiddenReallyPointer ;
FROM M2GCCDeclare IMPORT GetTypeMin, GetTypeMax ;
FROM M2System IMPORT Address ;
@@ -264,9 +265,6 @@ END checkSubrange ;
*)
PROCEDURE checkUnbounded (result: status; tinfo: tInfo; unbounded, right: CARDINAL) : status ;
-VAR
- lLow, rLow,
- lHigh, rHigh: CARDINAL ;
BEGIN
(* Firstly check to see if we have resolved this as false. *)
IF isFalse (result)
@@ -683,7 +681,8 @@ BEGIN
THEN
RETURN result
ELSIF IsSet (typeRight) OR IsEnumeration (typeRight) OR
- IsProcedure (typeRight) OR IsRecord (typeRight)
+ IsProcedure (typeRight) OR IsRecord (typeRight) OR
+ IsReallyPointer (typeRight)
THEN
RETURN false
ELSIF IsArray (typeRight)
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 68b9120..8a9a230 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -73,7 +73,7 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
GetModuleQuads, GetProcedureQuads,
GetModuleCtors,
MakeProcedure,
- CopyConstString, PutConstStringKnown,
+ PutConstStringKnown,
PutModuleStartQuad, PutModuleEndQuad,
PutModuleFinallyStartQuad, PutModuleFinallyEndQuad,
PutProcedureStartQuad, PutProcedureEndQuad,
@@ -3454,7 +3454,6 @@ BEGIN
THEN
GenQuadOtok (tokno, BecomesOp, Des, NulSym, Exp, TRUE,
destok, UnknownTokenNo, exptok) ;
- CopyConstString (tokno, Des, Exp)
ELSE
IF GetMode(Des)=RightValue
THEN
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index d7f0f8d..06f8a22 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -3037,6 +3037,14 @@ PROCEDURE IsHiddenTypeDeclared (Sym: CARDINAL) : BOOLEAN ;
(*
+ IsHiddenReallyPointer - returns TRUE is sym is a pointer, address or a
+ type declared as a pointer or address.
+*)
+
+PROCEDURE IsHiddenReallyPointer (Sym: CARDINAL) : BOOLEAN ;
+
+
+(*
DisplayTrees - displays the SymbolTrees for Module symbol, ModSym.
*)
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index 7543bb5..f5890ec 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -8014,37 +8014,16 @@ END CheckForHiddenType ;
PROCEDURE IsReallyPointer (Sym: CARDINAL) : BOOLEAN ;
BEGIN
- IF IsVar(Sym)
+ IF IsVar (Sym)
THEN
- Sym := GetType(Sym)
+ Sym := GetType (Sym)
END ;
- Sym := SkipType(Sym) ;
- RETURN( IsPointer(Sym) OR (Sym=Address) )
+ Sym := SkipType (Sym) ;
+ RETURN IsPointer (Sym) OR (Sym = Address) OR IsHiddenReallyPointer (Sym)
END IsReallyPointer ;
(*
- SkipHiddenType - if sym is a TYPE foo = bar
- then call SkipType(bar)
- else return sym
-
- it does skip over hidden type.
-*)
-
-(*
-PROCEDURE SkipHiddenType (Sym: CARDINAL) : CARDINAL ;
-BEGIN
- IF (Sym#NulSym) AND IsType(Sym) AND (GetType(Sym)#NulSym)
- THEN
- RETURN( SkipType(GetType(Sym)) )
- ELSE
- RETURN( Sym )
- END
-END SkipHiddenType ;
-*)
-
-
-(*
IsHiddenReallyPointer - returns TRUE is sym is a pointer, address or a
type declared as a pointer or address.
*)