@Test
	public void testComplexStructureWithBitFields() throws Exception {

		StructureDataType struct = new StructureDataType("struct", 0, dataMgr);

		//@formatter:off
		List<MyPdbMember> members =
			CollectionUtils.asList(
				new MyPdbMember("s0:0x1:0x0", "char", 0),
				new MyPdbMember("s1:0x1:0x1", "char", 0),
				new MyPdbMember("s2:0x1:0x2", "char", 0),
				new MyPdbMember("s3:0x1:0x3", "char", 0),
				new MyPdbMember("s4:0x1:0x4", "char", 0),
				new MyPdbMember("s5:0x1:0x5", "char", 0),
				new MyPdbMember("s6:0x1:0x6", "char", 0),
				new MyPdbMember("s7:0x1:0x7", "char", 0),
				new MyPdbMember("u0:0x1:0x0", "uchar", 0),
				new MyPdbMember("u1:0x1:0x1", "uchar", 0),
				new MyPdbMember("u2:0x1:0x2", "uchar", 0),
				new MyPdbMember("u3:0x1:0x3", "uchar", 0),
				new MyPdbMember("u4:0x1:0x4", "uchar", 0),
				new MyPdbMember("u5:0x1:0x5", "uchar", 0),
				new MyPdbMember("u6:0x1:0x6", "uchar", 0),
				new MyPdbMember("u7:0x1:0x7", "uchar", 0),
				new MyPdbMember("a", "ulong", 8),
				new MyPdbMember("b", "longlong", 8));
		//@formatter:on

		assertTrue(DefaultCompositeMember.applyDataTypeMembers(struct, false, false, 16, members,
			this, TaskMonitor.DUMMY));

		//@formatter:off
		CompositeTestUtils.assertExpectedComposite(this,
			"/struct\n" +
			"pack()\n" +
			"Structure struct {\n" +
			"   0   struct_u_0   1      \"\"\n" +
			"   8   struct_u_8   8      \"\"\n" +
			"}\n" +
			"Length: 16 Alignment: 8\n" +
			"/struct/struct_u_0\n" +
			"pack()\n" +
			"Union struct_u_0 {\n" +
			"   0   struct_u_0_s_0   1   _s_0   \"\"\n" +
			"   0   struct_u_0_s_1   1   _s_1   \"\"\n" +
			"}\n" +
			"Length: 1 Alignment: 1\n" +
			"/struct/struct_u_0/struct_u_0_s_0\n" +
			"pack()\n" +
			"Structure struct_u_0_s_0 {\n" +
			"   0   char:1(0)   1   s0   \"\"\n" +
			"   0   char:1(1)   1   s1   \"\"\n" +
			"   0   char:1(2)   1   s2   \"\"\n" +
			"   0   char:1(3)   1   s3   \"\"\n" +
			"   0   char:1(4)   1   s4   \"\"\n" +
			"   0   char:1(5)   1   s5   \"\"\n" +
			"   0   char:1(6)   1   s6   \"\"\n" +
			"   0   char:1(7)   1   s7   \"\"\n" +
			"}\n" +
			"Length: 1 Alignment: 1\n" +
			"/struct/struct_u_0/struct_u_0_s_1\n" +
			"pack()\n" +
			"Structure struct_u_0_s_1 {\n" +
			"   0   uchar:1(0)   1   u0   \"\"\n" +
			"   0   uchar:1(1)   1   u1   \"\"\n" +
			"   0   uchar:1(2)   1   u2   \"\"\n" +
			"   0   uchar:1(3)   1   u3   \"\"\n" +
			"   0   uchar:1(4)   1   u4   \"\"\n" +
			"   0   uchar:1(5)   1   u5   \"\"\n" +
			"   0   uchar:1(6)   1   u6   \"\"\n" +
			"   0   uchar:1(7)   1   u7   \"\"\n" +
			"}\n" +
			"Length: 1 Alignment: 1\n" +
			"/struct/struct_u_8\n" +
			"pack()\n" +
			"Union struct_u_8 {\n" +
			"   0   ulong   4   a   \"\"\n" +
			"   0   longlong   8   b   \"\"\n" +
			"}\n" +
			"Length: 8 Alignment: 8\n", struct, true);
		//@formatter:on
	}
Structure Source ***
		
		 struct BitFieldUnionAlternatingPadded_s {
		   union {
		      struct {
		         char a0:1;
		         char :1;
		         char a2:1;
		         char :1;
		         char a4:1;
		         char :1;
		      };
		      struct {
		         char :1;
		         char a1:1;
		         char :1;
		         char a3:1;
		         char :1;
		         char a5:1;
		      };
		   };
		};
Ghidra/Features/PDB/src/test/java/ghidra/app/util/bin/format/pdb/CompositeMemberTest.java