Bug 7629 – Add check for ref/out parameters not being null

Status
NEW
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-03-02T06:48:33Z
Last change time
2024-12-13T17:58:54Z
Assigned to
No Owner
Creator
Denis Shelomovskii
Moved to GitHub: dmd#17542 →

Comments

Comment #0 by verylonglogin.reg — 2012-03-02T06:48:33Z
--- void f(ref int i) { } void g(out int i) { } void main() { int* ptr = null; f(*ptr); // No RT errors g(*ptr); // `Access violation` because of a try to write a default value } --- Tests for ref/out parameters not being null will be very useful. Current specs doesn't prohibit null ref/out parameters but it looks inconsistent. I'd like specs to be changed to prohibit such cases or to clarify why is it useful (and not prohibited).
Comment #1 by verylonglogin.reg — 2012-03-02T07:51:54Z
I meant the issue is that if ref null argument isn't used no RT error is generated, `Access violation` for null out argument isn't perfect but is acceptable and corresponds to member function call on null object reference.
Comment #2 by robert.schadek — 2024-12-13T17:58:54Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17542 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB