January 18, 2015
https://issues.dlang.org/show_bug.cgi?id=14005

          Issue ID: 14005
           Summary: core.exception.InvalidMemoryOperationError@(0) during
                    byLine
           Product: D
           Version: future
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: DMD
          Assignee: nobody@puremagic.com
          Reporter: acehreli@yahoo.com

1) Start with git head dmd: DMD64 D Compiler v2.067-devel-e9e7c53

2) Create file "deneme.txt" and put the following two lines in it (The problem
is data-dependent; I could not reduce it further):

D'deki tanıma göre, dönüş değerini üretirken veya olası yan etkilerini oluştururken değerlere erişmeyen bir işlev saftır. da değişebilen evrensel durum olarak kabul edildiklerinden saf işlevler giriş ve çıkış işlemleri de içeremezler.

Bazı saf işlevler parametrelerinde değişiklik de yapmazlar. Dolayısıyla, bu gibi işlevlerin programdaki tek etkileri dönüş değerleridir. Bu açıdan bakıldığında, parametrelerinde değişiklik yapmayan saf işlevlerin belirli parametre değerlerine karşılık hep aynı değeri döndürecekleri belli demektir. Dolayısıyla, böyle bir işlevin dönüş değeri eniyileştirme amacıyla sonradan kullanılmak üzere saklanabilir. (Bu gözlem hem derleyici hem de programcı için yararlıdır.)

3) Compile and run the following program:

import std.stdio;

void main()
{
    foreach (line; File("deneme.txt", "r").byLine) {
        writeln(line);
    }
}

(writeln line is optional.)

The compiled program fails with

  core.exception.InvalidMemoryOperationError@(0)

after printing the two lines.

--