public void addReference(long offset, DataType dt) {
		if (dt != null && dt instanceof Pointer) {
			dt = ((Pointer) dt).getDataType();
			if (dt != null && dt.equals(structDT)) {
				return;		// Don't allow structure to contain itself
			}
			if (dt instanceof Structure) {
				if (((Structure) dt).getNumDefinedComponents() == 0) {
					computeMax(offset, 1);
					return;
				}
			}
			addDataType(offset, dt);
		}
		else {
			computeMax(offset, 1);
		}
	}
Adds information for a field given a pointer reference.
The data-type information is not used unless it is a pointer.
@param offset is the offset of the field within the structure
@param dt is the data-type of the pointer to the field (or null)
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/NoisyStructureBuilder.java