added type aliasing check and warning. -- noch

This commit is contained in:
norayr 2016-12-05 22:06:10 +04:00
parent de049dc80c
commit 711283cba5
2 changed files with 7 additions and 0 deletions

View file

@ -922,6 +922,12 @@ MODULE OPP; (* NW, RC 6.3.89 / 10.2.94 *) (* object model 4.12.93 *)
OPT.Insert(OPS.name, obj); obj^.mode := OPT.Typ; obj^.typ := OPT.undftyp;
CheckMark(obj^.vis);
IF sym = OPS.eql THEN
IF (obj^.name = "INTEGER") OR (obj^.name = "SHORTINT") OR
(obj^.name = "LONGINT") OR (obj^.name = "HUGEINT") OR
(obj^.name = "LONGREAL") OR (obj^.name = "REAL") OR
(obj^.name = "CHAR") THEN
OPM.Mark(-310, OPM.curpos); (* notice about aliasing of predefined type *)
END;
OPS.Get(sym); TypeDecl(obj^.typ, obj^.typ)
ELSIF (sym = OPS.becomes) OR (sym = OPS.colon) THEN
err(OPS.eql); OPS.Get(sym); TypeDecl(obj^.typ, obj^.typ)

View file

@ -177,6 +177,7 @@ Compiler Warnings
307 no ELSE symbol after CASE statement sequence may lead to trap
308 SYSTEM.VAL result includes memory past end of source variable; use SYSTEM.GET
309 you should name this parameter type, or else no actual parameter will match
310 aliasing of predefined type
Run-time Error Messages
-1 assertion failed, cf. SYSTEM_assert