private boolean checkIfCouldHaveFallThruTo(Program program, Address location) {
		Instruction instr = program.getListing().getInstructionAt(location);
		if (instr == null) {
			return true;
		}
		Address fallFrom = instr.getFallFrom();
		if (fallFrom != null) {
			Instruction fallInstr = program.getListing().getInstructionContaining(fallFrom);
			if (fallInstr != null && location.equals(fallInstr.getFallThrough())) {
				// if there is no instruction yet, function may not be created yet
				return true;
			}
		}

		if (instr.getFlowType() == RefType.TERMINATOR) {
			// a single instruction that is terminal consider
			// as having a possible future fallthru to
			return true;
		}
		return false;
	}
Constructor
@param set set of addresses over which destination functions will be
examined for Jump reference to those functions.
@param assumeContiguousFunctions if true it will be assumed that any unconditional
jump over another function will trigger a call-return override and the creation of
@param considerConditionalBranches if true conditional jumps can also be considered for jumping
to another function as a shared return.
a function at the destination.
Ghidra/Features/Base/src/main/java/ghidra/app/cmd/analysis/SharedReturnAnalysisCmd.java