[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