@@ -4122,6 +4122,30 @@ except :ref:`label <t_label>` and :ref:`metadata <t_metadata>`.
41224122| ``{i32, i32} (i32)`` | A function taking an ``i32``, returning a :ref:`structure <t_struct>` containing two ``i32`` values |
41234123+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
41244124
4125+ .. _t_opaque:
4126+
4127+ Opaque Structure Types
4128+ ----------------------
4129+
4130+ :Overview:
4131+
4132+ Opaque structure types are used to represent structure types that
4133+ do not have a body specified. This corresponds (for example) to the C
4134+ notion of a forward declared structure. They can be named (``%X``) or
4135+ unnamed (``%52``).
4136+
4137+ It is not possible to create SSA values with an opaque structure type. In
4138+ practice, this largely limits their use to the value type of external globals.
4139+
4140+ :Syntax:
4141+
4142+ ::
4143+
4144+ %X = type opaque
4145+ %52 = type opaque
4146+
4147+ @g = external global %X
4148+
41254149.. _t_firstclass:
41264150
41274151First Class Types
@@ -4562,36 +4586,6 @@ opaqued and are never uniqued. Identified types must not be recursive.
45624586| ``<{ i8, i32 }>`` | A packed struct known to be 5 bytes in size. |
45634587+------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
45644588
4565- .. _t_opaque:
4566-
4567- Opaque Structure Types
4568- """"""""""""""""""""""
4569-
4570- :Overview:
4571-
4572- Opaque structure types are used to represent structure types that
4573- do not have a body specified. This corresponds (for example) to the C
4574- notion of a forward declared structure. They can be named (``%X``) or
4575- unnamed (``%52``).
4576-
4577- It is not possible to create SSA values with an opaque structure type. In
4578- practice, this largely limits their use to the value type of external globals.
4579-
4580- :Syntax:
4581-
4582- ::
4583-
4584- %X = type opaque
4585- %52 = type opaque
4586-
4587- @g = external global %X
4588-
4589- :Examples:
4590-
4591- +--------------+-------------------+
4592- | ``opaque`` | An opaque type. |
4593- +--------------+-------------------+
4594-
45954589.. _constants:
45964590
45974591Constants
0 commit comments