www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18071] New: [REG2.078] byKey, byValue and byKeyValue are now


          Issue ID: 18071
           Summary: [REG2.078] byKey, byValue and byKeyValue are now a
                    hole for unsafe code
           Product: D
           Version: D2
          Hardware: x86_64
                OS: All
            Status: NEW
          Severity: regression
          Priority: P1
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: greensunny12 gmail.com

int main()  safe {
  auto a = ["foo": 1];
  auto r = a.byValue;
  return r.front; // oops

and another one:

struct Foo {
  int[int] aa;
  auto opCast() pure nothrow  nogc { *cast(uint*)0xdeadbeef = 0xcafebabe;
return null; }
  alias aa this;

int main()  safe {
    Foo f;
    return !f.byKey.empty;

While 2.077.1 correctly emits warnings that this isn't ` safe`, the code (after
https://github.com/dlang/druntime/pull/1944) segfaults.

Dec 13 2017