vsapsai updated this revision to Diff 363891. vsapsai added a comment. Handle nested anonymous structs and `IndirectFieldDecl`; more tests to cover unions and bitfields.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D106994/new/ https://reviews.llvm.org/D106994 Files: clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h clang/test/Modules/merge-record-definition-nonmodular.m clang/test/Modules/merge-record-definition-visibility.m clang/test/Modules/merge-record-definition.m Index: clang/test/Modules/merge-record-definition.m =================================================================== --- clang/test/Modules/merge-record-definition.m +++ clang/test/Modules/merge-record-definition.m @@ -12,6 +12,8 @@ buf.b = 1; AnonymousStruct strct; strct.x = 1; + UnionRecord rec; + rec.u = 1; } #import <RecordDefCopy/RecordDefCopy.h> @@ -21,4 +23,6 @@ buf.c = 2; AnonymousStruct strct; strct.y = 2; + UnionRecord rec; + rec.v = 2; } Index: clang/test/Modules/merge-record-definition-visibility.m =================================================================== --- clang/test/Modules/merge-record-definition-visibility.m +++ clang/test/Modules/merge-record-definition-visibility.m @@ -13,4 +13,6 @@ buf.b = 1; AnonymousStruct strct; strct.y = 1; + UnionRecord rec; + rec.u = 1; } Index: clang/test/Modules/merge-record-definition-nonmodular.m =================================================================== --- clang/test/Modules/merge-record-definition-nonmodular.m +++ clang/test/Modules/merge-record-definition-nonmodular.m @@ -18,6 +18,8 @@ buf.b = 1; AnonymousStruct strct; strct.x = 1; + UnionRecord rec; + rec.u = 1; } #ifdef MODULAR_BEFORE_TEXTUAL @@ -31,4 +33,6 @@ buf.c = 2; AnonymousStruct strct; strct.y = 2; + UnionRecord rec; + rec.v = 2; } Index: clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +}; Index: clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +}; Index: clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +};
Index: clang/test/Modules/merge-record-definition.m =================================================================== --- clang/test/Modules/merge-record-definition.m +++ clang/test/Modules/merge-record-definition.m @@ -12,6 +12,8 @@ buf.b = 1; AnonymousStruct strct; strct.x = 1; + UnionRecord rec; + rec.u = 1; } #import <RecordDefCopy/RecordDefCopy.h> @@ -21,4 +23,6 @@ buf.c = 2; AnonymousStruct strct; strct.y = 2; + UnionRecord rec; + rec.v = 2; } Index: clang/test/Modules/merge-record-definition-visibility.m =================================================================== --- clang/test/Modules/merge-record-definition-visibility.m +++ clang/test/Modules/merge-record-definition-visibility.m @@ -13,4 +13,6 @@ buf.b = 1; AnonymousStruct strct; strct.y = 1; + UnionRecord rec; + rec.u = 1; } Index: clang/test/Modules/merge-record-definition-nonmodular.m =================================================================== --- clang/test/Modules/merge-record-definition-nonmodular.m +++ clang/test/Modules/merge-record-definition-nonmodular.m @@ -18,6 +18,8 @@ buf.b = 1; AnonymousStruct strct; strct.x = 1; + UnionRecord rec; + rec.u = 1; } #ifdef MODULAR_BEFORE_TEXTUAL @@ -31,4 +33,6 @@ buf.c = 2; AnonymousStruct strct; strct.y = 2; + UnionRecord rec; + rec.v = 2; } Index: clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +}; Index: clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +}; Index: clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h =================================================================== --- clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h +++ clang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h @@ -13,3 +13,9 @@ int y; }; }; + +typedef union _UnionRecord UnionRecord; +union _UnionRecord { + int u: 2; + int v: 4; +};
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits