[Issue 14823] New: pure function returns uninitialized value
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Jul 24 08:11:57 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=14823
Issue ID: 14823
Summary: pure function returns uninitialized value
Product: D
Version: D2
Hardware: x86
OS: Mac OS X
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: jeff at thefirst.org
To reproduce, enter and run the following code:
import std.stdio;
pure int getUninitializedValue()
{
int[1] array = void; // array is uninitialized
return array[0];
}
void main(string[] args)
{
writeln(getUninitializedValue());
}
Expected result: Compiler error for a pure function with uninitialized memory.
Actual result: It prints 185734 (or another uninitialized value from the
stack).
Suggested solution: Don't allow accessing uninitialized memory inside a pure
function.
--
More information about the Digitalmars-d-bugs
mailing list