diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/type/AbstractPointerMsType.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/type/AbstractPointerMsType.java
index 70c850b4b8..75cd4b59e6 100644
--- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/type/AbstractPointerMsType.java
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/type/AbstractPointerMsType.java
@@ -280,6 +280,46 @@ public abstract class AbstractPointerMsType extends AbstractMsType {
return memberPointerType;
}
+ /**
+ * Returns true of flat 0:32 address model
+ * @return true if flat
+ */
+ public boolean isFlat() {
+ return isFlat;
+ }
+
+ /**
+ * Returns true if volatile pointer
+ * @return true if volatile
+ */
+ public boolean isVolatile() {
+ return isVolatile;
+ }
+
+ /**
+ * Returns true if const pointer
+ * @return true if const
+ */
+ public boolean isConst() {
+ return isConst;
+ }
+
+ /**
+ * Returns true if pointer not aligned on normal boundary
+ * @return true if not aligned
+ */
+ public boolean isUnaligned() {
+ return isUnaligned;
+ }
+
+ /**
+ * Returns the record number of the class containing the member pointer
+ * @return The record number
+ */
+ public RecordNumber getMemberPointerContainingClassRecordNumber() {
+ return memberPointerContainingClassRecordNumber;
+ }
+
@Override
public void emit(StringBuilder builder, Bind bind) {
StringBuilder myBuilder = new StringBuilder();
@@ -315,7 +355,7 @@ public abstract class AbstractPointerMsType extends AbstractMsType {
* Parses the attributes of the pointer.
*
* Implementing class must, in the appropriate order pertinent to itself, parse
- * certain attributes, which at a minimum will fill in {@link #pointerType},
+ * certain attributes, which at a minimum will fill in {@link #pointerType},
* {@link #pointerMode}, {@link #isFlat}, {@link #isVolatile}, {@link #isConst},
* and {@link #isUnaligned}.
* @param reader {@link PdbByteReader} from which the attributes are parsed.
diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/ClassTypeUtils.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/ClassTypeUtils.java
new file mode 100644
index 0000000000..4236ff2a69
--- /dev/null
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/ClassTypeUtils.java
@@ -0,0 +1,86 @@
+/* ###
+ * IP: GHIDRA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package ghidra.app.util.pdb.pdbapplicator;
+
+import org.apache.commons.lang3.StringUtils;
+
+import ghidra.program.model.data.*;
+
+/**
+ * Utilities in various places regarding ClassTypes
+ */
+public class ClassTypeUtils {
+
+ private static final String INTERNALS = "!internals";
+
+ private ClassTypeUtils() {
+ }
+
+ /**
+ * Returns an "internals" CategoryPath within the datatype managed by the applier
+ * @param applier for the owning composite datatype of the internals path
+ * @return the CategoryPath
+ */
+ public static CategoryPath getInternalsCategoryPath(CompositeTypeApplier applier) {
+ DataType dt = applier.getDataType();
+ if (dt instanceof Composite composite) {
+ return getInternalsCategoryPath(composite);
+ }
+ return null;
+ }
+
+ // TODO: Eventually consider changing Composite argument below as model is refined.
+ /**
+ * Returns an "internals" CategoryPath for the owning composite datatype
+ * @param composite owning datatype of the internals path
+ * @return the CategoryPath
+ */
+ public static CategoryPath getInternalsCategoryPath(Composite composite) {
+ DataTypePath dtp = composite.getDataTypePath();
+ return dtp.getCategoryPath().extend(dtp.getDataTypeName(), INTERNALS);
+ }
+
+ /**
+ * Returns a DataTypePath for the named type within the "internals" category of the type
+ * managed byte the applier
+ * @param applier the applier
+ * @param name the name of the type for the DataTypePath
+ * @return the DataTypePath
+ */
+ public static DataTypePath getInternalsDataTypePath(CompositeTypeApplier applier, String name) {
+ CategoryPath cp = getInternalsCategoryPath(applier);
+ if (cp == null || StringUtils.isAllBlank(name)) {
+ return null;
+ }
+ return new DataTypePath(cp, name);
+ }
+
+ // TODO: Eventually consider changing Composite argument below as model is refined.
+ /**
+ * Returns a DataTypePath for the named type within the "internals" category of the composite
+ * type
+ * @param composite the composite
+ * @param name the name of the type for the DataTypePath
+ * @return the DataTypePath
+ */
+ public static DataTypePath getInternalsDataTypePath(Composite composite, String name) {
+ CategoryPath cp = getInternalsCategoryPath(composite);
+ if (cp == null || StringUtils.isAllBlank(name)) {
+ return null;
+ }
+ return new DataTypePath(cp, name);
+ }
+}
diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CompositeTypeApplier.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CompositeTypeApplier.java
index 8534b5b2ec..ac03308c79 100644
--- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CompositeTypeApplier.java
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CompositeTypeApplier.java
@@ -691,11 +691,15 @@ public class CompositeTypeApplier extends AbstractComplexTypeApplier {
}
}
else {
- DefaultPdbUniversalMember member =
- new DefaultPdbUniversalMember(applicator, memberName, fieldApplier, offset);
+ String memberComment = null;
+ if (fieldApplier instanceof PointerTypeApplier ptrApplier) {
+ memberComment = ptrApplier.getPointerCommentField();
+ }
+ DefaultPdbUniversalMember member = new DefaultPdbUniversalMember(applicator,
+ memberName, fieldApplier, offset, memberComment);
members.add(member);
classType.addMember(memberName, fieldDataType, isFlexibleArray,
- convertAttributes(memberAttributes), offset);
+ convertAttributes(memberAttributes), offset, memberComment);
}
}
else if (memberTypeApplierIterated instanceof EnumerateTypeApplier) {
diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java
index 9d6345fa0f..f620632102 100644
--- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java
@@ -1267,7 +1267,7 @@ public class CppCompositeType {
void addPdbMember(List pdbMembers, Member member) {
ClassPdbMember classPdbMember = new ClassPdbMember(member.getName(), member.getDataType(),
- member.isFlexibleArray(), member.getOffset(), null);
+ member.isFlexibleArray(), member.getOffset(), member.getComment());
pdbMembers.add(classPdbMember);
}
diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/DefaultPdbUniversalMember.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/DefaultPdbUniversalMember.java
index f52254e855..d6002b2ee6 100644
--- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/DefaultPdbUniversalMember.java
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/DefaultPdbUniversalMember.java
@@ -41,7 +41,23 @@ public class DefaultPdbUniversalMember extends PdbMember {
*/
DefaultPdbUniversalMember(DefaultPdbApplicator applicator, String name, MsTypeApplier applier,
int offset) {
- super(name, (applier.getDataType()).getName(), offset, null);
+ this(applicator, name, applier, offset, null);
+ dataType = null;
+ }
+
+ /**
+ * Default PDB member construction
+ * @param applicator {@link DefaultPdbApplicator} for which we are working.
+ * @param name member field name. For bitfields this also conveys the bit-size
+ * and optionally the bit-offset.
+ * @param applier fieldApplier for the field datatype or base datatype associated with the
+ * bitfield.
+ * @param offset member's byte offset within the root composite.
+ * @param memberComment comment for member field
+ */
+ DefaultPdbUniversalMember(DefaultPdbApplicator applicator, String name, MsTypeApplier applier,
+ int offset, String memberComment) {
+ super(name, applier.getDataType().getName(), offset, memberComment);
this.applier = applier;
dataType = null;
}
diff --git a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java
index 81c35c39ac..e4d777783d 100644
--- a/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java
+++ b/Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java
@@ -28,7 +28,7 @@ import ghidra.util.exception.CancelledException;
*/
public class PointerTypeApplier extends MsTypeApplier {
- private boolean isFunctionPointer = false;
+ private String memberComment = null;
/**
* Constructor for pointer type applier, for transforming a enum into a
@@ -42,8 +42,14 @@ public class PointerTypeApplier extends MsTypeApplier {
super(applicator, msType);
}
- boolean isFunctionPointer() {
- return isFunctionPointer;
+ /**
+ * Comment field if this type is used as a structure member. This method could go away later
+ * if we develop member pointers into the Ghidra framework; this method exists to pass some
+ * pertinent information along to the user
+ * @return comment string or null
+ */
+ String getPointerCommentField() {
+ return memberComment;
}
@Override
@@ -80,15 +86,10 @@ public class PointerTypeApplier extends MsTypeApplier {
return thisUnderlyingTypeApplier;
}
- private DataType applyAbstractPointerMsType(AbstractPointerMsType type) {
+ private DataType getUnderlyingType(AbstractPointerMsType type) {
MsTypeApplier underlyingApplier =
applicator.getTypeApplier(type.getUnderlyingRecordNumber());
- if (underlyingApplier instanceof ProcedureTypeApplier) {
- isFunctionPointer = true;
- }
-
- //DataType underlyingType = underlyingApplier.getCycleBreakType(); // out 20191211
DataType underlyingType = underlyingApplier.getCycleBreakType();
if (underlyingType == null) {
// TODO: we have seen underlyingTypeApplier is for NoTypeApplier for VtShapeMsType
@@ -98,14 +99,186 @@ public class PointerTypeApplier extends MsTypeApplier {
"PDB Warning: No type conversion for " + underlyingApplier.getMsType().toString() +
" as underlying type for pointer. Using void.");
}
+ return underlyingType;
+ }
+ private DataType applyAbstractPointerMsType(AbstractPointerMsType type) {
+
+ AbstractPointerMsType.PointerMode pointerMode = type.getPointerMode();
+ if (pointerMode == AbstractPointerMsType.PointerMode.MEMBER_DATA_POINTER ||
+ pointerMode == AbstractPointerMsType.PointerMode.MEMBER_FUNCTION_POINTER) {
+ return processMemberPointer(type);
+ }
+ return processPointer(type);
+ }
+
+ private DataType processMemberPointer(AbstractPointerMsType type) {
+ DataType underlyingType = getUnderlyingType(type);
+ int size = type.getSize().intValueExact();
+ RecordNumber memberPointerContainingClassRecordNumber =
+ type.getMemberPointerContainingClassRecordNumber();
+ MsTypeApplier containingClassApplier =
+ applicator.getTypeApplier(memberPointerContainingClassRecordNumber);
+
+ DataType dt = null;
+ String name;
+ AbstractPointerMsType.PointerMode pointerMode = type.getPointerMode();
+ if (pointerMode == AbstractPointerMsType.PointerMode.MEMBER_FUNCTION_POINTER) {
+ name = String.format("pmf_%08x", type.toString().hashCode());
+ memberComment = "\"::*\" (pmf) to type: " + underlyingType;
+ }
+ else {
+ name = String.format("pdm_%08x", type.toString().hashCode());
+ memberComment = "\"::*\" (pdm) to type: " + underlyingType;
+ }
+
+ if (containingClassApplier instanceof CompositeTypeApplier cta) {
+ DataTypePath dtp = ClassTypeUtils.getInternalsDataTypePath(cta, name);
+ if (dtp != null) {
+ dt = applicator.getDataTypeManager().getDataType(dtp);
+ if (dt == null) {
+ dt = new StructureDataType(dtp.getCategoryPath(), dtp.getDataTypeName(), size);
+ dt.setDescription(type.toString());
+ }
+ }
+ }
+ if (dt == null) {
+ dt = Undefined.getUndefinedDataType(size);
+ }
+ return dt;
+ }
+
+ private DataType processPointer(AbstractPointerMsType type) {
+ memberComment = null;
+ DataType underlyingType = getUnderlyingType(type);
int size = type.getSize().intValueExact();
if (size == applicator.getDataOrganization().getPointerSize()) {
size = -1; // Use default
}
- Pointer pointer =
- new PointerDataType(underlyingType, size, applicator.getDataTypeManager());
- return pointer;
+ return new PointerDataType(underlyingType, size, applicator.getDataTypeManager());
}
+// private DataType processMemberPointerFuture(AbstractPointerMsType type) {
+// TODO: Incorporate some of processMemberPointer()
+// AbstractPointerMsType.MemberPointerType memberPointerType = type.getMemberPointerType();
+//
+// int a = 1;
+// Msg.info(this, String.format("size: %d mpt: %s", size, memberPointerType));
+//
+// switch (memberPointerType) {
+// case INVALID:
+// a = a + 1;
+// break;
+// case UNSPECIFIED:
+// a = a + 1;
+// break;
+// case DATA_SINGLE_INHERITANCE:
+// a = a + 1;
+// break;
+// case DATA_MULTIPLE_INHERITANCE:
+// a = a + 1;
+// break;
+// case DATA_VIRTUAL_INHERITANCE:
+// a = a + 1;
+// break;
+// case DATA_GENERAL:
+// a = a + 1;
+// break;
+// case FUNCTION_SINGLE_INHERITANCE:
+// a = a + 1;
+// break;
+// case FUNCTION_MULTIPLE_INHERITANCE:
+// a = a + 1;
+// // temporary code in place of more permanent code, but need something to help analyze
+// // how this member of a class/structure is being used.
+//// if (size == 16) {
+//// return pmfDummy;
+//// }
+// break;
+// case FUNCTION_VIRTUAL_INHERITANCE:
+// a = a + 1;
+// break;
+// case FUNCTION_SINGLE_INHERITANCE_1632:
+// a = a + 1;
+// break;
+// case FUNCTION_MULTIPLE_INHERITANCE_1632:
+// a = a + 1;
+// break;
+// case FUNCTION_VIRTUAL_INHERITANCE_1632:
+// a = a + 1;
+// break;
+// case FUNCTION_SINGLE_INHERITANCE_32:
+// a = a + 1;
+// break;
+// case FUNCTION_MULTIPLE_INHERITANCE_32:
+// a = a + 1;
+// break;
+// case FUNCTION_VIRTUAL_INHERITANCE_32:
+// a = a + 1;
+// break;
+// default:
+// a = a + 1;
+// break;
+// }
+// return null;
+// }
+//
+// private DataType processPointerFuture(AbstractPointerMsType type) {
+// //
+// AbstractPointerMsType.PointerType pointerType = type.getPointerType();
+// //Msg.info(this, String.format("size: %d pt: %s", size, pointerType));
+// int a = 1;
+// switch (pointerType) {
+// case INVALID:
+// a = a + 1;
+// break;
+// case NEAR:
+// a = a + 1;
+// break;
+// case FAR:
+// a = a + 1;
+// break;
+// case HUGE:
+// a = a + 1;
+// break;
+// case SEGMENT_BASED:
+// a = a + 1;
+// break;
+// case VALUE_BASED:
+// a = a + 1;
+// break;
+// case SEGMENT_VALUE_BASED:
+// a = a + 1;
+// break;
+// case ADDRESS_BASED:
+// a = a + 1;
+// break;
+// case SEGMENT_ADDRESS_BASED:
+// a = a + 1;
+// break;
+// case TYPE_BASED:
+// a = a + 1;
+// break;
+// case SELF_BASED:
+// a = a + 1;
+// break;
+// case NEAR32:
+// a = a + 1;
+// break;
+// case FAR32:
+// a = a + 1;
+// break;
+// case PTR64:
+// a = a + 1;
+// break;
+// case UNSPECIFIED:
+// a = a + 1;
+// break;
+// default:
+// a = a + 1;
+// break;
+// }
+// return null;
+// }
+
}
diff --git a/Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeTypeTest.java b/Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeTypeTest.java
index 5dc07097aa..c8c5fbc078 100644
--- a/Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeTypeTest.java
+++ b/Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeTypeTest.java
@@ -15,7 +15,7 @@
*/
package ghidra.app.util.pdb.pdbapplicator;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.util.*;
@@ -52,8 +52,7 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private static VbtManager vbtManager32;
private static VbtManager vbtManager64;
// Note: Currently all test have expected results based on up the COMPLEX layout.
- private static ObjectOrientedClassLayout classLayoutChoice =
- ObjectOrientedClassLayout.COMPLEX;
+ private static ObjectOrientedClassLayout classLayoutChoice = ObjectOrientedClassLayout.COMPLEX;
static {
BitFieldPackingImpl bitFieldPacking = new BitFieldPackingImpl();
@@ -3001,18 +3000,18 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedA_32() {
String expected =
//@formatter:off
- "/A\n" +
- "pack()\n" +
- "Structure A {\n" +
- " 0 A_direct 8 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
+ "/A\n" +
+ "pack()\n" +
+ "Structure A {\n" +
+ " 0 A_direct 8 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3057,18 +3056,18 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedA_64() {
String expected =
//@formatter:off
- "/A\n" +
- "pack()\n" +
- "Structure A {\n" +
- " 0 A_direct 8 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
+ "/A\n" +
+ "pack()\n" +
+ "Structure A {\n" +
+ " 0 A_direct 8 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3111,17 +3110,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedC_32() {
String expected =
//@formatter:off
- "/C\n" +
- "pack()\n" +
- "Structure C {\n" +
- " 0 C_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
+ "/C\n" +
+ "pack()\n" +
+ "Structure C {\n" +
+ " 0 C_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3164,17 +3163,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedC_64() {
String expected =
//@formatter:off
- "/C\n" +
- "pack()\n" +
- "Structure C {\n" +
- " 0 C_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
+ "/C\n" +
+ "pack()\n" +
+ "Structure C {\n" +
+ " 0 C_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3217,17 +3216,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC1_32() {
String expected =
//@formatter:off
- "/CC1\n" +
- "pack()\n" +
- "Structure CC1 {\n" +
- " 0 CC1_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
+ "/CC1\n" +
+ "pack()\n" +
+ "Structure CC1 {\n" +
+ " 0 CC1_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3270,17 +3269,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC1_64() {
String expected =
//@formatter:off
- "/CC1\n" +
- "pack()\n" +
- "Structure CC1 {\n" +
- " 0 CC1_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
+ "/CC1\n" +
+ "pack()\n" +
+ "Structure CC1 {\n" +
+ " 0 CC1_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3323,17 +3322,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC2_32() {
String expected =
//@formatter:off
- "/CC2\n" +
- "pack()\n" +
- "Structure CC2 {\n" +
- " 0 CC2_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
+ "/CC2\n" +
+ "pack()\n" +
+ "Structure CC2 {\n" +
+ " 0 CC2_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3376,17 +3375,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC2_64() {
String expected =
//@formatter:off
- "/CC2\n" +
- "pack()\n" +
- "Structure CC2 {\n" +
- " 0 CC2_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
+ "/CC2\n" +
+ "pack()\n" +
+ "Structure CC2 {\n" +
+ " 0 CC2_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3427,10 +3426,10 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC3_32() {
String expected =
//@formatter:off
- "/CC3\n" +
- "pack(disabled)\n" +
- "Structure CC3 {\n" +
- "}\n" +
+ "/CC3\n" +
+ "pack(disabled)\n" +
+ "Structure CC3 {\n" +
+ "}\n" +
"Size = 1 Actual Alignment = 1";
//@formatter:on
return expected;
@@ -3471,10 +3470,10 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedCC3_64() {
String expected =
//@formatter:off
- "/CC3\n" +
- "pack(disabled)\n" +
- "Structure CC3 {\n" +
- "}\n" +
+ "/CC3\n" +
+ "pack(disabled)\n" +
+ "Structure CC3 {\n" +
+ "}\n" +
"Size = 1 Actual Alignment = 1";
//@formatter:on
return expected;
@@ -3520,24 +3519,24 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedD_32() {
String expected =
//@formatter:off
- "/D\n" +
- "pack()\n" +
- "Structure D {\n" +
- " 0 D_direct 8 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/D/D_direct\n" +
- "pack()\n" +
- "Structure D_direct {\n" +
- " 0 C_direct 4 \"\"\n" +
- " 4 undefined4 4 d1 \"\"\n" +
- "}\n" +
+ "/D\n" +
+ "pack()\n" +
+ "Structure D {\n" +
+ " 0 D_direct 8 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/D/D_direct\n" +
+ "pack()\n" +
+ "Structure D_direct {\n" +
+ " 0 C_direct 4 \"/D/BaseClass_C\"\n" +
+ " 4 undefined4 4 d1 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3583,24 +3582,24 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedD_64() {
String expected =
//@formatter:off
- "/D\n" +
- "pack()\n" +
- "Structure D {\n" +
- " 0 D_direct 8 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/D/D_direct\n" +
- "pack()\n" +
- "Structure D_direct {\n" +
- " 0 C_direct 4 \"\"\n" +
- " 4 undefined4 4 d1 \"\"\n" +
- "}\n" +
+ "/D\n" +
+ "pack()\n" +
+ "Structure D {\n" +
+ " 0 D_direct 8 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/D/D_direct\n" +
+ "pack()\n" +
+ "Structure D_direct {\n" +
+ " 0 C_direct 4 \"/D/BaseClass_C\"\n" +
+ " 4 undefined4 4 d1 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3643,17 +3642,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedE_32() {
String expected =
//@formatter:off
- "/E\n" +
- "pack()\n" +
- "Structure E {\n" +
- " 0 E_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
+ "/E\n" +
+ "pack()\n" +
+ "Structure E {\n" +
+ " 0 E_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3696,17 +3695,17 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedE_64() {
String expected =
//@formatter:off
- "/E\n" +
- "pack()\n" +
- "Structure E {\n" +
- " 0 E_direct 4 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
+ "/E\n" +
+ "pack()\n" +
+ "Structure E {\n" +
+ " 0 E_direct 4 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
"Size = 4 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3755,31 +3754,31 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedF_32() {
String expected =
//@formatter:off
- "/F\n" +
- "pack()\n" +
- "Structure F {\n" +
- " 0 F_direct 12 \"\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/F/F_direct\n" +
- "pack()\n" +
- "Structure F_direct {\n" +
- " 0 C_direct 4 \"\"\n" +
- " 4 E_direct 4 \"\"\n" +
- " 8 undefined4 4 f1 \"\"\n" +
- "}\n" +
+ "/F\n" +
+ "pack()\n" +
+ "Structure F {\n" +
+ " 0 F_direct 12 \"\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/F/F_direct\n" +
+ "pack()\n" +
+ "Structure F_direct {\n" +
+ " 0 C_direct 4 \"/F/BaseClass_C\"\n" +
+ " 4 E_direct 4 \"/F/BaseClass_E\"\n" +
+ " 8 undefined4 4 f1 \"\"\n" +
+ "}\n" +
"Size = 12 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3828,31 +3827,31 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedF_64() {
String expected =
//@formatter:off
- "/F\n" +
- "pack()\n" +
- "Structure F {\n" +
- " 0 F_direct 12 \"\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/F/F_direct\n" +
- "pack()\n" +
- "Structure F_direct {\n" +
- " 0 C_direct 4 \"\"\n" +
- " 4 E_direct 4 \"\"\n" +
- " 8 undefined4 4 f1 \"\"\n" +
- "}\n" +
+ "/F\n" +
+ "pack()\n" +
+ "Structure F {\n" +
+ " 0 F_direct 12 \"\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/F/F_direct\n" +
+ "pack()\n" +
+ "Structure F_direct {\n" +
+ " 0 C_direct 4 \"/F/BaseClass_C\"\n" +
+ " 4 E_direct 4 \"/F/BaseClass_E\"\n" +
+ " 8 undefined4 4 f1 \"\"\n" +
+ "}\n" +
"Size = 12 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3905,25 +3904,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedG_32() {
String expected =
//@formatter:off
- "/G\n" +
- "pack()\n" +
- "Structure G {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
+ "/G\n" +
+ "pack()\n" +
+ "Structure G {\n" +
+ " 0 G_direct 8 \"\"\n" +
+ " 8 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -3977,25 +3976,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedG_64() {
String expected =
//@formatter:off
- "/G\n" +
- "pack()\n" +
- "Structure G {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
+ "/G\n" +
+ "pack()\n" +
+ "Structure G {\n" +
+ " 0 G_direct 16 \"\"\n" +
+ " 16 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4048,25 +4047,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedH_32() {
String expected =
//@formatter:off
- "/H\n" +
- "pack()\n" +
- "Structure H {\n" +
- " 0 H_direct 8 \"\"\n" +
- " 8 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
+ "/H\n" +
+ "pack()\n" +
+ "Structure H {\n" +
+ " 0 H_direct 8 \"\"\n" +
+ " 8 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4120,25 +4119,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedH_64() {
String expected =
//@formatter:off
- "/H\n" +
- "pack()\n" +
- "Structure H {\n" +
- " 0 H_direct 16 \"\"\n" +
- " 16 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
+ "/H\n" +
+ "pack()\n" +
+ "Structure H {\n" +
+ " 0 H_direct 16 \"\"\n" +
+ " 16 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4196,32 +4195,32 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedG1_32() {
String expected =
//@formatter:off
- "/G1\n" +
- "pack()\n" +
- "Structure G1 {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 C_direct 4 \"(Virtual Base C)\"\n" +
- " 12 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
+ "/G1\n" +
+ "pack()\n" +
+ "Structure G1 {\n" +
+ " 0 G1_direct 8 \"\"\n" +
+ " 8 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 12 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4280,32 +4279,32 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedG1_64() {
String expected =
//@formatter:off
- "/G1\n" +
- "pack()\n" +
- "Structure G1 {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 C_direct 4 \"(Virtual Base C)\"\n" +
- " 20 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
+ "/G1\n" +
+ "pack()\n" +
+ "Structure G1 {\n" +
+ " 0 G1_direct 16 \"\"\n" +
+ " 16 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 20 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4363,32 +4362,32 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedH1_32() {
String expected =
//@formatter:off
- "/H1\n" +
- "pack()\n" +
- "Structure H1 {\n" +
- " 0 H1_direct 8 \"\"\n" +
- " 8 E_direct 4 \"(Virtual Base E)\"\n" +
- " 12 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
+ "/H1\n" +
+ "pack()\n" +
+ "Structure H1 {\n" +
+ " 0 H1_direct 8 \"\"\n" +
+ " 8 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 12 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4447,32 +4446,32 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedH1_64() {
String expected =
//@formatter:off
- "/H1\n" +
- "pack()\n" +
- "Structure H1 {\n" +
- " 0 H1_direct 16 \"\"\n" +
- " 16 E_direct 4 \"(Virtual Base E)\"\n" +
- " 20 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
+ "/H1\n" +
+ "pack()\n" +
+ "Structure H1 {\n" +
+ " 0 H1_direct 16 \"\"\n" +
+ " 16 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 20 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4525,25 +4524,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG1_32() {
String expected =
//@formatter:off
- "/GG1\n" +
- "pack()\n" +
- "Structure GG1 {\n" +
- " 0 GG1_direct 8 \"\"\n" +
- " 8 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg11 \"\"\n" +
- "}\n" +
+ "/GG1\n" +
+ "pack()\n" +
+ "Structure GG1 {\n" +
+ " 0 GG1_direct 8 \"\"\n" +
+ " 8 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 4 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4597,25 +4596,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG1_64() {
String expected =
//@formatter:off
- "/GG1\n" +
- "pack()\n" +
- "Structure GG1 {\n" +
- " 0 GG1_direct 16 \"\"\n" +
- " 16 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg11 \"\"\n" +
- "}\n" +
+ "/GG1\n" +
+ "pack()\n" +
+ "Structure GG1 {\n" +
+ " 0 GG1_direct 16 \"\"\n" +
+ " 16 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 8 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4668,25 +4667,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG2_32() {
String expected =
//@formatter:off
- "/GG2\n" +
- "pack()\n" +
- "Structure GG2 {\n" +
- " 0 GG2_direct 8 \"\"\n" +
- " 8 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg21 \"\"\n" +
- "}\n" +
+ "/GG2\n" +
+ "pack()\n" +
+ "Structure GG2 {\n" +
+ " 0 GG2_direct 8 \"\"\n" +
+ " 8 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 4 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4740,25 +4739,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG2_64() {
String expected =
//@formatter:off
- "/GG2\n" +
- "pack()\n" +
- "Structure GG2 {\n" +
- " 0 GG2_direct 16 \"\"\n" +
- " 16 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg21 \"\"\n" +
- "}\n" +
+ "/GG2\n" +
+ "pack()\n" +
+ "Structure GG2 {\n" +
+ " 0 GG2_direct 16 \"\"\n" +
+ " 16 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 8 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4811,25 +4810,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG3_32() {
String expected =
//@formatter:off
- "/GG3\n" +
- "pack()\n" +
- "Structure GG3 {\n" +
- " 0 GG3_direct 8 \"\"\n" +
- " 8 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- "}\n" +
- "Size = 12 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg31 \"\"\n" +
- "}\n" +
+ "/GG3\n" +
+ "pack()\n" +
+ "Structure GG3 {\n" +
+ " 0 GG3_direct 8 \"\"\n" +
+ " 8 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ "}\n" +
+ "Size = 12 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 4 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -4883,25 +4882,25 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG3_64() {
String expected =
//@formatter:off
- "/GG3\n" +
- "pack()\n" +
- "Structure GG3 {\n" +
- " 0 GG3_direct 16 \"\"\n" +
- " 16 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 8\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg31 \"\"\n" +
- "}\n" +
+ "/GG3\n" +
+ "pack()\n" +
+ "Structure GG3 {\n" +
+ " 0 GG3_direct 16 \"\"\n" +
+ " 16 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 8\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 8 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -4957,18 +4956,18 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG4_32() {
String expected =
//@formatter:off
- "/GG4\n" +
- "pack()\n" +
- "Structure GG4 {\n" +
- " 0 GG4_direct 8 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG4/GG4_direct\n" +
- "pack()\n" +
- "Structure GG4_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg41 \"\"\n" +
- "}\n" +
+ "/GG4\n" +
+ "pack()\n" +
+ "Structure GG4 {\n" +
+ " 0 GG4_direct 8 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG4/GG4_direct\n" +
+ "pack()\n" +
+ "Structure GG4_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG4\"\n" +
+ " 4 undefined4 4 gg41 \"\"\n" +
+ "}\n" +
"Size = 8 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -5025,18 +5024,18 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedGG4_64() {
String expected =
//@formatter:off
- "/GG4\n" +
- "pack()\n" +
- "Structure GG4 {\n" +
- " 0 GG4_direct 16 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG4/GG4_direct\n" +
- "pack()\n" +
- "Structure GG4_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg41 \"\"\n" +
- "}\n" +
+ "/GG4\n" +
+ "pack()\n" +
+ "Structure GG4 {\n" +
+ " 0 GG4_direct 16 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG4/GG4_direct\n" +
+ "pack()\n" +
+ "Structure GG4_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG4\"\n" +
+ " 8 undefined4 4 gg41 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 8";
//@formatter:on
@@ -5101,40 +5100,40 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI_32() {
String expected =
//@formatter:off
- "/I\n" +
- "pack()\n" +
- "Structure I {\n" +
- " 0 I_direct 20 \"\"\n" +
- " 20 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 24 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i1 \"\"\n" +
- "}\n" +
+ "/I\n" +
+ "pack()\n" +
+ "Structure I {\n" +
+ " 0 I_direct 20 \"\"\n" +
+ " 20 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 24 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 8 \"/I/BaseClass_G\"\n" +
+ " 8 H_direct 8 \"/I/BaseClass_H\"\n" +
+ " 16 undefined4 4 i1 \"\"\n" +
+ "}\n" +
"Size = 20 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -5203,40 +5202,40 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI_64() {
String expected =
//@formatter:off
- "/I\n" +
- "pack()\n" +
- "Structure I {\n" +
- " 0 I_direct 40 \"\"\n" +
- " 40 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 48 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i1 \"\"\n" +
- "}\n" +
+ "/I\n" +
+ "pack()\n" +
+ "Structure I {\n" +
+ " 0 I_direct 40 \"\"\n" +
+ " 40 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 48 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 16 \"/I/BaseClass_G\"\n" +
+ " 16 H_direct 16 \"/I/BaseClass_H\"\n" +
+ " 32 undefined4 4 i1 \"\"\n" +
+ "}\n" +
"Size = 40 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -5305,47 +5304,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI1_32() {
String expected =
//@formatter:off
- "/I1\n" +
- "pack()\n" +
- "Structure I1 {\n" +
- " 0 I1_direct 20 \"\"\n" +
- " 20 C_direct 4 \"(Virtual Base C)\"\n" +
- " 24 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 28 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i11 \"\"\n" +
- "}\n" +
+ "/I1\n" +
+ "pack()\n" +
+ "Structure I1 {\n" +
+ " 0 I1_direct 20 \"\"\n" +
+ " 20 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 24 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 28 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 8 \"/I1/BaseClass_G1\"\n" +
+ " 8 H_direct 8 \"/I1/BaseClass_H\"\n" +
+ " 16 undefined4 4 i11 \"\"\n" +
+ "}\n" +
"Size = 20 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -5418,47 +5417,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI1_64() {
String expected =
//@formatter:off
- "/I1\n" +
- "pack()\n" +
- "Structure I1 {\n" +
- " 0 I1_direct 40 \"\"\n" +
- " 40 C_direct 4 \"(Virtual Base C)\"\n" +
- " 44 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 48 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i11 \"\"\n" +
- "}\n" +
+ "/I1\n" +
+ "pack()\n" +
+ "Structure I1 {\n" +
+ " 0 I1_direct 40 \"\"\n" +
+ " 40 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 44 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 48 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 16 \"/I1/BaseClass_G1\"\n" +
+ " 16 H_direct 16 \"/I1/BaseClass_H\"\n" +
+ " 32 undefined4 4 i11 \"\"\n" +
+ "}\n" +
"Size = 40 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -5528,47 +5527,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI2_32() {
String expected =
//@formatter:off
- "/I2\n" +
- "pack()\n" +
- "Structure I2 {\n" +
- " 0 I2_direct 20 \"\"\n" +
- " 20 C_direct 4 \"(Virtual Base C)\"\n" +
- " 24 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 28 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i21 \"\"\n" +
- "}\n" +
+ "/I2\n" +
+ "pack()\n" +
+ "Structure I2 {\n" +
+ " 0 I2_direct 20 \"\"\n" +
+ " 20 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 24 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 28 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 8 \"/I2/BaseClass_G\"\n" +
+ " 8 H1_direct 8 \"/I2/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i21 \"\"\n" +
+ "}\n" +
"Size = 20 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -5642,47 +5641,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI2_64() {
String expected =
//@formatter:off
- "/I2\n" +
- "pack()\n" +
- "Structure I2 {\n" +
- " 0 I2_direct 40 \"\"\n" +
- " 40 C_direct 4 \"(Virtual Base C)\"\n" +
- " 44 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 48 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i21 \"\"\n" +
- "}\n" +
+ "/I2\n" +
+ "pack()\n" +
+ "Structure I2 {\n" +
+ " 0 I2_direct 40 \"\"\n" +
+ " 40 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 44 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 48 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 16 \"/I2/BaseClass_G\"\n" +
+ " 16 H1_direct 16 \"/I2/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i21 \"\"\n" +
+ "}\n" +
"Size = 40 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -5752,47 +5751,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI3_32() {
String expected =
//@formatter:off
- "/I3\n" +
- "pack()\n" +
- "Structure I3 {\n" +
- " 0 I3_direct 20 \"\"\n" +
- " 20 C_direct 4 \"(Virtual Base C)\"\n" +
- " 24 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 28 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i31 \"\"\n" +
- "}\n" +
+ "/I3\n" +
+ "pack()\n" +
+ "Structure I3 {\n" +
+ " 0 I3_direct 20 \"\"\n" +
+ " 20 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 24 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 28 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 8 \"/I3/BaseClass_G1\"\n" +
+ " 8 H1_direct 8 \"/I3/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i31 \"\"\n" +
+ "}\n" +
"Size = 20 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -5865,47 +5864,47 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI3_64() {
String expected =
//@formatter:off
- "/I3\n" +
- "pack()\n" +
- "Structure I3 {\n" +
- " 0 I3_direct 40 \"\"\n" +
- " 40 C_direct 4 \"(Virtual Base C)\"\n" +
- " 44 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 48 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i31 \"\"\n" +
- "}\n" +
+ "/I3\n" +
+ "pack()\n" +
+ "Structure I3 {\n" +
+ " 0 I3_direct 40 \"\"\n" +
+ " 40 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 44 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 48 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 16 \"/I3/BaseClass_G1\"\n" +
+ " 16 H1_direct 16 \"/I3/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i31 \"\"\n" +
+ "}\n" +
"Size = 40 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -5966,39 +5965,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI4_32() {
String expected =
//@formatter:off
- "/I4\n" +
- "pack()\n" +
- "Structure I4 {\n" +
- " 0 I4_direct 12 \"\"\n" +
- " 12 C_direct 4 \"(Virtual Base C)\"\n" +
- " 16 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I4/I4_direct\n" +
- "pack()\n" +
- "Structure I4_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 undefined4 4 i41 \"\"\n" +
- "}\n" +
+ "/I4\n" +
+ "pack()\n" +
+ "Structure I4 {\n" +
+ " 0 I4_direct 12 \"\"\n" +
+ " 12 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 16 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I4/I4_direct\n" +
+ "pack()\n" +
+ "Structure I4_direct {\n" +
+ " 0 G1_direct 8 \"/I4/BaseClass_G1\"\n" +
+ " 8 undefined4 4 i41 \"\"\n" +
+ "}\n" +
"Size = 12 Actual Alignment = 4";
//@formatter:on
@@ -6061,39 +6060,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI4_64() {
String expected =
//@formatter:off
- "/I4\n" +
- "pack()\n" +
- "Structure I4 {\n" +
- " 0 I4_direct 24 \"\"\n" +
- " 24 C_direct 4 \"(Virtual Base C)\"\n" +
- " 28 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 32 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I4/I4_direct\n" +
- "pack()\n" +
- "Structure I4_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 undefined4 4 i41 \"\"\n" +
- "}\n" +
+ "/I4\n" +
+ "pack()\n" +
+ "Structure I4 {\n" +
+ " 0 I4_direct 24 \"\"\n" +
+ " 24 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 28 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 32 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I4/I4_direct\n" +
+ "pack()\n" +
+ "Structure I4_direct {\n" +
+ " 0 G1_direct 16 \"/I4/BaseClass_G1\"\n" +
+ " 16 undefined4 4 i41 \"\"\n" +
+ "}\n" +
"Size = 24 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -6154,39 +6153,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedtI5_32() {
String expected =
//@formatter:off
- "/I5\n" +
- "pack()\n" +
- "Structure I5 {\n" +
- " 0 I5_direct 12 \"\"\n" +
- " 12 E_direct 4 \"(Virtual Base E)\"\n" +
- " 16 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I5/I5_direct\n" +
- "pack()\n" +
- "Structure I5_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 undefined4 4 i51 \"\"\n" +
- "}\n" +
+ "/I5\n" +
+ "pack()\n" +
+ "Structure I5 {\n" +
+ " 0 I5_direct 12 \"\"\n" +
+ " 12 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 16 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I5/I5_direct\n" +
+ "pack()\n" +
+ "Structure I5_direct {\n" +
+ " 0 G1_direct 8 \"/I5/BaseClass_G1\"\n" +
+ " 8 undefined4 4 i51 \"\"\n" +
+ "}\n" +
"Size = 12 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -6200,39 +6199,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getSpeculatedtI5_32() {
String expected =
//@formatter:off
- "/I5\n" +
- "pack()\n" +
- "Structure I5 {\n" +
- " 0 I5_direct 12 \"\"\n" +
- " 12 C_direct 4 \"((Speculative Placement) Virtual Base C)\"\n" +
- " 16 E_direct 4 \"((Speculative Placement) Virtual Base E)\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I5/I5_direct\n" +
- "pack()\n" +
- "Structure I5_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 undefined4 4 i51 \"\"\n" +
- "}\n" +
+ "/I5\n" +
+ "pack()\n" +
+ "Structure I5 {\n" +
+ " 0 I5_direct 12 \"\"\n" +
+ " 12 C_direct 4 \"((Speculative Placement) Virtual Base C)\"\n" +
+ " 16 E_direct 4 \"((Speculative Placement) Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I5/I5_direct\n" +
+ "pack()\n" +
+ "Structure I5_direct {\n" +
+ " 0 G1_direct 8 \"/I5/BaseClass_G1\"\n" +
+ " 8 undefined4 4 i51 \"\"\n" +
+ "}\n" +
"Size = 12 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -6291,39 +6290,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedI5_64() {
String expected =
//@formatter:off
- "/I5\n" +
- "pack()\n" +
- "Structure I5 {\n" +
- " 0 I5_direct 24 \"\"\n" +
- " 24 E_direct 4 \"(Virtual Base E)\"\n" +
- " 28 C_direct 4 \"(Virtual Base C)\"\n" +
- "}\n" +
- "Size = 32 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I5/I5_direct\n" +
- "pack()\n" +
- "Structure I5_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 undefined4 4 i51 \"\"\n" +
- "}\n" +
+ "/I5\n" +
+ "pack()\n" +
+ "Structure I5 {\n" +
+ " 0 I5_direct 24 \"\"\n" +
+ " 24 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 28 C_direct 4 \"(Virtual Base C)\"\n" +
+ "}\n" +
+ "Size = 32 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I5/I5_direct\n" +
+ "pack()\n" +
+ "Structure I5_direct {\n" +
+ " 0 G1_direct 16 \"/I5/BaseClass_G1\"\n" +
+ " 16 undefined4 4 i51 \"\"\n" +
+ "}\n" +
"Size = 24 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -6337,39 +6336,39 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getSpeculatedI5_64() {
String expected =
//@formatter:off
- "/I5\n" +
- "pack()\n" +
- "Structure I5 {\n" +
- " 0 I5_direct 24 \"\"\n" +
- " 24 C_direct 4 \"((Speculative Placement) Virtual Base C)\"\n" +
- " 28 E_direct 4 \"((Speculative Placement) Virtual Base E)\"\n" +
- "}\n" +
- "Size = 32 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I5/I5_direct\n" +
- "pack()\n" +
- "Structure I5_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 undefined4 4 i51 \"\"\n" +
- "}\n" +
+ "/I5\n" +
+ "pack()\n" +
+ "Structure I5 {\n" +
+ " 0 I5_direct 24 \"\"\n" +
+ " 24 C_direct 4 \"((Speculative Placement) Virtual Base C)\"\n" +
+ " 28 E_direct 4 \"((Speculative Placement) Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 32 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I5/I5_direct\n" +
+ "pack()\n" +
+ "Structure I5_direct {\n" +
+ " 0 G1_direct 16 \"/I5/BaseClass_G1\"\n" +
+ " 16 undefined4 4 i51 \"\"\n" +
+ "}\n" +
"Size = 24 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -6458,77 +6457,77 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ1_32() {
String expected =
//@formatter:off
- "/J1\n" +
- "pack()\n" +
- "Structure J1 {\n" +
- " 0 J1_direct 44 \"\"\n" +
- " 44 C_direct 4 \"(Virtual Base C)\"\n" +
- " 48 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 52 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/J1/J1_direct\n" +
- "pack()\n" +
- "Structure J1_direct {\n" +
- " 0 I1_direct 20 \"\"\n" +
- " 20 I2_direct 20 \"\"\n" +
- " 40 undefined4 4 j11 \"\"\n" +
- "}\n" +
+ "/J1\n" +
+ "pack()\n" +
+ "Structure J1 {\n" +
+ " 0 J1_direct 44 \"\"\n" +
+ " 44 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 48 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 52 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 8 \"/I1/BaseClass_G1\"\n" +
+ " 8 H_direct 8 \"/I1/BaseClass_H\"\n" +
+ " 16 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 8 \"/I2/BaseClass_G\"\n" +
+ " 8 H1_direct 8 \"/I2/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/J1/J1_direct\n" +
+ "pack()\n" +
+ "Structure J1_direct {\n" +
+ " 0 I1_direct 20 \"/J1/BaseClass_I1\"\n" +
+ " 20 I2_direct 20 \"/J1/BaseClass_I2\"\n" +
+ " 40 undefined4 4 j11 \"\"\n" +
+ "}\n" +
"Size = 44 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -6630,77 +6629,77 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ1_64() {
String expected =
//@formatter:off
- "/J1\n" +
- "pack()\n" +
- "Structure J1 {\n" +
- " 0 J1_direct 88 \"\"\n" +
- " 88 C_direct 4 \"(Virtual Base C)\"\n" +
- " 92 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 96 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/J1/J1_direct\n" +
- "pack()\n" +
- "Structure J1_direct {\n" +
- " 0 I1_direct 40 \"\"\n" +
- " 40 I2_direct 40 \"\"\n" +
- " 80 undefined4 4 j11 \"\"\n" +
- "}\n" +
+ "/J1\n" +
+ "pack()\n" +
+ "Structure J1 {\n" +
+ " 0 J1_direct 88 \"\"\n" +
+ " 88 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 92 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 96 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 16 \"/I1/BaseClass_G1\"\n" +
+ " 16 H_direct 16 \"/I1/BaseClass_H\"\n" +
+ " 32 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 16 \"/I2/BaseClass_G\"\n" +
+ " 16 H1_direct 16 \"/I2/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/J1/J1_direct\n" +
+ "pack()\n" +
+ "Structure J1_direct {\n" +
+ " 0 I1_direct 40 \"/J1/BaseClass_I1\"\n" +
+ " 40 I2_direct 40 \"/J1/BaseClass_I2\"\n" +
+ " 80 undefined4 4 j11 \"\"\n" +
+ "}\n" +
"Size = 88 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -6793,77 +6792,77 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ2_32() {
String expected =
//@formatter:off
- "/J2\n" +
- "pack()\n" +
- "Structure J2 {\n" +
- " 0 J2_direct 44 \"\"\n" +
- " 44 C_direct 4 \"(Virtual Base C)\"\n" +
- " 48 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 52 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/J2/J2_direct\n" +
- "pack()\n" +
- "Structure J2_direct {\n" +
- " 0 I2_direct 20 \"\"\n" +
- " 20 I1_direct 20 \"\"\n" +
- " 40 undefined4 4 j21 \"\"\n" +
- "}\n" +
+ "/J2\n" +
+ "pack()\n" +
+ "Structure J2 {\n" +
+ " 0 J2_direct 44 \"\"\n" +
+ " 44 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 48 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 52 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 8 \"/I1/BaseClass_G1\"\n" +
+ " 8 H_direct 8 \"/I1/BaseClass_H\"\n" +
+ " 16 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 8 \"/I2/BaseClass_G\"\n" +
+ " 8 H1_direct 8 \"/I2/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/J2/J2_direct\n" +
+ "pack()\n" +
+ "Structure J2_direct {\n" +
+ " 0 I2_direct 20 \"/J2/BaseClass_I2\"\n" +
+ " 20 I1_direct 20 \"/J2/BaseClass_I1\"\n" +
+ " 40 undefined4 4 j21 \"\"\n" +
+ "}\n" +
"Size = 44 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -6965,77 +6964,77 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ2_64() {
String expected =
//@formatter:off
- "/J2\n" +
- "pack()\n" +
- "Structure J2 {\n" +
- " 0 J2_direct 88 \"\"\n" +
- " 88 C_direct 4 \"(Virtual Base C)\"\n" +
- " 92 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 96 Actual Alignment = 8\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/J2/J2_direct\n" +
- "pack()\n" +
- "Structure J2_direct {\n" +
- " 0 I2_direct 40 \"\"\n" +
- " 40 I1_direct 40 \"\"\n" +
- " 80 undefined4 4 j21 \"\"\n" +
- "}\n" +
+ "/J2\n" +
+ "pack()\n" +
+ "Structure J2 {\n" +
+ " 0 J2_direct 88 \"\"\n" +
+ " 88 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 92 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 96 Actual Alignment = 8\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 16 \"/I1/BaseClass_G1\"\n" +
+ " 16 H_direct 16 \"/I1/BaseClass_H\"\n" +
+ " 32 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 16 \"/I2/BaseClass_G\"\n" +
+ " 16 H1_direct 16 \"/I2/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/J2/J2_direct\n" +
+ "pack()\n" +
+ "Structure J2_direct {\n" +
+ " 0 I2_direct 40 \"/J2/BaseClass_I2\"\n" +
+ " 40 I1_direct 40 \"/J2/BaseClass_I1\"\n" +
+ " 80 undefined4 4 j21 \"\"\n" +
+ "}\n" +
"Size = 88 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -7133,85 +7132,85 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ3_32() {
String expected =
//@formatter:off
- "/J3\n" +
- "pack()\n" +
- "Structure J3 {\n" +
- " 0 J3_direct 52 \"\"\n" +
- " 52 C_direct 4 \"(Virtual Base C)\"\n" +
- " 56 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 60 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/J3/J3_direct\n" +
- "pack()\n" +
- "Structure J3_direct {\n" +
- " 0 I2_direct 20 \"\"\n" +
- " 20 I1_direct 20 \"\"\n" +
- " 40 A_direct 8 \"\"\n" +
- " 48 undefined4 4 j31 \"\"\n" +
- "}\n" +
+ "/J3\n" +
+ "pack()\n" +
+ "Structure J3 {\n" +
+ " 0 J3_direct 52 \"\"\n" +
+ " 52 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 56 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 60 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 8 \"/I1/BaseClass_G1\"\n" +
+ " 8 H_direct 8 \"/I1/BaseClass_H\"\n" +
+ " 16 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 8 \"/I2/BaseClass_G\"\n" +
+ " 8 H1_direct 8 \"/I2/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/J3/J3_direct\n" +
+ "pack()\n" +
+ "Structure J3_direct {\n" +
+ " 0 I2_direct 20 \"/J3/BaseClass_I2\"\n" +
+ " 20 I1_direct 20 \"/J3/BaseClass_I1\"\n" +
+ " 40 A_direct 8 \"/J3/BaseClass_A\"\n" +
+ " 48 undefined4 4 j31 \"\"\n" +
+ "}\n" +
"Size = 52 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -7318,85 +7317,85 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ3_64() {
String expected =
//@formatter:off
- "/J3\n" +
- "pack()\n" +
- "Structure J3 {\n" +
- " 0 J3_direct 96 \"\"\n" +
- " 96 C_direct 4 \"(Virtual Base C)\"\n" +
- " 100 E_direct 4 \"(Virtual Base E)\"\n" +
- "}\n" +
- "Size = 104 Actual Alignment = 8\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I1/I1_direct\n" +
- "pack()\n" +
- "Structure I1_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i11 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/I2/I2_direct\n" +
- "pack()\n" +
- "Structure I2_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i21 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/J3/J3_direct\n" +
- "pack()\n" +
- "Structure J3_direct {\n" +
- " 0 I2_direct 40 \"\"\n" +
- " 40 I1_direct 40 \"\"\n" +
- " 80 A_direct 8 \"\"\n" +
- " 88 undefined4 4 j31 \"\"\n" +
- "}\n" +
+ "/J3\n" +
+ "pack()\n" +
+ "Structure J3 {\n" +
+ " 0 J3_direct 96 \"\"\n" +
+ " 96 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 100 E_direct 4 \"(Virtual Base E)\"\n" +
+ "}\n" +
+ "Size = 104 Actual Alignment = 8\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I1/I1_direct\n" +
+ "pack()\n" +
+ "Structure I1_direct {\n" +
+ " 0 G1_direct 16 \"/I1/BaseClass_G1\"\n" +
+ " 16 H_direct 16 \"/I1/BaseClass_H\"\n" +
+ " 32 undefined4 4 i11 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/I2/I2_direct\n" +
+ "pack()\n" +
+ "Structure I2_direct {\n" +
+ " 0 G_direct 16 \"/I2/BaseClass_G\"\n" +
+ " 16 H1_direct 16 \"/I2/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i21 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/J3/J3_direct\n" +
+ "pack()\n" +
+ "Structure J3_direct {\n" +
+ " 0 I2_direct 40 \"/J3/BaseClass_I2\"\n" +
+ " 40 I1_direct 40 \"/J3/BaseClass_I1\"\n" +
+ " 80 A_direct 8 \"/J3/BaseClass_A\"\n" +
+ " 88 undefined4 4 j31 \"\"\n" +
+ "}\n" +
"Size = 96 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -7531,123 +7530,123 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ4_32() {
String expected =
//@formatter:off
- "/J4\n" +
- "pack()\n" +
- "Structure J4 {\n" +
- " 0 J4_direct 60 \"\"\n" +
- " 60 C_direct 4 \"(Virtual Base C)\"\n" +
- " 64 E_direct 4 \"(Virtual Base E)\"\n" +
- " 68 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- " 72 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- " 76 GG2_direct 8 \"(Virtual Base GG2)\"\n" +
- " 84 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
- "}\n" +
- "Size = 92 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg21 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i1 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i31 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/J4/J4_direct\n" +
- "pack()\n" +
- "Structure J4_direct {\n" +
- " 0 I3_direct 20 \"\"\n" +
- " 20 GG1_direct 8 \"\"\n" +
- " 28 I_direct 20 \"\"\n" +
- " 48 A_direct 8 \"\"\n" +
- " 56 undefined4 4 j41 \"\"\n" +
- "}\n" +
+ "/J4\n" +
+ "pack()\n" +
+ "Structure J4 {\n" +
+ " 0 J4_direct 60 \"\"\n" +
+ " 60 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 64 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 68 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ " 72 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ " 76 GG2_direct 8 \"(Virtual Base GG2)\"\n" +
+ " 84 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
+ "}\n" +
+ "Size = 92 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 4 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 4 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 4 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 8 \"/I/BaseClass_G\"\n" +
+ " 8 H_direct 8 \"/I/BaseClass_H\"\n" +
+ " 16 undefined4 4 i1 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 8 \"/I3/BaseClass_G1\"\n" +
+ " 8 H1_direct 8 \"/I3/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i31 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/J4/J4_direct\n" +
+ "pack()\n" +
+ "Structure J4_direct {\n" +
+ " 0 I3_direct 20 \"/J4/BaseClass_I3\"\n" +
+ " 20 GG1_direct 8 \"/J4/BaseClass_GG1\"\n" +
+ " 28 I_direct 20 \"/J4/BaseClass_I\"\n" +
+ " 48 A_direct 8 \"/J4/BaseClass_A\"\n" +
+ " 56 undefined4 4 j41 \"\"\n" +
+ "}\n" +
"Size = 60 Actual Alignment = 4";
//@formatter:on
return expected;
@@ -7798,123 +7797,123 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ4_64() {
String expected =
//@formatter:off
- "/J4\n" +
- "pack()\n" +
- "Structure J4 {\n" +
- " 0 J4_direct 112 \"\"\n" +
- " 112 C_direct 4 \"(Virtual Base C)\"\n" +
- " 116 E_direct 4 \"(Virtual Base E)\"\n" +
- " 120 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- " 124 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- " 128 GG2_direct 16 \"(Virtual Base GG2)\"\n" +
- " 144 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
- "}\n" +
- "Size = 160 Actual Alignment = 8\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg21 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i1 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i31 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/J4/J4_direct\n" +
- "pack()\n" +
- "Structure J4_direct {\n" +
- " 0 I3_direct 40 \"\"\n" +
- " 40 GG1_direct 16 \"\"\n" +
- " 56 I_direct 40 \"\"\n" +
- " 96 A_direct 8 \"\"\n" +
- " 104 undefined4 4 j41 \"\"\n" +
- "}\n" +
+ "/J4\n" +
+ "pack()\n" +
+ "Structure J4 {\n" +
+ " 0 J4_direct 112 \"\"\n" +
+ " 112 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 116 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 120 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ " 124 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ " 128 GG2_direct 16 \"(Virtual Base GG2)\"\n" +
+ " 144 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
+ "}\n" +
+ "Size = 160 Actual Alignment = 8\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 8 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 8 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 8 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 16 \"/I/BaseClass_G\"\n" +
+ " 16 H_direct 16 \"/I/BaseClass_H\"\n" +
+ " 32 undefined4 4 i1 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 16 \"/I3/BaseClass_G1\"\n" +
+ " 16 H1_direct 16 \"/I3/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i31 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/J4/J4_direct\n" +
+ "pack()\n" +
+ "Structure J4_direct {\n" +
+ " 0 I3_direct 40 \"/J4/BaseClass_I3\"\n" +
+ " 40 GG1_direct 16 \"/J4/BaseClass_GG1\"\n" +
+ " 56 I_direct 40 \"/J4/BaseClass_I\"\n" +
+ " 96 A_direct 8 \"/J4/BaseClass_A\"\n" +
+ " 104 undefined4 4 j41 \"\"\n" +
+ "}\n" +
"Size = 112 Actual Alignment = 8";
//@formatter:on
return expected;
@@ -8051,123 +8050,123 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ5_32() {
String expected =
//@formatter:off
- "/J5\n" +
- "pack()\n" +
- "Structure J5 {\n" +
- " 0 J5_direct 60 \"\"\n" +
- " 60 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- " 64 GG2_direct 8 \"(Virtual Base GG2)\"\n" +
- " 72 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
- " 80 C_direct 4 \"(Virtual Base C)\"\n" +
- " 84 E_direct 4 \"(Virtual Base E)\"\n" +
- " 88 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- "}\n" +
- "Size = 92 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg21 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 8 \"\"\n" +
- " 8 H_direct 8 \"\"\n" +
- " 16 undefined4 4 i1 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 8 \"\"\n" +
- " 8 H1_direct 8 \"\"\n" +
- " 16 undefined4 4 i31 \"\"\n" +
- "}\n" +
- "Size = 20 Actual Alignment = 4\n" +
- "/J5/J5_direct\n" +
- "pack()\n" +
- "Structure J5_direct {\n" +
- " 0 I3_direct 20 \"\"\n" +
- " 20 GG1_direct 8 \"\"\n" +
- " 28 I_direct 20 \"\"\n" +
- " 48 A_direct 8 \"\"\n" +
- " 56 undefined4 4 j51 \"\"\n" +
- "}\n" +
+ "/J5\n" +
+ "pack()\n" +
+ "Structure J5 {\n" +
+ " 0 J5_direct 60 \"\"\n" +
+ " 60 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ " 64 GG2_direct 8 \"(Virtual Base GG2)\"\n" +
+ " 72 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
+ " 80 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 84 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 88 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ "}\n" +
+ "Size = 92 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G\"\n" +
+ " 4 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for G1\"\n" +
+ " 4 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 4 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 4 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 4 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H\"\n" +
+ " 4 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for H1\"\n" +
+ " 4 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 8 \"/I/BaseClass_G\"\n" +
+ " 8 H_direct 8 \"/I/BaseClass_H\"\n" +
+ " 16 undefined4 4 i1 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 8 \"/I3/BaseClass_G1\"\n" +
+ " 8 H1_direct 8 \"/I3/BaseClass_H1\"\n" +
+ " 16 undefined4 4 i31 \"\"\n" +
+ "}\n" +
+ "Size = 20 Actual Alignment = 4\n" +
+ "/J5/J5_direct\n" +
+ "pack()\n" +
+ "Structure J5_direct {\n" +
+ " 0 I3_direct 20 \"/J5/BaseClass_I3\"\n" +
+ " 20 GG1_direct 8 \"/J5/BaseClass_GG1\"\n" +
+ " 28 I_direct 20 \"/J5/BaseClass_I\"\n" +
+ " 48 A_direct 8 \"/J5/BaseClass_A\"\n" +
+ " 56 undefined4 4 j51 \"\"\n" +
+ "}\n" +
"Size = 60 Actual Alignment = 4";
//@formatter:on
@@ -8326,123 +8325,123 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ5_64() {
String expected =
//@formatter:off
- "/J5\n" +
- "pack()\n" +
- "Structure J5 {\n" +
- " 0 J5_direct 112 \"\"\n" +
- " 112 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
- " 120 GG2_direct 16 \"(Virtual Base GG2)\"\n" +
- " 136 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
- " 152 C_direct 4 \"(Virtual Base C)\"\n" +
- " 156 E_direct 4 \"(Virtual Base E)\"\n" +
- " 160 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
- "}\n" +
- "Size = 168 Actual Alignment = 8\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/C/C_direct\n" +
- "pack()\n" +
- "Structure C_direct {\n" +
- " 0 undefined4 4 c1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC1/CC1_direct\n" +
- "pack()\n" +
- "Structure CC1_direct {\n" +
- " 0 undefined4 4 cc11 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/E/E_direct\n" +
- "pack()\n" +
- "Structure E_direct {\n" +
- " 0 undefined4 4 e1 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/G/G_direct\n" +
- "pack()\n" +
- "Structure G_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/G1/G1_direct\n" +
- "pack()\n" +
- "Structure G1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 g11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG1/GG1_direct\n" +
- "pack()\n" +
- "Structure GG1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG2/GG2_direct\n" +
- "pack()\n" +
- "Structure GG2_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg21 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H/H_direct\n" +
- "pack()\n" +
- "Structure H_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h1 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/H1/H1_direct\n" +
- "pack()\n" +
- "Structure H1_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 h11 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/I/I_direct\n" +
- "pack()\n" +
- "Structure I_direct {\n" +
- " 0 G_direct 16 \"\"\n" +
- " 16 H_direct 16 \"\"\n" +
- " 32 undefined4 4 i1 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/I3/I3_direct\n" +
- "pack()\n" +
- "Structure I3_direct {\n" +
- " 0 G1_direct 16 \"\"\n" +
- " 16 H1_direct 16 \"\"\n" +
- " 32 undefined4 4 i31 \"\"\n" +
- "}\n" +
- "Size = 40 Actual Alignment = 8\n" +
- "/J5/J5_direct\n" +
- "pack()\n" +
- "Structure J5_direct {\n" +
- " 0 I3_direct 40 \"\"\n" +
- " 40 GG1_direct 16 \"\"\n" +
- " 56 I_direct 40 \"\"\n" +
- " 96 A_direct 8 \"\"\n" +
- " 104 undefined4 4 j51 \"\"\n" +
- "}\n" +
+ "/J5\n" +
+ "pack()\n" +
+ "Structure J5 {\n" +
+ " 0 J5_direct 112 \"\"\n" +
+ " 112 CC2_direct 4 \"(Virtual Base CC2)\"\n" +
+ " 120 GG2_direct 16 \"(Virtual Base GG2)\"\n" +
+ " 136 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
+ " 152 C_direct 4 \"(Virtual Base C)\"\n" +
+ " 156 E_direct 4 \"(Virtual Base E)\"\n" +
+ " 160 CC1_direct 4 \"(Virtual Base CC1)\"\n" +
+ "}\n" +
+ "Size = 168 Actual Alignment = 8\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/C/C_direct\n" +
+ "pack()\n" +
+ "Structure C_direct {\n" +
+ " 0 undefined4 4 c1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC1/CC1_direct\n" +
+ "pack()\n" +
+ "Structure CC1_direct {\n" +
+ " 0 undefined4 4 cc11 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/E/E_direct\n" +
+ "pack()\n" +
+ "Structure E_direct {\n" +
+ " 0 undefined4 4 e1 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/G/G_direct\n" +
+ "pack()\n" +
+ "Structure G_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G\"\n" +
+ " 8 undefined4 4 g1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/G1/G1_direct\n" +
+ "pack()\n" +
+ "Structure G1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for G1\"\n" +
+ " 8 undefined4 4 g11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG1/GG1_direct\n" +
+ "pack()\n" +
+ "Structure GG1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG1\"\n" +
+ " 8 undefined4 4 gg11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG2/GG2_direct\n" +
+ "pack()\n" +
+ "Structure GG2_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG2\"\n" +
+ " 8 undefined4 4 gg21 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 8 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H/H_direct\n" +
+ "pack()\n" +
+ "Structure H_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H\"\n" +
+ " 8 undefined4 4 h1 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/H1/H1_direct\n" +
+ "pack()\n" +
+ "Structure H1_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for H1\"\n" +
+ " 8 undefined4 4 h11 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/I/I_direct\n" +
+ "pack()\n" +
+ "Structure I_direct {\n" +
+ " 0 G_direct 16 \"/I/BaseClass_G\"\n" +
+ " 16 H_direct 16 \"/I/BaseClass_H\"\n" +
+ " 32 undefined4 4 i1 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/I3/I3_direct\n" +
+ "pack()\n" +
+ "Structure I3_direct {\n" +
+ " 0 G1_direct 16 \"/I3/BaseClass_G1\"\n" +
+ " 16 H1_direct 16 \"/I3/BaseClass_H1\"\n" +
+ " 32 undefined4 4 i31 \"\"\n" +
+ "}\n" +
+ "Size = 40 Actual Alignment = 8\n" +
+ "/J5/J5_direct\n" +
+ "pack()\n" +
+ "Structure J5_direct {\n" +
+ " 0 I3_direct 40 \"/J5/BaseClass_I3\"\n" +
+ " 40 GG1_direct 16 \"/J5/BaseClass_GG1\"\n" +
+ " 56 I_direct 40 \"/J5/BaseClass_I\"\n" +
+ " 96 A_direct 8 \"/J5/BaseClass_A\"\n" +
+ " 104 undefined4 4 j51 \"\"\n" +
+ "}\n" +
"Size = 112 Actual Alignment = 8";
//@formatter:on
@@ -8531,49 +8530,49 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ6_32() {
String expected =
//@formatter:off
- "/J6\n" +
- "pack()\n" +
- "Structure J6 {\n" +
- " 0 J6_direct 16 \"\"\n" +
- " 16 GG4_direct 8 \"(Virtual Base GG4)\"\n" +
- " 24 CC2_direct 4 \"(Virtual Base (empty) CC3)(Virtual Base CC2)\"\n" +
- " 28 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
- "}\n" +
- "Size = 36 Actual Alignment = 4\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/GG4/GG4_direct\n" +
- "pack()\n" +
- "Structure GG4_direct {\n" +
- " 0 int * 4 {vbptr} \"\"\n" +
- " 4 undefined4 4 gg41 \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/J6/J6_direct\n" +
- "pack()\n" +
- "Structure J6_direct {\n" +
- " 0 A_direct 8 \"\"\n" +
- " 8 int * 4 {vbptr} \"\"\n" +
- " 12 undefined4 4 j61 \"\"\n" +
- "}\n" +
+ "/J6\n" +
+ "pack()\n" +
+ "Structure J6 {\n" +
+ " 0 J6_direct 16 \"\"\n" +
+ " 16 GG4_direct 8 \"(Virtual Base GG4)\"\n" +
+ " 24 CC2_direct 4 \"(Virtual Base (empty) CC3)(Virtual Base CC2)\"\n" +
+ " 28 GG3_direct 8 \"(Virtual Base GG3)\"\n" +
+ "}\n" +
+ "Size = 36 Actual Alignment = 4\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 4 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/GG4/GG4_direct\n" +
+ "pack()\n" +
+ "Structure GG4_direct {\n" +
+ " 0 int * 4 {vbptr} \"{vbptr} for GG4\"\n" +
+ " 4 undefined4 4 gg41 \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/J6/J6_direct\n" +
+ "pack()\n" +
+ "Structure J6_direct {\n" +
+ " 0 A_direct 8 \"/J6/BaseClass_A\"\n" +
+ " 8 int * 4 {vbptr} \"{vbptr} for J6\"\n" +
+ " 12 undefined4 4 j61 \"\"\n" +
+ "}\n" +
"Size = 16 Actual Alignment = 4";
//@formatter:on
@@ -8667,49 +8666,49 @@ public class CppCompositeTypeTest extends AbstractGenericTest {
private String getExpectedJ6_64() {
String expected =
//@formatter:off
- "/J6\n" +
- "pack()\n" +
- "Structure J6 {\n" +
- " 0 J6_direct 24 \"\"\n" +
- " 24 GG4_direct 16 \"(Virtual Base GG4)\"\n" +
- " 40 CC2_direct 4 \"(Virtual Base (empty) CC3)(Virtual Base CC2)\"\n" +
- " 48 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
- "}\n" +
- "Size = 64 Actual Alignment = 8\n" +
- "/A/A_direct\n" +
- "pack()\n" +
- "Structure A_direct {\n" +
- " 0 undefined1 1 c \"\"\n" +
- " 4 undefined4 4 i \"\"\n" +
- "}\n" +
- "Size = 8 Actual Alignment = 4\n" +
- "/CC2/CC2_direct\n" +
- "pack()\n" +
- "Structure CC2_direct {\n" +
- " 0 undefined4 4 cc21 \"\"\n" +
- "}\n" +
- "Size = 4 Actual Alignment = 4\n" +
- "/GG3/GG3_direct\n" +
- "pack()\n" +
- "Structure GG3_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg31 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/GG4/GG4_direct\n" +
- "pack()\n" +
- "Structure GG4_direct {\n" +
- " 0 int * 8 {vbptr} \"\"\n" +
- " 8 undefined4 4 gg41 \"\"\n" +
- "}\n" +
- "Size = 16 Actual Alignment = 8\n" +
- "/J6/J6_direct\n" +
- "pack()\n" +
- "Structure J6_direct {\n" +
- " 0 A_direct 8 \"\"\n" +
- " 8 int * 8 {vbptr} \"\"\n" +
- " 16 undefined4 4 j61 \"\"\n" +
- "}\n" +
+ "/J6\n" +
+ "pack()\n" +
+ "Structure J6 {\n" +
+ " 0 J6_direct 24 \"\"\n" +
+ " 24 GG4_direct 16 \"(Virtual Base GG4)\"\n" +
+ " 40 CC2_direct 4 \"(Virtual Base (empty) CC3)(Virtual Base CC2)\"\n" +
+ " 48 GG3_direct 16 \"(Virtual Base GG3)\"\n" +
+ "}\n" +
+ "Size = 64 Actual Alignment = 8\n" +
+ "/A/A_direct\n" +
+ "pack()\n" +
+ "Structure A_direct {\n" +
+ " 0 undefined1 1 c \"\"\n" +
+ " 4 undefined4 4 i \"\"\n" +
+ "}\n" +
+ "Size = 8 Actual Alignment = 4\n" +
+ "/CC2/CC2_direct\n" +
+ "pack()\n" +
+ "Structure CC2_direct {\n" +
+ " 0 undefined4 4 cc21 \"\"\n" +
+ "}\n" +
+ "Size = 4 Actual Alignment = 4\n" +
+ "/GG3/GG3_direct\n" +
+ "pack()\n" +
+ "Structure GG3_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG3\"\n" +
+ " 8 undefined4 4 gg31 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/GG4/GG4_direct\n" +
+ "pack()\n" +
+ "Structure GG4_direct {\n" +
+ " 0 int * 8 {vbptr} \"{vbptr} for GG4\"\n" +
+ " 8 undefined4 4 gg41 \"\"\n" +
+ "}\n" +
+ "Size = 16 Actual Alignment = 8\n" +
+ "/J6/J6_direct\n" +
+ "pack()\n" +
+ "Structure J6_direct {\n" +
+ " 0 A_direct 8 \"/J6/BaseClass_A\"\n" +
+ " 8 int * 8 {vbptr} \"{vbptr} for J6\"\n" +
+ " 16 undefined4 4 j61 \"\"\n" +
+ "}\n" +
"Size = 24 Actual Alignment = 8";
//@formatter:on