PUBLIC void end_assume(tree cxt) { int i; assume = FALSE; for (i = 0; i < n_assumes; i++) if (a_table[i].a_refs == 1) { tc_warn(cxt->x_loc, "implicitly quantified name %n appears only once", a_table[i].a_name); tc_e_etc("Predicate: %z", cxt); tc_e_end(); } }
static int test_mangle_option(int argc, char **argv, const char *option, int hasval) { int ac = argc, i = 0, ret; char *av[MAX_OPTS]; const char *useless = NULL; assert(argc <= MAX_OPTS); for (i = 0; i < argc; i++) { av[i] = argv[i]; } ret = tc_mangle_cmdline(&argc, &argv, option, (hasval) ?(&useless) :NULL); tc_info("mangling: %i", ret); if (ret != 0) { DUMP_OPTS(argc, argv); if (ac != argc) { tc_warn("missing argument (argc not changed)"); return 1; } for (i = 0; i < argc; i++) { if (av[i] != argv[i] || strcmp(av[i], argv[i]) != 0) { tc_warn("argument diversion (%s VS %s @ %i)", av[i], argv[i], i); return 1; } } if (!in_set(option, (const char **)argv, argc)) { tc_warn("option still present"); return 1; } } else { int na = ac - ((hasval) ?2 :1); DUMP_OPTS(argc, argv); if (na != argc) { tc_warn("argument number mismatch (expected %i|got %i)", na, argc); return 1; } if (in_set(option, (const char **)argv, argc)) { tc_warn("option still present"); return 1; } for (i = 0; i < ac; i++) { if (!in_set(argv[i], (const char **)av, ac)) { tc_warn("missing argument: %s", argv[i]); return 1; } } } return 0; }
void *load_module(const char *mod_name, int mode) { const char *error; void *handle; if (mode & TC_EXPORT) { tc_snprintf(module, sizeof(module), "%s/export_%s.so", ((mod_path==NULL)? MODULE_PATH:mod_path), mod_name); tc_debug(TC_DEBUG_MODULES, "loading %s export module %s", ((mode & TC_VIDEO)? "video": "audio"), module); handle = dlopen(module, RTLD_GLOBAL| RTLD_LAZY); if (!handle) { error = dlerror(); tc_warn("%s", error); tc_warn("(%s) loading \"%s\" failed", __FILE__, module); return(NULL); } if (mode & TC_VIDEO) { TCV_export = dlsym(handle, "tc_export"); error = dlerror(); if (error != NULL) { tc_warn("%s", error); return(NULL); } } if (mode & TC_AUDIO) { TCA_export = dlsym(handle, "tc_export"); error = dlerror(); if (error != NULL) { tc_warn("%s", error); return(NULL); } } return(handle); } if (mode & TC_IMPORT) { tc_snprintf(module, sizeof(module), "%s/import_%s.so", ((mod_path==NULL)? MODULE_PATH:mod_path), mod_name); tc_debug(TC_DEBUG_MODULES, "loading %s import module %s", ((mode & TC_VIDEO)? "video": "audio"), module); handle = dlopen(module, RTLD_GLOBAL| RTLD_LAZY); if (!handle) { error = dlerror(); tc_warn("%s", error); return(NULL); } if (mode & TC_VIDEO) { TCV_import = dlsym(handle, "tc_import"); error = dlerror(); if (error != NULL) { tc_warn("%s", error); return(NULL); } } if(mode & TC_AUDIO) { TCA_import = dlsym(handle, "tc_import"); error = dlerror(); if (error != NULL) { tc_warn("%s", error); return(NULL); } } return(handle); } // wrong mode? return(NULL); }