inalloca: *Really* fix the docs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204890 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner 2014-03-27 01:38:48 +00:00
parent b1d0dd95ee
commit 7d3c316353
1 changed files with 2 additions and 4 deletions

View File

@ -5,8 +5,6 @@ Design and Usage of the InAlloca Attribute
Introduction
============
.. Warning:: This feature is unstable and not fully implemented.
The :ref:`inalloca <attr_inalloca>` attribute is designed to allow
taking the address of an aggregate argument that is being passed by
value through memory. Primarily, this feature is required for
@ -54,11 +52,11 @@ that passes two default-constructed ``Foo`` objects to ``g`` in the
entry:
%base = call i8* @llvm.stacksave()
%memargs = alloca <{ %struct.Foo, %struct.Foo }>
%b = getelementptr <{ %struct.Foo, %struct.Foo }>*, i32 1
%b = getelementptr <{ %struct.Foo, %struct.Foo }>* %memargs, i32 1
call void @Foo_ctor(%struct.Foo* %b)
; If a's ctor throws, we must destruct b.
%a = getelementptr <{ %struct.Foo, %struct.Foo }>*, i32 0
%a = getelementptr <{ %struct.Foo, %struct.Foo }>* %memargs, i32 0
invoke void @Foo_ctor(%struct.Foo* %a)
to label %invoke.cont unwind %invoke.unwind