@Override
	public boolean added(Program prog, AddressSetView set, TaskMonitor monitor, MessageLog log)
			throws CancelledException {

		try {
			this.program = prog;
			this.monitor = monitor;
			this.reasonList = new ArrayList<>();
			lastGetNextFuncAddress = null;

			monitor.setMessage("NoReturn - Finding non-returning functions");

			AddressSet noReturnSet = new AddressSet();

			boolean hadOtherSuspiciousFunctions = detectNoReturn(program, noReturnSet, set);

			// run again with the new known noReturnSet
			if (hadOtherSuspiciousFunctions) {
				detectNoReturn(program, noReturnSet, set);
			}

			// mark all detected non-returning functions
			AddressIterator noreturns = noReturnSet.getAddresses(true);
			for (Address address : noreturns) {
				monitor.checkCancelled();

				setFunctionNonReturning(program, address);

				monitor.setMessage("NoReturn - Clearing fallthrough at: " + address);
				setNoFallThru(program, address);

				monitor.setMessage("NoReturn - Fixup function bodies for: " + address);
				fixCallingFunctionBody(program, address);
			}

			// repair the damage for all non-returning functions
			if (repairDamageEnabled) {
				noreturns = noReturnSet.getAddresses(true);
				for (Address address : noreturns) {	
					AddressSet potentialDamagedLocations = findPotentialDamagedLocations(program, address);

					repairDamagedLocations(monitor, potentialDamagedLocations, noReturnSet);
				}

			}
		}
		finally {
			this.program = null;
			this.monitor = null;
			this.reasonList = null;
		}
		return true;
	}
Called when a function has been added. Looks at address for call
reference
@throws CancelledException  if monitor is cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/FindNoReturnFunctionsAnalyzer.java