Is this a known bug? With v2.079.0, with or without -dip1000: @safe unittest { struct S { int i; } auto p = &S().i; } The address of field `i` should not escape, right? It's also incorrectly allowed when using an lvalue of S (when -dip1000 is not present).