diff --git a/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/extension/datatype/finder/DecompilerReference.java b/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/extension/datatype/finder/DecompilerReference.java index eb30d9d0d2..820110696c 100644 --- a/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/extension/datatype/finder/DecompilerReference.java +++ b/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/extension/datatype/finder/DecompilerReference.java @@ -156,15 +156,20 @@ public abstract class DecompilerReference { public static DataType getFieldDataType(ClangFieldToken field) { DataType fieldDt = field.getDataType(); fieldDt = DecompilerReference.getBaseType(fieldDt); - if (fieldDt instanceof Structure) { - Structure parent = (Structure) fieldDt; - int offset = field.getOffset(); - int n = parent.getLength(); - if (offset >= 0 && offset < n) { - DataTypeComponent dtc = parent.getComponentContaining(field.getOffset()); + if (!(fieldDt instanceof Structure)) { + return fieldDt; + } + + Structure parent = (Structure) fieldDt; + int offset = field.getOffset(); + int n = parent.getLength(); + if (offset >= 0 && offset < n) { + DataTypeComponent dtc = parent.getComponentContaining(field.getOffset()); + if (dtc != null) { fieldDt = dtc.getDataType(); } } + return fieldDt; }