diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java index 4274fa637e..fffaed47c1 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java @@ -87,9 +87,9 @@ public class PcodeDataTypeManager { private DataOrganization dataOrganization; private DecompilerLanguage displayLanguage; private boolean voidInputIsVarargs; // true if we should consider void parameter lists as varargs - // Some C header conventions use an empty prototype to mean a - // varargs function. Locking in void can cause data-flow to get - // truncated. This boolean controls whether we lock it in or not + // Some C header conventions use an empty prototype to mean a + // varargs function. Locking in void can cause data-flow to get + // truncated. This boolean controls whether we lock it in or not private TypeMap[] coreBuiltin; // Core decompiler datatypes and how they map to full datatype objects private VoidDataType voidDt; private int pointerWordSize; // Wordsize to assign to all pointer datatypes @@ -390,6 +390,10 @@ public class PcodeDataTypeManager { resBuf.append(">\n"); DataTypeComponent[] comps = ((Structure) type).getDefinedComponents(); for (DataTypeComponent comp : comps) { + if (comp.isBitFieldComponent()) { + // TODO: bitfields are not yet supported by decompiler + continue; + } resBuf.append("\n"); } + // TODO: trailing flexible array component not yet supported } else if (type instanceof Enum) { Enum enumDt = (Enum) type;