View source code
Display the source code in ddmd/escape.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module ddmd.escape

Compiler implementation of the D programming language.

Functions

Name Description
checkAssignEscape Given an AssignExp, determine if the lvalue will cause the contents of the rvalue to escape. Print error messages when these are detected. Infer 'scope' for the lvalue where possible, in order to eliminate the error.
checkParamArgumentEscape Function parameter par is being initialized to arg, and par may escape. Detect if scoped values can escape this way. Print error messages when these are detected.
checkReturnEscape Detect cases where pointers to the stack can 'escape' the lifetime of the stack frame by returning 'e' by value. Print error messages when these are detected.
checkReturnEscapeRef Detect cases where returning 'e' by ref can result in a reference to the stack being returned. Print error messages when these are detected.
checkThrowEscape Detect cases where pointers to the stack can 'escape' the lifetime of the stack frame when throwing e. Print error messages when these are detected.
findAllOuterAccessedVariables Find all variables accessed by this delegate that are in functions enclosing it.

Authors

Walter Bright

License

Boost License 1.0

Comments