private void outputGlobal(DWARFVariable globalVar) {
		if (globalVar == null) {
			return;
		}

		Namespace namespace = globalVar.name.getParentNamespace(currentProgram);
		String name = globalVar.name.getName();
		Address address = globalVar.getRamAddress();
		DataType dataType = globalVar.type;

		SymbolTable symbolTable = currentProgram.getSymbolTable();
		Symbol labelSym = null;

		if (!currentProgram.getMemory().contains(address)) {
			if (!globalVar.isZeroByte()) {
				Msg.error(this, "Invalid location for global variable %s:%s @%s".formatted(name,
					dataType.getName(), address));
			}
			return;
		}

		if (globalVar.isZeroByte() || !variablesProcesesed.contains(address)) {
			try {
				labelSym = symbolTable.createLabel(address, name, namespace, SourceType.IMPORTED);
			}
			catch (InvalidInputException e) {
				Msg.error(this, "Error creating label for global variable %s/%s at %s"
						.formatted(namespace, name, address));
				return;
			}
		}

		if (globalVar.isZeroByte()) {
			// because this is a zero-length data type (ie. array[0]),
			// don't create a variable at the location since it will prevent other elements
			// from occupying the same offset
			appendComment(address, CommentType.PRE,
				"Zero length variable: %s: %s".formatted(name, dataType.getDisplayName()), "\n");

			return;
		}

		if (variablesProcesesed.contains(address)) {
			return;
		}

		labelSym.setPrimary();

		if (globalVar.isExternal) {
			setExternalEntryPoint(true, address);
		}

		if (dataType instanceof Dynamic || dataType instanceof FactoryDataType) {
			appendComment(address, CommentType.EOL,
				"Unsupported dynamic data type: " + dataType, "\n");
			dataType = Undefined.getUndefinedDataType(1);
		}
		DWARFDataInstanceHelper dih = new DWARFDataInstanceHelper(currentProgram);
		if (!dih.isDataTypeCompatibleWithAddress(dataType, address)) {
			appendComment(address, CommentType.EOL,
				"Could not place DWARF static variable %s: %s @%s because existing data type conflicts."
						.formatted(name, dataType.getName(), address),
				"\n");
		}
		else {
			try {
				Data varData = DataUtilities.createData(currentProgram, address, dataType, -1,
					ClearDataMode.CLEAR_ALL_CONFLICT_DATA);
				if (varData != null && globalVar.sourceInfo != null) {
					AddressSet dataRng =
						new AddressSet(varData.getMinAddress(), varData.getMaxAddress());
					moveIntoFragment(name, dataRng, globalVar.sourceInfo.filename());
				}
				variablesProcesesed.add(address);
				importSummary.globalVarsAdded++;
			}
			catch (CodeUnitInsertionException e) {
				Msg.error(this, "Error creating global variable %s:%s @%s: %s".formatted(name,
					dataType.getName(), address, e.getMessage()));
			}
		}

		if (globalVar.sourceInfo != null) {
			appendComment(address, CommentType.EOL, globalVar.sourceInfo.getDescriptionStr(), "\n");
		}
	}
Inline funcs shorter than this value receive comments at EOL instead of PRE
(ie. inline funcs that reduce down to a single operand or operand value)
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFFunctionImporter.java