From: Craig Topper Date: Tue, 5 Mar 2019 05:23:37 +0000 (+0000) Subject: [LangRef] Add 'callbr' instruction to the 'blockaddress' section. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5042e2c0b4528350f5e2c515411c7be1b6b4bfd7;p=llvm [LangRef] Add 'callbr' instruction to the 'blockaddress' section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355379 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LangRef.rst b/docs/LangRef.rst index 9b81c6391a4..86972acf6ad 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -3294,14 +3294,14 @@ basic block in the specified function, and always has an ``i8*`` type. Taking the address of the entry block is illegal. This value only has defined behavior when used as an operand to the -':ref:`indirectbr `' instruction, or for comparisons -against null. Pointer equality tests between labels addresses results in -undefined behavior --- though, again, comparison against null is ok, and -no label is equal to the null pointer. This may be passed around as an +':ref:`indirectbr `' or ':ref:`callbr `'instruction, or +for comparisons against null. Pointer equality tests between labels addresses +results in undefined behavior --- though, again, comparison against null is ok, +and no label is equal to the null pointer. This may be passed around as an opaque pointer sized value as long as the bits are not inspected. This allows ``ptrtoint`` and arithmetic to be performed on these values so -long as the original value is reconstituted before the ``indirectbr`` -instruction. +long as the original value is reconstituted before the ``indirectbr`` or +``callbr`` instruction. Finally, some targets may provide defined semantics when using the value as the operand to an inline assembly, but that is target specific.