public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: Gaius Mulley <gaius@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/modula-2] Bugfix mc memset zero all nodes created by newNode. Date: Mon, 5 Sep 2022 22:40:42 +0000 (GMT) [thread overview] Message-ID: <20220905224042.7DB3B385AE58@sourceware.org> (raw) https://gcc.gnu.org/g:7b1a727b06c78e58dc94727d3b08939ab7d9b60c commit 7b1a727b06c78e58dc94727d3b08939ab7d9b60c Author: Gaius Mulley <gaiusmod2@gmail.com> Date: Mon Sep 5 23:39:42 2022 +0100 Bugfix mc memset zero all nodes created by newNode. newNode now memset zero the allocated memory. Every node created uses newNode. Bug fix identified by Martin Liška. gcc/m2/ChangeLog: * m2/mc/decl.mod (newNode): Call memset of allocated memory. (doMakeBinary) call newNode. (makeBase) call newNode. * m2/Make-maintainer.in: Many bugfixes to allow mc-maintainer to succeed. * m2/mc-boot/Gdecl.c: Rebuilt. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com> Diff: --- gcc/m2/Make-maintainer.in | 61 +++++++++++++++++++++++++---------------------- gcc/m2/mc-boot/Gdecl.c | 16 ++++--------- gcc/m2/mc/decl.mod | 12 ++++------ 3 files changed, 42 insertions(+), 47 deletions(-) diff --git a/gcc/m2/Make-maintainer.in b/gcc/m2/Make-maintainer.in index 572595a040f..c0491121fae 100644 --- a/gcc/m2/Make-maintainer.in +++ b/gcc/m2/Make-maintainer.in @@ -378,7 +378,7 @@ mc-push: force cp -p m2/mc-boot-gen/*.c $(srcdir)/m2/mc-boot/ cp -p m2/mc-boot-gen/*.h $(srcdir)/m2/mc-boot/ -mc-clean: force +mc-clean: force m2/mc-obj $(RM) m2/mc-boot-gen/*.[ch] m2/boot-bin/* m2/mc-boot/* m2/mc-boot-ch/* mc-maintainer: mc-clean mc-autogen mc-push mc-clean mc-bootstrap @@ -398,6 +398,9 @@ mc-help: force @echo "mc builds mc from Modula-2 sources, quickly" @echo "m2/pge build the parser generator (needed by mc-maintainer)" +m2/mc-obj: + mkdir $@ + mc-verify: mc-clean mc-bootstrap mc mv mc m2/boot-bin/mc.m2 @echo "verifying the two generations of mc" @@ -430,13 +433,13 @@ mc-stage2: force mc-devel: m2/boot-bin/mc-devel$(exeext) -m2/boot-bin/mc-devel$(exeext): $(objdir)/m2/gm2-auto/mcp1.mod \ - $(objdir)/m2/gm2-auto/mcp2.mod \ - $(objdir)/m2/gm2-auto/mcp3.mod \ - $(objdir)/m2/gm2-auto/mcp4.mod \ - $(objdir)/m2/gm2-auto/mcp5.mod \ - mcflex.c \ - m2/mc-boot-ch/Gabort.o +m2/boot-bin/mc-devel$(exeext): m2/mc-obj/mcp1.mod \ + m2/mc-obj/mcp2.mod \ + m2/mc-obj/mcp3.mod \ + m2/mc-obj/mcp4.mod \ + m2/mc-obj/mcp5.mod \ + mcflex.c \ + m2/mc-boot-ch/Gabort.o $(RM) -rf mc-obj mkdir mc-obj $(CC) -I$(srcdir)/m2/mc -c -g mcflex.c -o mc-obj/mcflex.o @@ -448,11 +451,11 @@ m2/boot-bin/mc-devel$(exeext): $(objdir)/m2/gm2-auto/mcp1.mod \ $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/mcMetaError.mod -o mc-obj/mcMetaError.o $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/mcOptions.mod -o mc-obj/mcOptions.o $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/mcComp.mod -o mc-obj/mcComp.o - $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/gm2-auto/mcp1.mod -o mc-obj/mcp1.o - $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/gm2-auto/mcp2.mod -o mc-obj/mcp2.o - $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/gm2-auto/mcp3.mod -o mc-obj/mcp3.o - $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/gm2-auto/mcp4.mod -o mc-obj/mcp4.o - $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/gm2-auto/mcp5.mod -o mc-obj/mcp5.o + $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/mc-obj/mcp1.mod -o mc-obj/mcp1.o + $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/mc-obj/mcp2.mod -o mc-obj/mcp2.o + $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/mc-obj/mcp3.mod -o mc-obj/mcp3.o + $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/mc-obj/mcp4.mod -o mc-obj/mcp4.o + $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) m2/mc-obj/mcp5.mod -o mc-obj/mcp5.o $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/wlists.mod -o mc-obj/wlists.o $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/alists.mod -o mc-obj/alists.o $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) $(srcdir)/m2/mc/symbolKey.mod -o mc-obj/symbolKey.o @@ -474,19 +477,19 @@ m2/boot-bin/mc-devel$(exeext): $(objdir)/m2/gm2-auto/mcp1.mod \ m2/gm2-libs-boot/RTcodummy.o \ m2/gm2-libs-boot/dtoa.o m2/gm2-libs-boot/ldtoa.o mc-obj/*o m2/mc-boot-ch/Gabort.o -m2/boot-bin/mc-opt$(exeext): $(objdir)/m2/gm2-auto/mcp1.mod \ - $(objdir)/m2/gm2-auto/mcp2.mod \ - $(objdir)/m2/gm2-auto/mcp3.mod \ - $(objdir)/m2/gm2-auto/mcp4.mod \ - $(objdir)/m2/gm2-auto/mcp5.mod \ - mcflex.c +m2/boot-bin/mc-opt$(exeext): m2/mc-obj/mcp1.mod \ + m2/mc-obj/mcp2.mod \ + m2/mc-obj/mcp3.mod \ + m2/mc-obj/mcp4.mod \ + m2/mc-obj/mcp5.mod \ + mcflex.c g++ -I$(srcdir)/m2/mc -c -g mcflex.c - $(BOOTGM2) -fsources -fm2-whole-program -g -I$(srcdir)/m2/mc:$(objdir)/m2/gm2-auto:$(srcdir)/m2/gm2-libs:$(srcdir)/m2/mc $(srcdir)/m2/mc/top.mod + $(BOOTGM2) -fsources -fm2-whole-program -g -I$(srcdir)/m2/mc:$(objdir)/m2/mc-obj:$(srcdir)/m2/gm2-libs:$(srcdir)/m2/mc $(srcdir)/m2/mc/top.mod m2/mc/decl.o: $(srcdir)/m2/mc/decl.mod $(BOOTGM2) $(MCOPTIONS) -I$(GM2PATH) -o $@ $(srcdir)/m2/mc/decl.mod -$(objdir)/m2/gm2-auto/%.mod: $(srcdir)/m2/mc/%.bnf +m2/mc-obj/%.mod: $(srcdir)/m2/mc/%.bnf $(PGE) $(PGE) -l $< -o $@ gm2-bootstrap: mc-devel @@ -541,7 +544,7 @@ m2/mc-boot-gen/$(SRC_PREFIX)%.c: $(srcdir)/m2/gm2-libs/%.mod m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs-iso/%.def ./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc:$(srcdir)/m2/gm2-libs:$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $< -m2/mc-boot-gen/$(SRC_PREFIX)%.c: m2/gm2-auto/%.mod +m2/mc-boot-gen/$(SRC_PREFIX)%.c: m2/mc-obj/%.mod ./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc:$(srcdir)/m2/gm2-libs:$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $< # mc-bootstrap compiles mc using the C version previously generated by mc-autogen. @@ -708,22 +711,22 @@ m2/gm2-compiler-paranoid/%.o: $(srcdir)/m2/gm2-compiler/%.mod m2/gm2-compiler-paranoid/%.o: m2/gm2-compiler-paranoid/%.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/P0SyntaxCheck.o: $(objdir)/m2/gm2-compiler-paranoid/P0SyntaxCheck.mod +m2/gm2-compiler-paranoid/P0SyntaxCheck.o: m2/gm2-compiler-paranoid/P0SyntaxCheck.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/P1Build.o: $(objdir)/m2/gm2-compiler-paranoid/P1Build.mod +m2/gm2-compiler-paranoid/P1Build.o: m2/gm2-compiler-paranoid/P1Build.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/P2Build.o: $(objdir)/m2/gm2-compiler-paranoid/P2Build.mod +m2/gm2-compiler-paranoid/P2Build.o: m2/gm2-compiler-paranoid/P2Build.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/P3Build.o: $(objdir)/m2/gm2-compiler-paranoid/P3Build.mod +m2/gm2-compiler-paranoid/P3Build.o: m2/gm2-compiler-paranoid/P3Build.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/PHBuild.o: $(objdir)/m2/gm2-compiler-paranoid/PHBuild.mod +m2/gm2-compiler-paranoid/PHBuild.o: m2/gm2-compiler-paranoid/PHBuild.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ -m2/gm2-compiler-paranoid/PCBuild.o: $(objdir)/m2/gm2-compiler-paranoid/PCBuild.mod +m2/gm2-compiler-paranoid/PCBuild.o: m2/gm2-compiler-paranoid/PCBuild.mod $(GM2_2) $(GM2_O_S3) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc -I$(srcdir)/m2/gm2-libiberty $< -o $@ m2/gm2-libs-paranoid/host.o: $(srcdir)/m2/gm2-libs-ch/host.c m2/gm2-libs/gm2-libs-host.h @@ -803,5 +806,5 @@ m2/gm2-compiler-paranoid/M2Version.mod: m2/gm2-compiler-paranoid/M2Version.o: m2/gm2-compiler-paranoid/M2Version.mod $(GM2_2) $(GM2_FLAGS) -c -I$(srcdir)/m2/gm2-compiler -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-gcc $< -o $@ -$(objdir)/m2/gm2-compiler-paranoid/%.mod: $(srcdir)/m2/gm2-compiler/%.bnf $(PGE) +m2/gm2-compiler-paranoid/%.mod: $(srcdir)/m2/gm2-compiler/%.bnf $(PGE) $(PGE) -k -l $< -o $@ diff --git a/gcc/m2/mc-boot/Gdecl.c b/gcc/m2/mc-boot/Gdecl.c index 1bf6b01774c..e18842adb0b 100644 --- a/gcc/m2/mc-boot/Gdecl.c +++ b/gcc/m2/mc-boot/Gdecl.c @@ -6617,6 +6617,7 @@ static decl_node newNode (nodeT k) decl_node d; Storage_ALLOCATE ((void **) &d, sizeof (_T5)); + d = static_cast<decl_node> (libc_memset (reinterpret_cast<void *> (d), 0, static_cast<size_t> (sizeof (decl_node)))); if (d == NULL) { M2RTS_HALT (-1); @@ -8309,8 +8310,7 @@ static decl_node makeUnary (nodeT k, decl_node e, decl_node res) } else { - Storage_ALLOCATE ((void **) &n, sizeof (_T5)); - n->kind = k; + n = newNode (k); switch (n->kind) { case min: @@ -8541,8 +8541,7 @@ static decl_node doMakeBinary (nodeT k, decl_node l, decl_node r, decl_node res) { decl_node n; - Storage_ALLOCATE ((void **) &n, sizeof (_T5)); - n->kind = k; + n = newNode (k); switch (n->kind) { case cmplx: @@ -8646,8 +8645,7 @@ static decl_node makeBase (nodeT k) { decl_node n; - Storage_ALLOCATE ((void **) &n, sizeof (_T5)); - n->kind = k; + n = newNode (k); switch (k) { case new_: @@ -18232,6 +18230,7 @@ static void visitIntrinsicFunction (alists_alist v, decl_node n, nodeProcedure p visitNode (v, n->binaryF.resultType, p); break; + case length: case adr: case size: case tsize: @@ -18250,11 +18249,6 @@ static void visitIntrinsicFunction (alists_alist v, decl_node n, nodeProcedure p visitNode (v, n->unaryF.resultType, p); break; - case length: - visitNode (v, n->unaryF.arg, p); - visitNode (v, n->unaryF.resultType, p); - break; - case throw_: visitNode (v, n->intrinsicF.args, p); visitNode (v, n->intrinsicF.type, p); diff --git a/gcc/m2/mc/decl.mod b/gcc/m2/mc/decl.mod index 0be1d2d3476..4e54155b362 100644 --- a/gcc/m2/mc/decl.mod +++ b/gcc/m2/mc/decl.mod @@ -32,7 +32,7 @@ FROM DynamicStrings IMPORT String, InitString, EqualArray, InitStringCharStar, K FROM StringConvert IMPORT CardinalToString, ostoc ; FROM mcOptions IMPORT getOutputFile, getDebugTopological, getHPrefix, getIgnoreFQ, getExtendedOpaque, writeGPLheader, getGccConfigSystem ; FROM FormatStrings IMPORT Sprintf0, Sprintf1, Sprintf2, Sprintf3 ; -FROM libc IMPORT printf ; +FROM libc IMPORT printf, memset ; FROM mcMetaError IMPORT metaError1, metaError2, metaError3, metaErrors1, metaErrors2 ; FROM mcError IMPORT errorAbort0, flushErrors ; @@ -760,6 +760,7 @@ VAR d: node ; BEGIN NEW (d) ; + d := memset (d, 0, SIZE (node)) ; IF d=NIL THEN HALT @@ -4316,9 +4317,8 @@ BEGIN THEN RETURN e ELSE - NEW (n) ; + n := newNode (k) ; WITH n^ DO - kind := k ; CASE kind OF min, @@ -4516,9 +4516,8 @@ PROCEDURE doMakeBinary (k: nodeT; l, r: node; res: node) : node ; VAR n: node ; BEGIN - NEW (n) ; + n := newNode (k) ; WITH n^ DO - kind := k; CASE kind OF cmplx, @@ -4721,9 +4720,8 @@ PROCEDURE makeBase (k: nodeT) : node ; VAR n: node ; BEGIN - NEW (n) ; + n := newNode (k) ; WITH n^ DO - kind := k ; CASE k OF new,
reply other threads:[~2022-09-05 22:40 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220905224042.7DB3B385AE58@sourceware.org \ --to=gaius@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).