X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FInAlloca.rst;h=c7609cddb4f9c71f83e5276b8443cfb8fe7389c4;hb=d99743584054e04fc054fc1f0c1e2fa2b9657e0a;hp=8bc83d8622f91c339f5c60073cf77200bd837f27;hpb=b1d0dd95ee1134bda31906b06347d357bcb76452;p=oota-llvm.git diff --git a/docs/InAlloca.rst b/docs/InAlloca.rst index 8bc83d8622f..c7609cddb4f 100644 --- a/docs/InAlloca.rst +++ b/docs/InAlloca.rst @@ -5,8 +5,6 @@ Design and Usage of the InAlloca Attribute Introduction ============ -.. Warning:: This feature is unstable and not fully implemented. - The :ref:`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