X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=docs%2FLangRef.rst;h=a5a886952b7d0e462633e3f62f38f99eec1741b0;hp=c0caa091992418b700429eecd37ae73955266b45;hb=5ff590799654e01ceea6383932fc25e8e622c46a;hpb=3054c3e9820ba4c6da7722243e7bdcc0695543d7 diff --git a/docs/LangRef.rst b/docs/LangRef.rst index c0caa091992..a5a886952b7 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -1012,6 +1012,19 @@ Currently, only the following parameter attributes are defined: array), however ``dereferenceable()`` does imply ``nonnull`` in ``addrspace(0)`` (which is the default address space). +``dereferenceable_or_null()`` + This indicates that the parameter or return value isn't both + non-null and non-dereferenceable (up to ```` bytes) at the same + time. All non-null pointers tagged with + ``dereferenceable_or_null()`` are ``dereferenceable()``. + For address space 0 ``dereferenceable_or_null()`` implies that + a pointer is exactly one of ``dereferenceable()`` or ``null``, + and in other address spaces ``dereferenceable_or_null()`` + implies that a pointer is at least one of ``dereferenceable()`` + or ``null`` (i.e. it may be both ``null`` and + ``dereferenceable()``). This attribute may only be applied to + pointer typed parameters. + .. _gc: Garbage Collector Strategy Names