[llvm] r217514 - Fix comments of createReplaceableForwardDecl() and createForwardDecl().

David Blaikie dblaikie at gmail.com
Wed Sep 10 09:21:48 PDT 2014


On Wed, Sep 10, 2014 at 9:03 AM, Frederic Riss <friss at apple.com> wrote:

> Author: friss
> Date: Wed Sep 10 11:03:14 2014
> New Revision: 217514
>
> URL: http://llvm.org/viewvc/llvm-project?rev=217514&view=rev
> Log:
> Fix comments of createReplaceableForwardDecl() and createForwardDecl().
>
> Noticed while trying to understand how the merge of forward decalred types
> and defintions work.
>
> Reviewers: echristo, dblaikie, aprantl
>
> Subscribers: llvm-commits
>
> Differential Revision: http://reviews.llvm.org/D5291
>
> Modified:
>     llvm/trunk/lib/IR/DIBuilder.cpp
>
> Modified: llvm/trunk/lib/IR/DIBuilder.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DIBuilder.cpp?rev=217514&r1=217513&r2=217514&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/IR/DIBuilder.cpp (original)
> +++ llvm/trunk/lib/IR/DIBuilder.cpp Wed Sep 10 11:03:14 2014
> @@ -879,8 +879,7 @@ DIBasicType DIBuilder::createUnspecified
>    return DIBasicType();
>  }
>
> -/// createForwardDecl - Create a temporary forward-declared type that
> -/// can be RAUW'd if the full type is seen.
> +/// createForwardDecl - Create a permanent forward-declared type.
>  DICompositeType
>  DIBuilder::createForwardDecl(unsigned Tag, StringRef Name, DIDescriptor
> Scope,
>                               DIFile F, unsigned Line, unsigned
> RuntimeLang,
> @@ -914,7 +913,7 @@ DIBuilder::createForwardDecl(unsigned Ta
>    return RetTy;
>  }
>
> -/// createForwardDecl - Create a temporary forward-declared type that
> +/// createReplaceableForwardDecl - Create a temporary forward-declared
> type that
>  /// can be RAUW'd if the full type is seen.
>

FWIW (either just for your information, or something you can enshrine in a
comment): Because this creates a temporary (perhaps we should replace
"replaceable" with "temporary") node, it /must/ be RAUW'd at some point,
sooner or later. It isn't optional.


>  DICompositeType DIBuilder::createReplaceableForwardDecl(
>      unsigned Tag, StringRef Name, DIDescriptor Scope, DIFile F, unsigned
> Line,
> @@ -942,7 +941,7 @@ DICompositeType DIBuilder::createReplace
>    MDNode *Node = MDNode::getTemporary(VMContext, Elts);
>    DICompositeType RetTy(Node);
>    assert(RetTy.isCompositeType() &&
> -         "createForwardDecl result should be a DIType");
> +         "createReplaceableForwardDecl result should be a DIType");
>    if (!UniqueIdentifier.empty())
>      retainType(RetTy);
>    return RetTy;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140910/8f0cbda3/attachment.html>


More information about the llvm-commits mailing list