@Test
	public void testDisassemblerCallFlowNoReturn() throws Exception {

		programBuilder.addBytesFallthrough(20);
		programBuilder.addBytesReturn(22);

		AddressSetView disAddrs = disassembler.disassemble(addr(20), null);
		AddressSet funcBody = addrset(range(20, 23));
		assertEquals(funcBody, disAddrs);

		verifyInstructionPresence();

		Function func = listing.createFunction("Foo", addr(20), funcBody, SourceType.USER_DEFINED);
		func.setNoReturn(true);

		programBuilder.addBytesCall(10, 20);
		programBuilder.addBytesReturn(12);// should not disassemble

		disAddrs = disassembler.disassemble(addr(10), null);
		assertEquals(addrset(range(10, 11)), disAddrs);

		verifyInstructionPresence(CollectionUtils.asSet(addr(12)));

		verifyNoBookmarks();

	}
10: call 20 --+ (start)
    12: ret       | (should not disassemble)
                  |
    20: or   <----+ (no-return)
    22: ret
    
Test call
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/program/disassemble/DisassemblerTest.java