/* semsig_stub.c - the OFF (no-backend) path of the semantic-signature feature. * * Built into the library ONLY when VMIE_DISASM=OFF (the default). It provides * the full public generic surface so the ABI is stable - linking never fails * for a missing symbol - while the feature is not present: * semsig_hash -> 0 (the same "no hash" sentinel as func_hash) * semsig_backend_name -> "none" * Callers tell "feature off" from "empty/undecodable function" via the compile- * time macro VMIE_HAVE_DISASM (0 here), NOT via the runtime 0. * * In the OFF build semsig.c is NOT compiled (it calls the backend decode, which * does not exist without a backend); this stub is the whole generic symbol. See * CMakeLists.txt for the source-selection logic. */ #include #include "semsig.h" uint64_t semsig_hash(mem_view_t fn) __attribute__((cold)); uint64_t semsig_hash(mem_view_t fn) { (void)fn; return 0; /* feature not built: same sentinel as func_hash */ } const char* semsig_backend_name(void) { return "none"; }