https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110125
Bug ID: 110125
Summary: Variables are reported as uninitialized when only set
inside WITH statement
Product: gcc
Version: 13.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: modula2
Assignee: gaius at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
In the following fragment:
MODULE foo;
TYPE
Date = RECORD
day: INTEGER;
END;
PROCEDURE test(): Date;
VAR d: Date;
BEGIN
WITH d DO
day := 0;
END;
RETURN d;
END test;
END foo.
When compiling with
$ gm2 -c -O2 -Wall foo.mod
i get reports about d being uninitialized:
foo.mod:9:5: warning: In procedure ‘test’: variable ‘d’ is being used but it is
never initialized in procedure ‘test’
9 | VAR d: Date;
| ^
This does not happen when *not* using WITH, eg
MODULE foo;
TYPE
Date = RECORD
day: INTEGER;
END;
PROCEDURE test(): Date;
VAR d: Date;
BEGIN
d.day := 0;
RETURN d;
END test;
END foo.