16354, “mppf”, “Problem with definedConst analysis”, “2020-09-08T14:40:19Z”
PR #16218 added definedConst analysis for domains. This issue is noting a problematic case.
See https://github.com/chapel-lang/chapel/pull/16180#discussion_r484950549 for another potential test case.
config const option = true;
var A:[1..10] int;
proc makeDomain() {
const D = {1..2};
writeln("in makeDomain, D.definedConst=", D._value.definedConst);
return D;
}
proc test1() {
writeln("test1");
var D = makeDomain();
writeln("in test, D.definedConst=", D._value.definedConst);
writeln("D. is ", D);
D = {2..2};
writeln("D is now ", D);
}
test1();
This program prints out:
test1
in makeDomain, D.definedConst=true
in test, D.definedConst=true
D. is {1..2}
D is now {2..2}
Which doesn’t seem right. Maybe we need to set definedConst=false
for domains that are move’d into var
variables?