private boolean clearAllUndefined(Program program, Address start, int lenBytes) {
		if (lenBytes < 1) {
			return false;
		}

		AddressSet set = new AddressSet(start, start.add(lenBytes - 1));

		if (program.getListing().isUndefined(set.getMinAddress(), set.getMaxAddress())) {
			return true;
		}

		CodeUnitIterator iter = program.getListing().getCodeUnits(set, true);

		// check that all real code units are undefined
		while (iter.hasNext()) {
			CodeUnit codeUnit = iter.next();
			// found something not data, return
			if (!(codeUnit instanceof Data)) {
				return false;
			}
			Data data = (Data) codeUnit;
			DataType dt = data.getDataType();
			// not undefined data
			if (!(Undefined.isUndefined(dt))) {
				return false;
			}
		}
		program.getListing().clearCodeUnits(set.getMinAddress(), set.getMaxAddress(), false);
		return true;
	}
Check if the set of bytes that should be used is all undefined, or all undefined data types.
It means that whatever laid things down here only knew that something was accessed of 
some size.

@param program
@param start
@param lenBytes
@return false if data couldn't be cleared away
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/OperandReferenceAnalyzer.java