<p dir="ltr"><br>
On Mar 30, 2013 2:36 AM, "Duncan Sands" <<a href="mailto:baldrick@free.fr">baldrick@free.fr</a>> wrote:<br>
><br>
> Author: baldrick<br>
> Date: Fri Mar 29 10:33:13 2013<br>
> New Revision: 178344<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=178344&view=rev">http://llvm.org/viewvc/llvm-project?rev=178344&view=rev</a><br>
> Log:<br>
> The issue that required sometimes not using DIBuilder here was fixed in the<br>
> previous commit.</p>
<p dir="ltr">Awesome, thanks for that, Duncan!</p>
<p dir="ltr">><br>
> Modified:<br>
>     dragonegg/trunk/src/Debug.cpp<br>
><br>
> Modified: dragonegg/trunk/src/Debug.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Debug.cpp?rev=178344&r1=178343&r2=178344&view=diff">http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Debug.cpp?rev=178344&r1=178343&r2=178344&view=diff</a><br>

> ==============================================================================<br>
> --- dragonegg/trunk/src/Debug.cpp (original)<br>
> +++ dragonegg/trunk/src/Debug.cpp Fri Mar 29 10:33:13 2013<br>
> @@ -1136,25 +1136,6 @@ DIDerivedType DIFactory::CreateDerivedTy<br>
>      uint64_t OffsetInBits, unsigned Flags, DIType DerivedFrom) {<br>
>    switch (Tag) {<br>
>    case dwarf::DW_TAG_typedef:<br>
> -    // FIXME: This code should use DIBuilder but it's creating something<br>
> -    // invalid that DIBuilder doesn't allow. DerivedFrom is invalid due to<br>
> -    // getOrCreateType failing to provide the underlying member type for a<br>
> -    // pointer to member. The invalid DerivedType causes this code to create<br>
> -    // an invalid typedef that is a typedef of no other type. (hence the null<br>
> -    // value as the last parameter in Elts, below)<br>
> -    if (!DerivedFrom.isValid()) {<br>
> -      Value *Elts[] = {<br>
> -        GetTagConstant(dwarf::DW_TAG_typedef), Context,<br>
> -        MDString::get(VMContext, Name), F,<br>
> -        ConstantInt::get(Type::getInt32Ty(VMContext), LineNumber),<br>
> -        ConstantInt::get(Type::getInt64Ty(VMContext), 0), // Size<br>
> -        ConstantInt::get(Type::getInt64Ty(VMContext), 0), // Align<br>
> -        ConstantInt::get(Type::getInt64Ty(VMContext), 0), // Offset<br>
> -        ConstantInt::get(Type::getInt32Ty(VMContext), 0), // Flags<br>
> -        NULL<br>
> -      };<br>
> -      return DIDerivedType(MDNode::get(VMContext, Elts));<br>
> -    }<br>
>      return Builder.createTypedef(DerivedFrom, Name, F, LineNumber, Context);<br>
>    case dwarf::DW_TAG_pointer_type:<br>
>      return Builder.createPointerType(DerivedFrom, SizeInBits, AlignInBits,<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</p>