public void commitLocalVariable(DWARFVariable dvar) {

		VariableStorage varStorage = null;
		try {
			varStorage = dvar.getVariableStorage();
			if (hasConflictWithParamStorage(dvar)) {
				getProgram().logWarningAt(function.getEntryPoint(), function.getName(),
					"Local variable %s[%s] conflicts with parameter, skipped."
							.formatted(dvar.getDeclInfoString(), varStorage));
				return;
			}

			if (hasConflictWithExistingLocalVariableStorage(dvar)) {
				getProgram().logWarningAt(function.getEntryPoint().add(dvar.lexicalOffset),
					function.getName(), "Local omitted variable %s[%s] scope starts here"
							.formatted(dvar.getDeclInfoString(), varStorage));
				return;
			}

			NameDeduper nameDeduper = new NameDeduper();
			nameDeduper.addReservedNames(getAllLocalVariableNames());
			nameDeduper.addUsedNames(getAllParamNames());
			nameDeduper.addUsedNames(getExistingLocalVariableNames());

			Variable var = dvar.asLocalVariable();
			String origName = var.getName();
			String newName = nameDeduper.getUniqueName(origName);
			if (newName != null) {
				try {
					var.setName(newName, null);
				}
				catch (DuplicateNameException | InvalidInputException e) {
					// can't happen
				}
				var.setComment("Original name: " + origName);
			}

			VariableUtilities.checkVariableConflict(function, var, varStorage, true);
			function.addLocalVariable(var, SourceType.IMPORTED);
		}
		catch (InvalidInputException | DuplicateNameException e) {
			getProgram()
					.logWarningAt(function.getEntryPoint().add(dvar.lexicalOffset),
						function.getName(),
				"Local omitted variable %s[%s] scope starts here".formatted(
					dvar.getDeclInfoString(),
							varStorage != null ? varStorage.toString() : "UNKNOWN"));
		}
	}
Returns the parameters of this function as {@link ParameterDefinition}s.

@return array of {@link ParameterDefinition}s
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFFunction.java