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

Reply via email to