public void setStorageAndDataType(VariableStorage newStorage, DataType dt) {
		Lock myLock = symbolMgr.getLock();
		myLock.acquire();
		try {
			checkDeleted();

			long dataTypeID = symbolMgr.getProgram().getDataTypeManager().getResolvedID(dt);

			variableStorage = newStorage;
			Address newAddr = variableMgr.getVariableStorageAddress(newStorage, true);
			setAddress(newAddr); // this may be the only symbol which changes its address

			if (dataTypeID != getDataTypeId()) {
				setDataTypeId(dataTypeID);
			}
			else {
				symbolMgr.symbolDataChanged(this);
			}
		}
		catch (IOException e) {
			symbolMgr.dbError(e);
		}
		finally {
			myLock.release();
		}
	}
Change the storage address and data-type associated with this variable symbol.
@param newStorage the new storage
@param dt data-type
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/VariableSymbolDB.java