Author: adrian Date: Fri Oct 23 12:02:22 2015 New Revision: 251120 URL: http://llvm.org/viewvc/llvm-project?rev=251120&view=rev Log: Module Debugging: Emit module debug info for types inside of Objective-C containers.
rdar://problem/23196170 Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp cfe/trunk/test/Modules/ExtDebugInfo.m cfe/trunk/test/Modules/Inputs/DebugObjC.h cfe/trunk/test/Modules/ModuleDebugInfo.m Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=251120&r1=251119&r2=251120&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (original) +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Fri Oct 23 12:02:22 2015 @@ -171,6 +171,10 @@ public: return true; } + void HandleTopLevelDeclInObjCContainer(DeclGroupRef D) override { + HandleTopLevelDecl(D); + } + void HandleTagDeclDefinition(TagDecl *D) override { if (Diags.hasErrorOccurred()) return; Modified: cfe/trunk/test/Modules/ExtDebugInfo.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/ExtDebugInfo.m?rev=251120&r1=251119&r2=251120&view=diff ============================================================================== --- cfe/trunk/test/Modules/ExtDebugInfo.m (original) +++ cfe/trunk/test/Modules/ExtDebugInfo.m Fri Oct 23 12:02:22 2015 @@ -19,6 +19,7 @@ #endif int foo(ObjCClass *c) { + InnerEnum e = e0; [c instanceMethodWithInt: 0]; return [c property]; } @@ -30,3 +31,6 @@ int foo(ObjCClass *c) { // CHECK-NOT: !DICompositeType(tag: DW_TAG_structure_type, // CHECK: ![[MOD]] = !DIModule(scope: null, name: {{.*}}DebugObjC // CHECK-NOT: !DICompositeType(tag: DW_TAG_structure_type, +// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, +// CHECK-SAME: scope: ![[MOD]], +// CHECK-SAME: flags: DIFlagFwdDecl) Modified: cfe/trunk/test/Modules/Inputs/DebugObjC.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/DebugObjC.h?rev=251120&r1=251119&r2=251120&view=diff ============================================================================== --- cfe/trunk/test/Modules/Inputs/DebugObjC.h (original) +++ cfe/trunk/test/Modules/Inputs/DebugObjC.h Fri Oct 23 12:02:22 2015 @@ -12,3 +12,13 @@ @interface ObjCClass (Category) - categoryMethod; @end + +@protocol ObjCProtocol + +typedef enum { + e0 = 0 +} InnerEnum; + ++ (InnerEnum)protocolMethod; + +@end Modified: cfe/trunk/test/Modules/ModuleDebugInfo.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/ModuleDebugInfo.m?rev=251120&r1=251119&r2=251120&view=diff ============================================================================== --- cfe/trunk/test/Modules/ModuleDebugInfo.m (original) +++ cfe/trunk/test/Modules/ModuleDebugInfo.m Fri Oct 23 12:02:22 2015 @@ -33,6 +33,7 @@ // CHECK: !DISubprogram(name: "+[ObjCClass classMethod]" // CHECK: !DISubprogram(name: "-[ObjCClass instanceMethodWithInt:]" // CHECK: !DISubprogram(name: "-[ categoryMethod]" +// CHECK: !DITypedefType(name: "InnerEnum" // MODULE-CHECK: !DICompositeType(tag: DW_TAG_structure_type, // MODULE-CHECK-SAME: name: "FwdDecl", _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits