[cfe-commits] r150976 - /cfe/trunk/lib/CodeGen/CGDebugInfo.cpp

Nico Weber thakis at chromium.org
Mon Feb 20 20:06:40 PST 2012


Thanks! I added a test for this in r151027.

Nico

On Mon, Feb 20, 2012 at 10:05 AM, Eric Christopher <echristo at apple.com> wrote:
> Author: echristo
> Date: Mon Feb 20 12:05:04 2012
> New Revision: 150976
>
> URL: http://llvm.org/viewvc/llvm-project?rev=150976&view=rev
> Log:
> Make forward declarations for objective-c types use the new
> temporary forward declaration nodes. Fixes a problem building
> Chrome.
>
> Modified:
>    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=150976&r1=150975&r2=150976&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Mon Feb 20 12:05:04 2012
> @@ -336,21 +336,19 @@
>   case BuiltinType::Void:
>     return llvm::DIType();
>   case BuiltinType::ObjCClass:
> -    return DBuilder.createStructType(TheCU, "objc_class",
> -                                     getOrCreateMainFile(), 0, 0, 0,
> -                                     llvm::DIDescriptor::FlagFwdDecl,
> -                                     llvm::DIArray());
> +    return DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type,
> +                                       "objc_class", getOrCreateMainFile(),
> +                                       0);
>   case BuiltinType::ObjCId: {
>     // typedef struct objc_class *Class;
>     // typedef struct objc_object {
>     //  Class isa;
>     // } *id;
>
> -    llvm::DIType OCTy =
> -      DBuilder.createStructType(TheCU, "objc_class",
> -                                getOrCreateMainFile(), 0, 0, 0,
> -                                llvm::DIDescriptor::FlagFwdDecl,
> -                                llvm::DIArray());
> +    llvm::DIType OCTy =
> +      DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type,
> +                                  "objc_class", getOrCreateMainFile(),
> +                                  0);
>     unsigned Size = CGM.getContext().getTypeSize(CGM.getContext().VoidPtrTy);
>
>     llvm::DIType ISATy = DBuilder.createPointerType(OCTy, Size);
> @@ -368,10 +366,10 @@
>                                      0, 0, 0, 0, Elements);
>   }
>   case BuiltinType::ObjCSel: {
> -    return  DBuilder.createStructType(TheCU, "objc_selector",
> -                                      getOrCreateMainFile(), 0, 0, 0,
> -                                      llvm::DIDescriptor::FlagFwdDecl,
> -                                      llvm::DIArray());
> +    return
> +      DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type,
> +                                  "objc_selector", getOrCreateMainFile(),
> +                                  0);
>   }
>   case BuiltinType::UChar:
>   case BuiltinType::Char_U: Encoding = llvm::dwarf::DW_ATE_unsigned_char; break;
> @@ -1224,10 +1222,9 @@
>   ObjCInterfaceDecl *Def = ID->getDefinition();
>   if (!Def) {
>     llvm::DIType FwdDecl =
> -      DBuilder.createStructType(Unit, ID->getName(),
> -                                DefUnit, Line, 0, 0,
> -                                llvm::DIDescriptor::FlagFwdDecl,
> -                                llvm::DIArray(), RuntimeLang);
> +      DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type,
> +                                ID->getName(), DefUnit, Line,
> +                                RuntimeLang);
>     return FwdDecl;
>   }
>   ID = Def;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list