private int popuplateConflictList(List<DataType> conflictList, Category category) {

		int count = 0;
		for (Category childCategory : category.getCategories()) {
			count += popuplateConflictList(conflictList, childCategory);
		}

		DataType[] dataTypes = category.getDataTypes();
		Arrays.sort(dataTypes, DataTypeComparator.INSTANCE);

		String lastBaseName = null;
		boolean lastHadConflict = false;

		for (DataType dt : dataTypes) {
			if (dt instanceof Pointer || dt instanceof Array) {
				continue;
			}
			boolean isConflict = DataTypeUtilities.isConflictDataType(dt);
			String name = DataTypeUtilities.getNameWithoutConflict(dt, false);
			if (!name.equals(lastBaseName)) {
				// base name changed
				lastBaseName = name;
				lastHadConflict = false;
				if (isConflict) {
					// non-conflict type is not present
					conflictList.add(dt);
					lastHadConflict = true;
					++count;
				}
			}
			else if (isConflict) {
				if (!lastHadConflict) {
					// account for non-conflict type in count
					conflictList.add(dt);
					lastHadConflict = true;
					++count;
				}
				++count;
			}
		}
		return count;
	}
De-duplicate equivalent conflict datatypes which share a common base data type name and
are found to be equivalent.

@param monitor task monitor
@throws CancelledException if task is cancelled
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeManagerDB.java