Dub(DMD 2.099.1) builds and runs the following code without a warning.
import std.stdio;
import core.stdc.stdlib;
@live
void test()
{
int* p = cast(int*) malloc(32);
p = cast(int*) malloc(32);
free(p);
}
void main()
{
test();
writeln("???");
}
Isn't it supposed to trigger an error according to the doc (https://dlang.org/spec/ob.html)?
@live void test()
{
auto p = allocate();
p = allocate(); // error: p was not disposed of
release(p);
}