PR modula2/109423 cc1gm2 ICE if an INCL or EXCL is performed on an unknown set
authorGaius Mulley <gaiusmod2@gmail.com>
Wed, 5 Apr 2023 22:07:46 +0000 (23:07 +0100)
committerGaius Mulley <gaiusmod2@gmail.com>
Wed, 5 Apr 2023 22:07:46 +0000 (23:07 +0100)
commit1bd13193fab77a19da323974aec876f0fc1817ee
tree72b815928ac9a14c2aee98f4c7def0b81fc18d7c
parent3bfd0420e4a17a82454ed3bdadc0f5d362d9b636
PR modula2/109423 cc1gm2 ICE if an INCL or EXCL is performed on an unknown set

This patch fixes an ICE if attempting to INCL or EXCL on an unknown
set.  The fix was to correct an error format string.  Also included in
the patch are patches to remove unused variables.  The patch also
marks a variable as written in BuildAdr.

gcc/m2/ChangeLog:

PR modula2/109423
* gm2-compiler/M2Base.def (Unbounded): Remove.
* gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
attribute.
* gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
error format string.
(BuildExceptProcedure): Correct error format string.
(BuildAdrFunction): Call PutWriteQuad when taking the
address of a variable.
* gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
parameters.
* gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
* gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
(PopAllocationExemption): Remove f.
* gm2-libs/FIO.mod (BufferedWrite): Remove result.
* gm2-libs/FormatStrings.mod (Copy): Remove endpos and
afterperc.
(HandlePercent): Remove result.
* gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
* gm2-libs/M2Dependent.mod (CreateModule): Remove p0
and p1.
(DumpModuleData): Remove mptr.
(ConstructModules): Remove nulp.
* gm2-libs/RTExceptions.mod (PopHandler): Remove i.
* gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
and afm.
* gm2-libs/SFIO.mod (ReadS): Remove c.
* gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
whole and fraction.

gcc/testsuite/ChangeLog:

* gm2/pim/fail/setunknown.mod: New test.
PR modula2/109423
* gm2/pim/fail/setunknown2.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
16 files changed:
gcc/m2/gm2-compiler/M2Base.def
gcc/m2/gm2-compiler/M2Error.def
gcc/m2/gm2-compiler/M2Quads.mod
gcc/m2/gm2-libs-ch/SysExceptions.c
gcc/m2/gm2-libs-ch/wrapc.c
gcc/m2/gm2-libs/DynamicStrings.mod
gcc/m2/gm2-libs/FIO.mod
gcc/m2/gm2-libs/FormatStrings.mod
gcc/m2/gm2-libs/Indexing.mod
gcc/m2/gm2-libs/M2Dependent.mod
gcc/m2/gm2-libs/RTExceptions.mod
gcc/m2/gm2-libs/RTint.mod
gcc/m2/gm2-libs/SFIO.mod
gcc/m2/gm2-libs/StringConvert.mod
gcc/testsuite/gm2/pim/fail/setunknown.mod [new file with mode: 0644]
gcc/testsuite/gm2/pim/fail/setunknown2.mod [new file with mode: 0644]