The high-level FFI creates callable in-memory wrappers, so only "memory"
output is supported. Executable and shared-library artifact output requires
the low-level tcc_state() and tcc_output_file() path and is rejected here
rather than returning dangling callable addresses.