diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/FunctionDefinitionDataType.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/FunctionDefinitionDataType.java index 6106c52170..4e518c3108 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/FunctionDefinitionDataType.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/FunctionDefinitionDataType.java @@ -97,11 +97,13 @@ public class FunctionDefinitionDataType extends GenericDataType implements Funct Parameter[] parameters = function.getParameters(); ArrayList paramList = new ArrayList(); + int ordinalAdjustment = 0; for (Parameter parameter : parameters) { if (formalSignature && parameter.isAutoParameter()) { + --ordinalAdjustment; continue; } - paramList.add(getParameterDefinition(parameter, formalSignature)); + paramList.add(getParameterDefinition(parameter, formalSignature, ordinalAdjustment)); } params = paramList.toArray(new ParameterDefinition[paramList.size()]); @@ -117,10 +119,11 @@ public class FunctionDefinitionDataType extends GenericDataType implements Funct } } - private ParameterDefinition getParameterDefinition(Parameter param, boolean useFormalType) { + private ParameterDefinition getParameterDefinition(Parameter param, boolean useFormalType, + int ordinalAdjustment) { return new ParameterDefinitionImpl(param.getName(), useFormalType ? param.getFormalDataType() : param.getDataType(), param.getComment(), - param.getOrdinal()); + param.getOrdinal() + ordinalAdjustment); } private void init(FunctionSignature sig) {