@Override
	public void fixupDWARFFunction(DWARFFunction dfunc) throws DWARFException {
		if (!isGolangFunction(dfunc) || !initGoBinaryContext(dfunc, TaskMonitor.DUMMY)) {
			return;
		}

		GoFuncData funcData = goBinary.getFunctionData(dfunc.address);
		if (funcData == null) {
			appendComment(dfunc.function, GOLANG_FUNC_INFO_PREFIX, "No function data");
			dfunc.signatureCommitMode = CommitMode.SKIP;
			return;
		}
		if (!funcData.getFlags().isEmpty()) {
			// Don't apply any DWARF info to special functions (ASM) as they are typically
			// marked as no-params, but in reality they do have params passed in a non-standard way.
			dfunc.signatureCommitMode = CommitMode.SKIP;
			return;
		}

		DataTypeManager dtm = goBinary.getProgram().getDataTypeManager();
		GoParamStorageAllocator storageAllocator = goBinary.newStorageAllocator();

		if (goBinary.isGolangAbi0Func(dfunc.function)) {
			// Some (typically lower level) functions in the binary will be marked with a 
			// symbol that ends in the string "abi0".  
			// Throw away all registers and force stack allocation for everything 
			storageAllocator.setAbi0Mode();
		}

		dfunc.callingConventionName =
			storageAllocator.isAbi0Mode() ? GoConstants.GOLANG_ABI0_CALLINGCONVENTION_NAME
					: GoConstants.GOLANG_ABI_INTERNAL_CALLINGCONVENTION_NAME;

		GoFunctionMultiReturn multiReturnInfo = fixupFormalFuncDef(dfunc, storageAllocator, dtm);
		fixupCustomStorage(dfunc, storageAllocator, dtm, multiReturnInfo);
	}
Returns true if the specified {@link DWARFFunction} wrapper refers to a function in a golang
compile unit.

@param dfunc {@link DWARFFunction}
@return boolean true or false
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GolangDWARFFunctionFixup.java