/* GCC MELT GENERATED FILE warmelt-base+01.c - DO NOT EDIT */ /* secondary MELT generated C file of rank #1 */ #include "melt-run.h" /* used hash from melt-run.h when compiling this file: */ const char used_meltrun_md5_melt_f1[] = MELT_RUN_HASHMD5 /* from melt-run.h */ ; /**** warmelt-base+01.c declarations ****/ #define MELT_HAS_INITIAL_ENVIRONMENT 1 struct melt_callframe_st; /*defined in melt-runtime.h */ /**!!** *** Copyright 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Contributed by Basile Starynkevitch and Pierre Vittet This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . *****!!**/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_1_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_2_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_3_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_4_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_5_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_6_warmelt_base_COMPARE_NAMED_ALPHA (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_7_warmelt_base_ADD2OUT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_8_warmelt_base_ADD2OUT4NULL (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_9_warmelt_base_ADD2OUT4INTEGER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_10_warmelt_base_ADD2OUT4STRING (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_11_warmelt_base_ADD2OUT4STRBUF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_12_warmelt_base_ADD2OUT4CLONEDSYMB (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_13_warmelt_base_ADD2OUT4NAMED (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_14_warmelt_base_ADD2OUT4ROOTOBJECT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_15_warmelt_base_ADD2OUT4ANY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_16_warmelt_base_MAPSTRING_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_17_warmelt_base_MAPSTRING_ITERATE_TEST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_18_warmelt_base_MULTIPLE_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_19_warmelt_base_MULTIPLE_BACKWARD_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_20_warmelt_base_MULTIPLE_EVERY_BOTH (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_21_warmelt_base_RUN_ALL_PASS_EXECUTION_HOOKS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_22_warmelt_base_REGISTER_PASS_EXECUTION_HOOK (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_23_warmelt_base_LAMBDA___1__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_24_warmelt_base_UNREGISTER_PASS_EXECUTION_HOOK (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_25_warmelt_base_LAMBDA___2__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_26_warmelt_base_REGISTER_PRAGMA_HANDLER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_27_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_28_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_29_warmelt_base_PRE_GENERICIZE_HOOK_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_30_warmelt_base_MELT_FINISH_TYPE_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_31_warmelt_base_REGISTER_FINISH_TYPE_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_32_warmelt_base_REGISTER_FINISH_TYPE_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_33_warmelt_base_MELT_FINISH_DECL_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_34_warmelt_base_REGISTER_FINISH_DECL_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_35_warmelt_base_REGISTER_FINISH_DECL_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_36_warmelt_base_MELT_ALL_PASSES_START_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_37_warmelt_base_REGISTER_ALL_PASSES_START_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_38_warmelt_base_REGISTER_ALL_PASSES_START_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_39_warmelt_base_MELT_ALL_PASSES_END_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_40_warmelt_base_REGISTER_ALL_PASSES_END_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_41_warmelt_base_REGISTER_ALL_PASSES_END_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_42_warmelt_base_MELT_ALL_IPA_PASSES_START_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_43_warmelt_base_REGISTER_ALL_IPA_PASSES_START_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_44_warmelt_base_REGISTER_ALL_IPA_PASSES_START_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_45_warmelt_base_MELT_ALL_IPA_PASSES_END_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_46_warmelt_base_REGISTER_ALL_IPA_PASSES_END_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_47_warmelt_base_REGISTER_ALL_IPA_PASSES_END_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_48_warmelt_base_MELT_EARLY_GIMPLE_PASSES_START_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_49_warmelt_base_REGISTER_EARLY_GIMPLE_PASSES_START_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_50_warmelt_base_REGISTER_EARLY_GIMPLE_PASSES_START_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_51_warmelt_base_MELT_EARLY_GIMPLE_PASSES_END_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_52_warmelt_base_REGISTER_EARLY_GIMPLE_PASSES_END_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_53_warmelt_base_REGISTER_EARLY_GIMPLE_PASSES_END_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_54_warmelt_base_SET_CONTENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_55_warmelt_base_INSTALL_VALUE_DESCRIPTOR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_56_warmelt_base_RETRIEVE_VALUE_DESCRIPTOR_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); void *start_module_melt (void *); /* define different names when debugging or not */ #if MELT_HAVE_DEBUG extern const char meltmodule_warmelt_base__melt_have_debug_enabled[]; #define melt_have_debug_string meltmodule_warmelt_base__melt_have_debug_enabled #else /*!MELT_HAVE_DEBUG */ extern const char meltmodule_warmelt_base__melt_have_debug_disabled[]; #define melt_have_debug_string meltmodule_warmelt_base__melt_have_debug_disabled #endif /*!MELT_HAVE_DEBUG */ struct frame_start_module_melt_st; void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_0 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_1 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_2 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_3 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_4 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_5 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_6 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_7 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_8 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_9 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_10 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_11 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_12 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_13 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_14 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_15 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_16 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_17 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_18 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_19 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_20 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_21 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_22 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_23 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_24 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_25 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_26 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_27 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_28 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_29 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_30 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_31 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_32 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_33 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_34 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_35 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_36 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_37 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_38 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_39 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_40 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_41 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_42 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_43 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_44 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY warmelt_base_initialmeltchunk_45 (struct frame_start_module_melt_st *, char *); static void forward_or_mark_module_start_frame_warmelt_base (struct melt_callframe_st *fp, int marking); /**** warmelt-base+01.c implementations ****/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_5_warmelt_base_IV (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_5_warmelt_base_IV_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 8 void *mcfr_varptr[8]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 8; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 8; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("%IV", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:210:/ getarg"); /*_.A__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.B__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.B__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_INTEGERBOX__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.A__V2*/ meltfptr[1])) == MELTOBMAG_INT);; MELT_LOCATION ("warmelt-base.melt:213:/ cond"); /*cond */ if ( /*_#IS_INTEGERBOX__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_INTEGERBOX__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.B__V3*/ meltfptr[2])) == MELTOBMAG_INT);; MELT_LOCATION ("warmelt-base.melt:214:/ cond"); /*cond */ if ( /*_#IS_INTEGERBOX__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:215:/ quasiblock"); /*_#IB__L3*/ meltfnum[2] = (melt_get_int ((melt_ptr_t) ( /*_.B__V3*/ meltfptr[2])));; MELT_LOCATION ("warmelt-base.melt:216:/ cond"); /*cond */ if ( /*_#IB__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#GET_INT__L4*/ meltfnum[3] = (melt_get_int ((melt_ptr_t) ( /*_.A__V2*/ meltfptr[1])));; /*^compute */ /*_#I__L5*/ meltfnum[4] = (melt_imod (( /*_#GET_INT__L4*/ meltfnum[3]), ( /*_#IB__L3*/ meltfnum[2])));; /*^compute */ /*_.MAKE_INTEGERBOX__V8*/ meltfptr[7] = (meltgc_new_int ((meltobject_ptr_t) (( /*!DISCR_CONSTANT_INTEGER */ meltfrout-> tabval[0])), ( /*_#I__L5*/ meltfnum[4])));; /*^compute */ /*_.IF___V7*/ meltfptr[6] = /*_.MAKE_INTEGERBOX__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:216:/ clear"); /*clear *//*_#GET_INT__L4*/ meltfnum[3] = 0; /*^clear */ /*clear *//*_#I__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_.MAKE_INTEGERBOX__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; /*^compute */ /*_.LET___V6*/ meltfptr[5] = /*_.IF___V7*/ meltfptr[6];; MELT_LOCATION ("warmelt-base.melt:215:/ clear"); /*clear *//*_#IB__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:214:/ clear"); /*clear *//*_.LET___V6*/ meltfptr[5] = 0; } ; } else { /*^cond.else */ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute */ /*_.IF___V4*/ meltfptr[3] = /*_.IF___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:213:/ clear"); /*clear *//*_#IS_INTEGERBOX__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IF___V5*/ meltfptr[4] = 0; } ; } else { /*^cond.else */ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:210:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION ("warmelt-base.melt:210:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_INTEGERBOX__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("%IV", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_5_warmelt_base_IV */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_6_warmelt_base_COMPARE_NAMED_ALPHA (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_6_warmelt_base_COMPARE_NAMED_ALPHA_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 13 void *mcfr_varptr[13]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 13; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 13; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("COMPARE_NAMED_ALPHA", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:946:/ getarg"); /*_.N1__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.N2__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.N2__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#__L1*/ meltfnum[0] = (( /*_.N1__V2*/ meltfptr[1]) == ( /*_.N2__V3*/ meltfptr[2]));; MELT_LOCATION ("warmelt-base.melt:950:/ cond"); /*cond */ if ( /*_#__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V4*/ meltfptr[3] = ( /*!konst_0 */ meltfrout->tabval[0]);; } else { MELT_LOCATION ("warmelt-base.melt:950:/ cond.else"); /*^block */ /*anyblock */ { /*_#IS_NOT_A__L2*/ meltfnum[1] = !melt_is_instance_of ((melt_ptr_t) ( /*_.N1__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-base.melt:951:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V5*/ meltfptr[4] = ( /*!konst_2 */ meltfrout->tabval[2]);; } else { MELT_LOCATION ("warmelt-base.melt:951:/ cond.else"); /*^block */ /*anyblock */ { /*_#IS_NOT_A__L3*/ meltfnum[2] = !melt_is_instance_of ((melt_ptr_t) ( /*_.N2__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-base.melt:953:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*_.IFELSE___V6*/ meltfptr[5] = ( /*!konst_3 */ meltfrout->tabval[3]);; } else { MELT_LOCATION ("warmelt-base.melt:953:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:956:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.N1__V2*/ meltfptr[1]), 1, "NAMED_NAME"); /*_.SN1__V8*/ meltfptr[7] = slot; }; ; MELT_LOCATION ("warmelt-base.melt:957:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.N2__V3*/ meltfptr[2]), 1, "NAMED_NAME"); /*_.SN2__V9*/ meltfptr[8] = slot; }; ; /*_#STRING___L4*/ meltfnum[3] = melt_string_less ((melt_ptr_t) ( /*_.SN1__V8*/ meltfptr[7]), (melt_ptr_t) ( /*_.SN2__V9*/ meltfptr[8]));; MELT_LOCATION ("warmelt-base.melt:959:/ cond"); /*cond */ if ( /*_#STRING___L4*/ meltfnum[3]) /*then */ { /*^cond.then */ /*_.IFELSE___V10*/ meltfptr[9] = ( /*!konst_4 */ meltfrout->tabval[4]);; } else { MELT_LOCATION ("warmelt-base.melt:959:/ cond.else"); /*^block */ /*anyblock */ { /*_#STRING___L5*/ meltfnum[4] = melt_string_less ((melt_ptr_t) ( /*_.SN2__V9*/ meltfptr[8]), (melt_ptr_t) ( /*_.SN1__V8*/ meltfptr[7]));; MELT_LOCATION ("warmelt-base.melt:961:/ cond"); /*cond */ if ( /*_#STRING___L5*/ meltfnum[4]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*!konst_5 */ meltfrout->tabval[5]);; } else { MELT_LOCATION ("warmelt-base.melt:961:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:963:/ quasiblock"); /*_.PROGN___V12*/ meltfptr[11] = ( /*!konst_6 */ meltfrout->tabval[6]);; /*^compute */ /*_.IFELSE___V11*/ meltfptr[10] = /*_.PROGN___V12*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:961:/ clear"); /*clear *//*_.PROGN___V12*/ meltfptr[11] = 0; } ; } ; /*_.IFELSE___V10*/ meltfptr[9] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:959:/ clear"); /*clear *//*_#STRING___L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } ; } ; /*_.LET___V7*/ meltfptr[6] = /*_.IFELSE___V10*/ meltfptr[9];; MELT_LOCATION ("warmelt-base.melt:956:/ clear"); /*clear *//*_.SN1__V8*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.SN2__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_#STRING___L4*/ meltfnum[3] = 0; /*^clear */ /*clear *//*_.IFELSE___V10*/ meltfptr[9] = 0; MELT_LOCATION ("warmelt-base.melt:955:/ quasiblock"); /*_.PROGN___V13*/ meltfptr[11] = /*_.LET___V7*/ meltfptr[6];; /*^compute */ /*_.IFELSE___V6*/ meltfptr[5] = /*_.PROGN___V13*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:953:/ clear"); /*clear *//*_.LET___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V13*/ meltfptr[11] = 0; } ; } ; /*_.IFELSE___V5*/ meltfptr[4] = /*_.IFELSE___V6*/ meltfptr[5];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:951:/ clear"); /*clear *//*_#IS_NOT_A__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IFELSE___V6*/ meltfptr[5] = 0; } ; } ; /*_.IFELSE___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:950:/ clear"); /*clear *//*_#IS_NOT_A__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; } ; } ; MELT_LOCATION ("warmelt-base.melt:946:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IFELSE___V4*/ meltfptr[3];; MELT_LOCATION ("warmelt-base.melt:946:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("COMPARE_NAMED_ALPHA", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_6_warmelt_base_COMPARE_NAMED_ALPHA */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_7_warmelt_base_ADD2OUT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { /*variadic */ int variad_ADD2OUT_ix = 0, variad_ADD2OUT_len = melt_argdescr_length (meltxargdescr_); #define melt_variadic_length (0+variad_ADD2OUT_len) #define melt_variadic_index variad_ADD2OUT_ix #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_7_warmelt_base_ADD2OUT_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 30 void *mcfr_varptr[30]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ const char *loc_CSTRING__o0; tree loc_TREE__o1; gimple loc_GIMPLE__o2; gimple_seq loc_GIMPLE_SEQ__o3; edge loc_EDGE__o4; loop_p loc_LOOP__o5; const char *loc_CSTRING__o6; long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 30; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); if (meltframptr_->loc_TREE__o1) gt_ggc_mx_tree_node (meltframptr_->loc_TREE__o1); if (meltframptr_->loc_GIMPLE__o2) gt_ggc_mx_gimple_statement_d (meltframptr_->loc_GIMPLE__o2); if (meltframptr_->loc_GIMPLE_SEQ__o3) gt_ggc_mx_gimple_seq_d (meltframptr_->loc_GIMPLE_SEQ__o3); if (meltframptr_->loc_EDGE__o4) gt_ggc_mx_edge_def (meltframptr_->loc_EDGE__o4); if (meltframptr_->loc_LOOP__o5) gt_ggc_mx_loop (meltframptr_->loc_LOOP__o5); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 30; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1239:/ getarg"); /*_.OUT__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_OUT__L1*/ meltfnum[0] = (melt_is_out ((melt_ptr_t) /*_.OUT__V2*/ meltfptr[1]));; /*^compute */ /*_#NOT__L2*/ meltfnum[1] = (!( /*_#IS_OUT__L1*/ meltfnum[0]));; MELT_LOCATION ("warmelt-base.melt:1243:/ cond"); /*cond */ if ( /*_#NOT__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1244:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION ("warmelt-base.melt:1244:/ finalreturn"); ; /*finalret */ goto labend_rout; /*_.IF___V3*/ meltfptr[2] = /*_.RETURN___V4*/ meltfptr[3];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1243:/ clear"); /*clear *//*_.RETURN___V4*/ meltfptr[3] = 0; } ; } else { /*^cond.else */ /*_.IF___V3*/ meltfptr[2] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:1245:/ loop"); /*loop */ { labloop_ARGLOOP_1:; /*^loopbody */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1247:/ cond"); /*cond */ if ( /*ifvariadic nomore */ variad_ADD2OUT_ix == variad_ADD2OUT_len) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*consume variadic ! */ variad_ADD2OUT_ix += 0;; MELT_LOCATION ("warmelt-base.melt:1249:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.OUT__V2*/ meltfptr[1];; MELT_LOCATION ("warmelt-base.melt:1249:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1247:/ clear"); /*clear *//*_.RETURN___V7*/ meltfptr[6] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_PTR) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_.V__V8*/ meltfptr[6] = /*variadic argument value */ ((meltxargtab_[variad_ADD2OUT_ix + 0]. meltbp_aptr) ? (*(meltxargtab_[variad_ADD2OUT_ix + 0]. meltbp_aptr)) : NULL);; /*^compute */ /*consume variadic Value ! */ variad_ADD2OUT_ix += 1;; /*_#IS_CLOSURE__L3*/ meltfnum[2] = (melt_magic_discr ((melt_ptr_t) ( /*_.V__V8*/ meltfptr[6])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1251:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1252:/ cond"); /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_PTR) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_.VV__V10*/ meltfptr[9] = /*variadic argument value */ ((meltxargtab_[variad_ADD2OUT_ix + 0]. meltbp_aptr) ? (* (meltxargtab_[variad_ADD2OUT_ix + 0]. meltbp_aptr)) : NULL);; /*^compute */ /*consume variadic Value ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1254:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.VV__V10*/ meltfptr[9]; /*_.V__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_.VV__V10*/ meltfptr[9] = 0; /*^clear */ /*clear *//*_.V__V11*/ meltfptr[10] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_LONG) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_#LL__L4*/ meltfnum[3] = /*variadic argument stuff */ meltxargtab_[variad_ADD2OUT_ix + 0].meltbp_long;; /*^compute */ /*consume variadic LONG ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1256:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#LL__L4*/ meltfnum[3]; /*_.V__V12*/ meltfptr[9] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V12*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_#LL__L4*/ meltfnum[3] = 0; /*^clear */ /*clear *//*_.V__V12*/ meltfptr[9] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_CSTRING) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_CSTRING__o0 = /*variadic argument stuff */ meltxargtab_[variad_ADD2OUT_ix + 0].meltbp_cstring;; /*^compute */ /*consume variadic CSTRING ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1258:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_cstring = /*_?*/ meltfram__.loc_CSTRING__o0; /*_.V__V13*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_CSTRING ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V13*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_CSTRING__o0 = 0; /*^clear */ /*clear *//*_.V__V13*/ meltfptr[10] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_TREE) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_TREE__o1 = /*variadic argument stuff */ meltxargtab_ [variad_ADD2OUT_ix + 0].meltbp_tree;; /*^compute */ /*consume variadic TREE ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1260:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_tree = /*_?*/ meltfram__.loc_TREE__o1; /*_.V__V14*/ meltfptr[9] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_TREE ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V14*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_TREE__o1 = 0; /*^clear */ /*clear *//*_.V__V14*/ meltfptr[9] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_GIMPLE) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_GIMPLE__o2 = /*variadic argument stuff */ meltxargtab_ [variad_ADD2OUT_ix + 0].meltbp_gimple;; /*^compute */ /*consume variadic GIMPLE ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1262:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0]. meltbp_gimple = /*_?*/ meltfram__. loc_GIMPLE__o2; /*_.V__V15*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_GIMPLE ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V15*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_GIMPLE__o2 = 0; /*^clear */ /*clear *//*_.V__V15*/ meltfptr[10] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_GIMPLESEQ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_GIMPLE_SEQ__o3 = /*variadic argument stuff */ meltxargtab_ [variad_ADD2OUT_ix + 0]. meltbp_gimpleseq;; /*^compute */ /*consume variadic GIMPLE_SEQ ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1264:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0]. meltbp_gimpleseq = /*_?*/ meltfram__. loc_GIMPLE_SEQ__o3; /*_.V__V16*/ meltfptr[9] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_GIMPLESEQ ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.V__V16*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_GIMPLE_SEQ__o3 = 0; /*^clear */ /*clear *//*_.V__V16*/ meltfptr [9] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_EDGE) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_EDGE__o4 = /*variadic argument stuff */ meltxargtab_ [variad_ADD2OUT_ix + 0]. meltbp_edge;; /*^compute */ /*consume variadic EDGE ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1266:/ apply"); /*apply */ { union meltparam_un argtab [1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab [0]. meltbp_edge = /*_?*/ meltfram__. loc_EDGE__o4; /*_.V__V17*/ meltfptr [10] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_EDGE ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr [8] = /*_.V__V17*/ meltfptr [10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_EDGE__o4 = 0; /*^clear */ /*clear *//*_.V__V17*/ meltfptr [10] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_LOOP) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__. loc_LOOP__o5 = /*variadic argument stuff */ meltxargtab_ [variad_ADD2OUT_ix + 0]. meltbp_loop;; /*^compute */ /*consume variadic LOOP ! */ variad_ADD2OUT_ix += 1;; MELT_LOCATION ("warmelt-base.melt:1268:/ apply"); /*apply */ { union meltparam_un argtab [1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab [0]. meltbp_loop = /*_?*/ meltfram__. loc_LOOP__o5; /*_.V__V18*/ meltfptr [9] = melt_apply ((meltclosure_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), (MELTBPARSTR_LOOP ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr [8] = /*_.V__V18*/ meltfptr [9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_?*/ meltfram__. loc_LOOP__o5 = 0; /*^clear */ /*clear *//*_.V__V18*/ meltfptr [9] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1270:/ quasiblock"); /*_.VCTY__V20*/ meltfptr [9] = /*variadic_type_code */ #ifdef melt_variadic_index (((melt_variadic_index + 0) >= 0 && (melt_variadic_index + 0) < melt_variadic_length) ? melt_code_to_ctype (meltxargdescr_[melt_variadic_index + 0] & MELT_ARGDESCR_MAX) : NULL) #else NULL /* no variadic_ctype outside of variadic functions */ #endif /*melt_variadic_index */ ;; MELT_LOCATION ("warmelt-base.melt:1273:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.VCTY__V20*/ meltfptr[9]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[0]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.VCTY__V20*/ meltfptr[9]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V21*/ meltfptr [20] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V21*/ meltfptr [20] = NULL;; } ; { MELT_LOCATION ("warmelt-base.melt:1272:/ locexp"); error ("MELT ERROR MSG [#%ld]::: %s - %s", melt_dbgcounter, ("ADD2OUT with manipulator for unsupported ctype "), melt_string_str ((melt_ptr_t) ( /*_.NAMED_NAME__V21*/ meltfptr[20]))); } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1274:/ cppif.then"); /*^block */ /*anyblock */ { /*^cond */ /*cond */ if (( /*nil */ NULL)) /*then */ { /*^cond.then */ /*_.IFELSE___V23*/ meltfptr [22] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1274:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("invalid variadic argument after closure to ADD2OUT"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1274) ? (1274) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V23*/ meltfptr [22] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V22*/ meltfptr [21] = /*_.IFELSE___V23*/ meltfptr [22];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1274:/ clear"); /*clear *//*_.IFELSE___V23*/ meltfptr [22] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V22*/ meltfptr [21] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-base.melt:1275:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr [0] = NULL;; MELT_LOCATION ("warmelt-base.melt:1275:/ finalreturn"); ; /*finalret */ goto labend_rout; /*_.LET___V19*/ meltfptr [10] = /*_.RETURN___V24*/ meltfptr [22];; MELT_LOCATION ("warmelt-base.melt:1270:/ clear"); /*clear *//*_.VCTY__V20*/ meltfptr [9] = 0; /*^clear */ /*clear *//*_.NAMED_NAME__V21*/ meltfptr [20] = 0; /*^clear */ /*clear *//*_.IFCPP___V22*/ meltfptr [21] = 0; /*^clear */ /*clear *//*_.RETURN___V24*/ meltfptr [22] = 0; /*_.IFELSE___V9*/ meltfptr [8] = /*_.LET___V19*/ meltfptr [10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1252:/ clear"); /*clear *//*_.LET___V19*/ meltfptr [10] = 0; } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-base.melt:1251:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1277:/ msend"); /*msend */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^ojbmsend.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.OUT__V2*/ meltfptr[1]; /*_.ADD_TO_OUT__V25*/ meltfptr[9] = meltgc_send ((melt_ptr_t) ( /*_.V__V8*/ meltfptr[6]), (melt_ptr_t) (( /*!ADD_TO_OUT */ meltfrout-> tabval[1])), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.ADD_TO_OUT__V25*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1251:/ clear"); /*clear *//*_.ADD_TO_OUT__V25*/ meltfptr[9] = 0; } ; } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1247:/ clear"); /*clear *//*_.V__V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_#IS_CLOSURE__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_LONG) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_#N__L5*/ meltfnum[3] = /*variadic argument stuff */ meltxargtab_[variad_ADD2OUT_ix + 0].meltbp_long;; /*^compute */ /*consume variadic LONG ! */ variad_ADD2OUT_ix += 1;; { MELT_LOCATION ("warmelt-base.melt:1279:/ locexp"); meltgc_add_out_dec ((melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), ( /*_#N__L5*/ meltfnum[3])); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1247:/ clear"); /*clear *//*_#N__L5*/ meltfnum[3] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { /*^cond */ /*cond */ if ( /*ifvariadic arg#1 */ variad_ADD2OUT_ix >= 0 && variad_ADD2OUT_ix + 1 <= variad_ADD2OUT_len && meltxargdescr_[variad_ADD2OUT_ix] == MELTBPAR_CSTRING) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_?*/ meltfram__.loc_CSTRING__o6 = /*variadic argument stuff */ meltxargtab_[variad_ADD2OUT_ix + 0].meltbp_cstring;; /*^compute */ /*consume variadic CSTRING ! */ variad_ADD2OUT_ix += 1;; { MELT_LOCATION ("warmelt-base.melt:1281:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V2*/ meltfptr[1]), ( /*_?*/ meltfram__. loc_CSTRING__o6)); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1247:/ clear"); /*clear *//*_?*/ meltfram__.loc_CSTRING__o6 = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1283:/ quasiblock"); /*_.VCTY__V26*/ meltfptr[20] = /*variadic_type_code */ #ifdef melt_variadic_index (((melt_variadic_index + 0) >= 0 && (melt_variadic_index + 0) < melt_variadic_length) ? melt_code_to_ctype (meltxargdescr_ [melt_variadic_index + 0] & MELT_ARGDESCR_MAX) : NULL) #else NULL /* no variadic_ctype outside of variadic functions */ #endif /*melt_variadic_index */ ;; MELT_LOCATION ("warmelt-base.melt:1286:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.VCTY__V26*/ meltfptr[20]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[0]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.VCTY__V26*/ meltfptr[20]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V27*/ meltfptr[21] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V27*/ meltfptr[21] = NULL;; } ; { MELT_LOCATION ("warmelt-base.melt:1285:/ locexp"); error ("MELT ERROR MSG [#%ld]::: %s - %s", melt_dbgcounter, ("ADD2OUT for unsupported ctype "), melt_string_str ((melt_ptr_t) ( /*_.NAMED_NAME__V27*/ meltfptr[21]))); } ; MELT_LOCATION ("warmelt-base.melt:1283:/ clear"); /*clear *//*_.VCTY__V26*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.NAMED_NAME__V27*/ meltfptr[21] = 0; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1288:/ cppif.then"); /*^block */ /*anyblock */ { /*^cond */ /*cond */ if (( /*nil */ NULL)) /*then */ { /*^cond.then */ /*_.IFELSE___V29*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1288:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("invalid variadic argument to ADD2OUT"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1288) ? (1288) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V29*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V28*/ meltfptr[22] = /*_.IFELSE___V29*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1288:/ clear"); /*clear *//*_.IFELSE___V29*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V28*/ meltfptr[22] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-base.melt:1289:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.OUT__V2*/ meltfptr[1];; MELT_LOCATION ("warmelt-base.melt:1289:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1247:/ clear"); /*clear *//*_.IFCPP___V28*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.RETURN___V30*/ meltfptr[9] = 0; } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; } ; /*epilog */ } ; ; goto labloop_ARGLOOP_1; labexit_ARGLOOP_1:; MELT_LOCATION ("warmelt-base.melt:1245:/ loopepilog"); /*loopepilog */ /*_.FOREVER___V5*/ meltfptr[3] = /*_.ARGLOOP__V6*/ meltfptr[5];; } ; MELT_LOCATION ("warmelt-base.melt:1239:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.FOREVER___V5*/ meltfptr[3];; MELT_LOCATION ("warmelt-base.melt:1239:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_OUT__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#NOT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IF___V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_.FOREVER___V5*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef melt_variadic_length #undef melt_variadic_index #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_7_warmelt_base_ADD2OUT */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_8_warmelt_base_ADD2OUT4NULL (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_8_warmelt_base_ADD2OUT4NULL_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4NULL", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1293:/ getarg"); /*_.V__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1294:/ cppif.then"); /*^block */ /*anyblock */ { /*_#NULL__L1*/ meltfnum[0] = (( /*_.V__V2*/ meltfptr[1]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1294:/ cond"); /*cond */ if ( /*_#NULL__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V5*/ meltfptr[4] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1294:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check null v"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1294) ? (1294) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1294:/ clear"); /*clear *//*_#NULL__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V4*/ meltfptr[3] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-base.melt:1295:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ("*nil*")); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1293:/ clear"); /*clear *//*_.IFCPP___V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4NULL", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_8_warmelt_base_ADD2OUT4NULL */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_9_warmelt_base_ADD2OUT4INTEGER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_9_warmelt_base_ADD2OUT4INTEGER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4INTEGER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1298:/ getarg"); /*_.VN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1299:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_INTEGERBOX__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.VN__V2*/ meltfptr[1])) == MELTOBMAG_INT);; MELT_LOCATION ("warmelt-base.melt:1299:/ cond"); /*cond */ if ( /*_#IS_INTEGERBOX__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V5*/ meltfptr[4] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1299:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check boxed number vn"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1299) ? (1299) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1299:/ clear"); /*clear *//*_#IS_INTEGERBOX__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V4*/ meltfptr[3] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; /*^compute */ /*_#GET_INT__L2*/ meltfnum[0] = (melt_get_int ((melt_ptr_t) ( /*_.VN__V2*/ meltfptr[1])));; { MELT_LOCATION ("warmelt-base.melt:1300:/ locexp"); meltgc_add_out_dec ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ( /*_#GET_INT__L2*/ meltfnum[0])); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1298:/ clear"); /*clear *//*_.IFCPP___V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_#GET_INT__L2*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4INTEGER", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_9_warmelt_base_ADD2OUT4INTEGER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_10_warmelt_base_ADD2OUT4STRING (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_10_warmelt_base_ADD2OUT4STRING_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4STRING", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1303:/ getarg"); /*_.VS__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1304:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_STRING__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.VS__V2*/ meltfptr[1])) == MELTOBMAG_STRING);; MELT_LOCATION ("warmelt-base.melt:1304:/ cond"); /*cond */ if ( /*_#IS_STRING__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V5*/ meltfptr[4] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1304:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check boxed string vs"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1304) ? (1304) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1304:/ clear"); /*clear *//*_#IS_STRING__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V4*/ meltfptr[3] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-base.melt:1305:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_string_str ((melt_ptr_t) ( /*_.VS__V2*/ meltfptr[1]))); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1303:/ clear"); /*clear *//*_.IFCPP___V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4STRING", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_10_warmelt_base_ADD2OUT4STRING */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_11_warmelt_base_ADD2OUT4STRBUF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_11_warmelt_base_ADD2OUT4STRBUF_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4STRBUF", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1308:/ getarg"); /*_.VSBUF__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1309:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_STRBUF__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.VSBUF__V2*/ meltfptr[1])) == MELTOBMAG_STRBUF);; MELT_LOCATION ("warmelt-base.melt:1309:/ cond"); /*cond */ if ( /*_#IS_STRBUF__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V5*/ meltfptr[4] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1309:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check strbuf vsbuf"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1309) ? (1309) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1309:/ clear"); /*clear *//*_#IS_STRBUF__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V5*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V4*/ meltfptr[3] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-base.melt:1310:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_strbuf_str ( /*_.VSBUF__V2*/ meltfptr[1])); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1308:/ clear"); /*clear *//*_.IFCPP___V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4STRBUF", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_11_warmelt_base_ADD2OUT4STRBUF */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_12_warmelt_base_ADD2OUT4CLONEDSYMB (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_12_warmelt_base_ADD2OUT4CLONEDSYMB_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void *mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 10; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4CLONEDSYMB", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1313:/ getarg"); /*_.VC__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1314:/ block"); /*anyblock */ { /*^objgoto */ /*objgoto */ goto mtch1_0; ; /*objlabel */ mtch1_0: MELT_LOCATION ("warmelt-base.melt:1315:/ objlabel"); ; /*^clear */ /*clear *//*_.NAMED_NAME__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.CSYM_URANK__V5*/ meltfptr[4] = 0; /*^cond */ /*cond */ if ( /*normtesterinst */ (melt_is_instance_of ((melt_ptr_t) ( /*_.VC__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_CLONED_SYMBOL */ meltfrout->tabval[0]))))) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.VC__V2*/ meltfptr[1]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V4*/ meltfptr[3] = slot; }; ; /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.VC__V2*/ meltfptr[1]), 3, "CSYM_URANK"); /*_.CSYM_URANK__V5*/ meltfptr[4] = slot; }; ; MELT_LOCATION ("warmelt-base.melt:1317:/ objgoto"); /*objgoto */ goto mtch1_1; ; } ; } else { MELT_LOCATION ("warmelt-base.melt:1315:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1322:/ objgoto"); /*objgoto */ goto mtch1_3; ; } ; } ; /*objlabel */ mtch1_1: MELT_LOCATION ("warmelt-base.melt:1317:/ objlabel"); ; /*^clear */ /*clear *//*_#ICT__L1*/ meltfnum[0] = 0; /*^cond */ /*cond */ if ( /* IBOXOF_mtch1__1 ? *//*_.CSYM_URANK__V5*/ meltfptr[4] && melt_magic_discr ( /*_.CSYM_URANK__V5*/ meltfptr[4]) == MELTOBMAG_INT) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^clear */ /*clear *//*_#ICT__L1*/ meltfnum[0] = 0; { /*^locexp */ /* IBOXOF_mtch1__1 ! *//*_#ICT__L1*/ meltfnum[0] = ((struct meltint_st *) /*_.CSYM_URANK__V5*/ meltfptr[4])-> val;; } ; MELT_LOCATION ("warmelt-base.melt:1315:/ objgoto"); /*objgoto */ goto mtch1_2; ; } ; } else { MELT_LOCATION ("warmelt-base.melt:1317:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1322:/ objgoto"); /*objgoto */ goto mtch1_3; ; } ; } ; /*objlabel */ mtch1_2: MELT_LOCATION ("warmelt-base.melt:1315:/ objlabel"); ; /*^quasiblock */ /*_.NVARNAM__V6*/ meltfptr[4] = /*_.NAMED_NAME__V4*/ meltfptr[3];; /*^compute */ /*_#NVARURANK__L2*/ meltfnum[1] = /*_#ICT__L1*/ meltfnum[0];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1318:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_STRING__L3*/ meltfnum[2] = (melt_magic_discr ((melt_ptr_t) ( /*_.NVARNAM__V6*/ meltfptr[4])) == MELTOBMAG_STRING);; MELT_LOCATION ("warmelt-base.melt:1318:/ cond"); /*cond */ if ( /*_#IS_STRING__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*_.IFELSE___V8*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1318:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check nvarnam"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1318) ? (1318) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V8*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V7*/ meltfptr[6] = /*_.IFELSE___V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1318:/ clear"); /*clear *//*_#IS_STRING__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IFELSE___V8*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V7*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-base.melt:1319:/ locexp"); meltgc_add_out_cident ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_string_str ((melt_ptr_t) ( /*_.NVARNAM__V6*/ meltfptr[4]))); } ; { MELT_LOCATION ("warmelt-base.melt:1320:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ("__")); } ; { MELT_LOCATION ("warmelt-base.melt:1321:/ locexp"); meltgc_add_out_dec ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ( /*_#NVARURANK__L2*/ meltfnum[1])); } ; MELT_LOCATION ("warmelt-base.melt:1315:/ clear"); /*clear *//*_.NVARNAM__V6*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_#NVARURANK__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFCPP___V7*/ meltfptr[6] = 0; /*^objgoto */ /*objgoto */ goto mtch1__end /*endmatch */ ; ; /*objlabel */ mtch1_3: MELT_LOCATION ("warmelt-base.melt:1322:/ objlabel"); ; /*^quasiblock */ #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1323:/ cppif.then"); /*^block */ /*anyblock */ { /*^cond */ /*cond */ if (( /*nil */ NULL)) /*then */ { /*^cond.then */ /*_.IFELSE___V10*/ meltfptr[4] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1323:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("bad cloned symbol"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1323) ? (1323) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V10*/ meltfptr[4] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V9*/ meltfptr[7] = /*_.IFELSE___V10*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1323:/ clear"); /*clear *//*_.IFELSE___V10*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V9*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-base.melt:1322:/ clear"); /*clear *//*_.IFCPP___V9*/ meltfptr[7] = 0; /*^objgoto */ /*objgoto */ goto mtch1__end /*endmatch */ ; ; /*objlabel */ mtch1__end: MELT_LOCATION ("warmelt-base.melt:1314:/ objlabel"); ; } ; /*epilog */ } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4CLONEDSYMB", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_12_warmelt_base_ADD2OUT4CLONEDSYMB */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_13_warmelt_base_ADD2OUT4NAMED (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_13_warmelt_base_ADD2OUT4NAMED_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 4 void *mcfr_varptr[4]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 4; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 4; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4NAMED", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1326:/ getarg"); /*_.VN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1327:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.VN__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[0]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.VN__V2*/ meltfptr[1]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V4*/ meltfptr[3] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V4*/ meltfptr[3] = NULL;; } ; { MELT_LOCATION ("warmelt-base.melt:1327:/ locexp"); meltgc_add_out_cident ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_string_str ((melt_ptr_t) ( /*_.NAMED_NAME__V4*/ meltfptr[3]))); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1326:/ clear"); /*clear *//*_.NAMED_NAME__V4*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4NAMED", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_13_warmelt_base_ADD2OUT4NAMED */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_14_warmelt_base_ADD2OUT4ROOTOBJECT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_14_warmelt_base_ADD2OUT4ROOTOBJECT_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4ROOTOBJECT", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1330:/ getarg"); /*_.VO__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { { MELT_LOCATION ("warmelt-base.melt:1331:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ("*")); } ; /*_.DISCRIM__V4*/ meltfptr[3] = (melt_discr ((melt_ptr_t) ( /*_.VO__V2*/ meltfptr[1])));; MELT_LOCATION ("warmelt-base.melt:1332:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.DISCRIM__V4*/ meltfptr[3]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[0]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.DISCRIM__V4*/ meltfptr[3]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V5*/ meltfptr[4] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V5*/ meltfptr[4] = NULL;; } ; { MELT_LOCATION ("warmelt-base.melt:1332:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_string_str ((melt_ptr_t) ( /*_.NAMED_NAME__V5*/ meltfptr[4]))); } ; { MELT_LOCATION ("warmelt-base.melt:1333:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ("/")); } ; /*_#OBJ_HASH__L1*/ meltfnum[0] = (melt_obj_hash ((melt_ptr_t) ( /*_.VO__V2*/ meltfptr[1])));; { MELT_LOCATION ("warmelt-base.melt:1334:/ locexp"); meltgc_add_out_hex ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ( /*_#OBJ_HASH__L1*/ meltfnum[0])); } ; { MELT_LOCATION ("warmelt-base.melt:1335:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), (".")); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1330:/ clear"); /*clear *//*_.DISCRIM__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.NAMED_NAME__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_#OBJ_HASH__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4ROOTOBJECT", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_14_warmelt_base_ADD2OUT4ROOTOBJECT */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_15_warmelt_base_ADD2OUT4ANY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_15_warmelt_base_ADD2OUT4ANY_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("ADD2OUT4ANY", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1338:/ getarg"); /*_.VA__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.OUT__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { { MELT_LOCATION ("warmelt-base.melt:1339:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), ("*")); } ; /*_.DISCRIM__V4*/ meltfptr[3] = (melt_discr ((melt_ptr_t) ( /*_.VA__V2*/ meltfptr[1])));; MELT_LOCATION ("warmelt-base.melt:1340:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.DISCRIM__V4*/ meltfptr[3]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[0]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.DISCRIM__V4*/ meltfptr[3]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V5*/ meltfptr[4] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V5*/ meltfptr[4] = NULL;; } ; { MELT_LOCATION ("warmelt-base.melt:1340:/ locexp"); meltgc_add_out ((melt_ptr_t) ( /*_.OUT__V3*/ meltfptr[2]), melt_string_str ((melt_ptr_t) ( /*_.NAMED_NAME__V5*/ meltfptr[4]))); } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1338:/ clear"); /*clear *//*_.DISCRIM__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.NAMED_NAME__V5*/ meltfptr[4] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("ADD2OUT4ANY", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_15_warmelt_base_ADD2OUT4ANY */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_16_warmelt_base_MAPSTRING_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_16_warmelt_base_MAPSTRING_EVERY_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void *mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 6; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MAPSTRING_EVERY", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1382:/ getarg"); /*_.MAP__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_MAPSTRING__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MAP__V2*/ meltfptr[1])) == MELTOBMAG_MAPSTRINGS);; MELT_LOCATION ("warmelt-base.melt:1386:/ cond"); /*cond */ if ( /*_#IS_MAPSTRING__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1387:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*citerblock FOREACH_IN_MAPSTRING */ { /*cit1__EACHSTRMAP : */ int cit1__EACHSTRMAP_ix = 0, cit1__EACHSTRMAP_siz = 0; for (cit1__EACHSTRMAP_ix = 0; /* we retrieve in cit1__EACHSTRMAP_siz the size at each iteration since it could change. */ cit1__EACHSTRMAP_ix >= 0 && (cit1__EACHSTRMAP_siz = melt_size_mapstrings ( /*_.MAP__V2*/ meltfptr[1])) > 0 && cit1__EACHSTRMAP_ix < cit1__EACHSTRMAP_siz; cit1__EACHSTRMAP_ix++) { const char *cit1__EACHSTRMAP_str = NULL; const char *cit1__EACHSTRMAP_nam = NULL; /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; cit1__EACHSTRMAP_str = ((struct meltmapstrings_st *) /*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHSTRMAP_ix].e_at; if (cit1__EACHSTRMAP_str == HTAB_DELETED_ENTRY) { /*_.CURAT__V4*/ meltfptr[3] = NULL; continue; }; if (!cit1__EACHSTRMAP_str) continue; /*_.CURVAL__V5*/ meltfptr[4] = ((struct meltmapstrings_st *) /*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHSTRMAP_ix].e_va; if (! /*_.CURVAL__V5*/ meltfptr[4]) continue; if (melt_is_instance_of ( /*_.CURVAL__V5*/ meltfptr[4], MELT_PREDEF (CLASS_NAMED)) && ( /*_.CURAT__V4*/ meltfptr[3] = melt_object_nth_field ((melt_ptr_t) /*_.CURVAL__V5*/ meltfptr[4], MELTFIELD_NAMED_NAME)) != NULL && (cit1__EACHSTRMAP_nam = melt_string_str ((melt_ptr_t) /*_.CURAT__V4*/ meltfptr[3])) != (char *) 0 && !strcmp (cit1__EACHSTRMAP_nam, cit1__EACHSTRMAP_str)) /*_.CURAT__V4*/ meltfptr[3] = /*_.CURAT__V4*/ meltfptr[3]; else { /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURAT__V4*/ meltfptr[3] = meltgc_new_stringdup ((meltobject_ptr_t) MELT_PREDEF (DISCR_STRING), cit1__EACHSTRMAP_str); } cit1__EACHSTRMAP_str = (const char *) 0; cit1__EACHSTRMAP_nam = (const char *) 0; MELT_LOCATION ("warmelt-base.melt:1391:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.CURVAL__V5*/ meltfptr[4]; /*_.F__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t) ( /*_.F__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.CURAT__V4*/ meltfptr[3]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /* end cit1__EACHSTRMAP */ /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; } /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1388:/ clear"); /*clear *//*_.CURAT__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.CURVAL__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.F__V6*/ meltfptr[5] = 0; } /*endciterblock FOREACH_IN_MAPSTRING */ ; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1386:/ clear"); /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1382:/ clear"); /*clear *//*_#IS_MAPSTRING__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MAPSTRING_EVERY", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_16_warmelt_base_MAPSTRING_EVERY */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_17_warmelt_base_MAPSTRING_ITERATE_TEST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_17_warmelt_base_MAPSTRING_ITERATE_TEST_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void *mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 10; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MAPSTRING_ITERATE_TEST", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1395:/ getarg"); /*_.MAP__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_MAPSTRING__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MAP__V2*/ meltfptr[1])) == MELTOBMAG_MAPSTRINGS);; MELT_LOCATION ("warmelt-base.melt:1400:/ cond"); /*cond */ if ( /*_#IS_MAPSTRING__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1401:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*citerblock FOREACH_IN_MAPSTRING */ { /*cit1__EACHSTRMAP : */ int cit1__EACHSTRMAP_ix = 0, cit1__EACHSTRMAP_siz = 0; for (cit1__EACHSTRMAP_ix = 0; /* we retrieve in cit1__EACHSTRMAP_siz the size at each iteration since it could change. */ cit1__EACHSTRMAP_ix >= 0 && (cit1__EACHSTRMAP_siz = melt_size_mapstrings ( /*_.MAP__V2*/ meltfptr[1])) > 0 && cit1__EACHSTRMAP_ix < cit1__EACHSTRMAP_siz; cit1__EACHSTRMAP_ix++) { const char *cit1__EACHSTRMAP_str = NULL; const char *cit1__EACHSTRMAP_nam = NULL; /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; cit1__EACHSTRMAP_str = ((struct meltmapstrings_st *) /*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHSTRMAP_ix].e_at; if (cit1__EACHSTRMAP_str == HTAB_DELETED_ENTRY) { /*_.CURAT__V4*/ meltfptr[3] = NULL; continue; }; if (!cit1__EACHSTRMAP_str) continue; /*_.CURVAL__V5*/ meltfptr[4] = ((struct meltmapstrings_st *) /*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHSTRMAP_ix].e_va; if (! /*_.CURVAL__V5*/ meltfptr[4]) continue; if (melt_is_instance_of ( /*_.CURVAL__V5*/ meltfptr[4], MELT_PREDEF (CLASS_NAMED)) && ( /*_.CURAT__V4*/ meltfptr[3] = melt_object_nth_field ((melt_ptr_t) /*_.CURVAL__V5*/ meltfptr[4], MELTFIELD_NAMED_NAME)) != NULL && (cit1__EACHSTRMAP_nam = melt_string_str ((melt_ptr_t) /*_.CURAT__V4*/ meltfptr[3])) != (char *) 0 && !strcmp (cit1__EACHSTRMAP_nam, cit1__EACHSTRMAP_str)) /*_.CURAT__V4*/ meltfptr[3] = /*_.CURAT__V4*/ meltfptr[3]; else { /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURAT__V4*/ meltfptr[3] = meltgc_new_stringdup ((meltobject_ptr_t) MELT_PREDEF (DISCR_STRING), cit1__EACHSTRMAP_str); } cit1__EACHSTRMAP_str = (const char *) 0; cit1__EACHSTRMAP_nam = (const char *) 0; MELT_LOCATION ("warmelt-base.melt:1405:/ quasiblock"); /*^multiapply */ /*multiapply 2args, 1x.res */ { union meltparam_un argtab[1]; union meltparam_un restab[1]; memset (&restab, 0, sizeof (restab)); memset (&argtab, 0, sizeof (argtab)); /*^multiapply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.CURVAL__V5*/ meltfptr[4]; /*^multiapply.xres */ restab[0].meltbp_aptr = (melt_ptr_t *) & /*_.OTHER__V8*/ meltfptr[7]; /*^multiapply.appl */ /*_.TEST__V7*/ meltfptr[6] = melt_apply ((meltclosure_ptr_t) ( /*_.F__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.CURAT__V4*/ meltfptr[3]), (MELTBPARSTR_PTR ""), argtab, (MELTBPARSTR_PTR ""), restab); } ; /*^quasiblock */ /*_#NULL__L3*/ meltfnum[2] = (( /*_.TEST__V7*/ meltfptr[6]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1408:/ cond"); /*cond */ if ( /*_#NULL__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1409:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.CURAT__V4*/ meltfptr[3];; MELT_LOCATION ("warmelt-base.melt:1409:/ putxtraresult"); if (!meltxrestab_ || !meltxresdescr_) goto labend_rout; if (meltxresdescr_[0] != MELTBPAR_PTR) goto labend_rout; if (meltxrestab_[0].meltbp_aptr) *(meltxrestab_[0].meltbp_aptr) = (melt_ptr_t) ( /*_.CURVAL__V5*/ meltfptr[4]); ; /*^putxtraresult */ if (!meltxrestab_ || !meltxresdescr_) goto labend_rout; if (meltxresdescr_[1] != MELTBPAR_PTR) goto labend_rout; if (meltxrestab_[1].meltbp_aptr) *(meltxrestab_[1].meltbp_aptr) = (melt_ptr_t) ( /*_.OTHER__V8*/ meltfptr[7]); ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.IF___V9*/ meltfptr[8] = /*_.RETURN___V10*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1408:/ clear"); /*clear *//*_.RETURN___V10*/ meltfptr[9] = 0; } ; } else { /*^cond.else */ /*_.IF___V9*/ meltfptr[8] = NULL;; } ; /*^compute */ /*_.MULTI___V6*/ meltfptr[5] = /*_.IF___V9*/ meltfptr[8];; MELT_LOCATION ("warmelt-base.melt:1405:/ clear"); /*clear *//*_#NULL__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IF___V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.OTHER__V8*/ meltfptr[7] = 0; /* end cit1__EACHSTRMAP */ /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; } /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1402:/ clear"); /*clear *//*_.CURAT__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.CURVAL__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.MULTI___V6*/ meltfptr[5] = 0; } /*endciterblock FOREACH_IN_MAPSTRING */ ; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1400:/ clear"); /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1395:/ clear"); /*clear *//*_#IS_MAPSTRING__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MAPSTRING_ITERATE_TEST", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_17_warmelt_base_MAPSTRING_ITERATE_TEST */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_18_warmelt_base_MULTIPLE_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_18_warmelt_base_MULTIPLE_EVERY_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MULTIPLE_EVERY", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1444:/ getarg"); /*_.TUP__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_MULTIPLE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.TUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION ("warmelt-base.melt:1447:/ cond"); /*cond */ if ( /*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1448:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*citerblock FOREACH_IN_MULTIPLE */ { /* start cit1__EACHTUP: */ long cit1__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.TUP__V2*/ meltfptr[1]); for ( /*_#IX__L3*/ meltfnum[2] = 0; ( /*_#IX__L3*/ meltfnum[2] >= 0) && ( /*_#IX__L3*/ meltfnum[2] < cit1__EACHTUP_ln); /*_#IX__L3*/ meltfnum[2]++) { /*_.COMP__V4*/ meltfptr[3] = melt_multiple_nth ((melt_ptr_t) ( /*_.TUP__V2*/ meltfptr[1]), /*_#IX__L3*/ meltfnum[2]); MELT_LOCATION ("warmelt-base.melt:1452:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#IX__L3*/ meltfnum[2]; /*_.F__V5*/ meltfptr[4] = melt_apply ((meltclosure_ptr_t) ( /*_.F__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.COMP__V4*/ meltfptr[3]), (MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; if ( /*_#IX__L3*/ meltfnum[2] < 0) break; } /* end cit1__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1449:/ clear"); /*clear *//*_.COMP__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_#IX__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.F__V5*/ meltfptr[4] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1447:/ clear"); /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1444:/ clear"); /*clear *//*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MULTIPLE_EVERY", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_18_warmelt_base_MULTIPLE_EVERY */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_19_warmelt_base_MULTIPLE_BACKWARD_EVERY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_19_warmelt_base_MULTIPLE_BACKWARD_EVERY_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 5 void *mcfr_varptr[5]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 5; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 5; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MULTIPLE_BACKWARD_EVERY", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1455:/ getarg"); /*_.TUP__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_MULTIPLE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.TUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION ("warmelt-base.melt:1458:/ cond"); /*cond */ if ( /*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1459:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*citerblock FOREACH_IN_MULTIPLE_BACKWARD */ { /* start cit1__EACHTUPBACK: */ long cit1__EACHTUPBACK_ln = melt_multiple_length ((melt_ptr_t) /*_.TUP__V2*/ meltfptr[1]); long cit1__EACHTUPBACK_ix = 0; for (cit1__EACHTUPBACK_ix = cit1__EACHTUPBACK_ln - 1; cit1__EACHTUPBACK_ix >= 0; cit1__EACHTUPBACK_ix--) { /*_.COMP__V4*/ meltfptr[3] = melt_multiple_nth ((melt_ptr_t) ( /*_.TUP__V2*/ meltfptr[1]), cit1__EACHTUPBACK_ix); /*_#IX__L3*/ meltfnum[2] = cit1__EACHTUPBACK_ix; MELT_LOCATION ("warmelt-base.melt:1463:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#IX__L3*/ meltfnum[2]; /*_.F__V5*/ meltfptr[4] = melt_apply ((meltclosure_ptr_t) ( /*_.F__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.COMP__V4*/ meltfptr[3]), (MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; } /* end cit1__EACHTUPBACK */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1460:/ clear"); /*clear *//*_.COMP__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_#IX__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.F__V5*/ meltfptr[4] = 0; } /*endciterblock FOREACH_IN_MULTIPLE_BACKWARD */ ; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1458:/ clear"); /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1455:/ clear"); /*clear *//*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MULTIPLE_BACKWARD_EVERY", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_19_warmelt_base_MULTIPLE_BACKWARD_EVERY */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_20_warmelt_base_MULTIPLE_EVERY_BOTH (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_20_warmelt_base_MULTIPLE_EVERY_BOTH_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 13 void *mcfr_varptr[13]; #define MELTFRAM_NBVARNUM 10 long mcfr_varnum[10]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 13; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 13; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MULTIPLE_EVERY_BOTH", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1467:/ getarg"); /*_.TUP1__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.TUP2__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.TUP2__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.F__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.F__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_MULTIPLE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.TUP1__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION ("warmelt-base.melt:1470:/ cond"); /*cond */ if ( /*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_MULTIPLE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.TUP2__V3*/ meltfptr[2])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION ("warmelt-base.melt:1471:/ cond"); /*cond */ if ( /*_#IS_MULTIPLE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_CLOSURE__L3*/ meltfnum[2] = (melt_magic_discr ((melt_ptr_t) ( /*_.F__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1472:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1473:/ quasiblock"); /*_#LN1__L4*/ meltfnum[3] = (melt_multiple_length ((melt_ptr_t) ( /*_.TUP1__V2*/ meltfptr[1])));; /*^compute */ /*_#LN2__L5*/ meltfnum[4] = (melt_multiple_length ((melt_ptr_t) ( /*_.TUP2__V3*/ meltfptr[2])));; /*^compute */ /*_#IX__L6*/ meltfnum[5] = 0;; MELT_LOCATION ("warmelt-base.melt:1476:/ loop"); /*loop */ { labloop_TUPLOOP_1:; /*^loopbody */ /*^block */ /*anyblock */ { /*_#I__L7*/ meltfnum[6] = (( /*_#IX__L6*/ meltfnum[5]) >= ( /*_#LN1__L4*/ meltfnum[3]));; MELT_LOCATION ("warmelt-base.melt:1477:/ cond"); /*cond */ if ( /*_#I__L7*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^quasiblock */ /*^compute */ /*_.TUPLOOP__V10*/ meltfptr[9] = NULL;; /*^exit */ /*exit */ { goto labexit_TUPLOOP_1; } ; /*epilog */ } ; } /*noelse */ ; /*_#I__L8*/ meltfnum[7] = (( /*_#IX__L6*/ meltfnum[5]) >= ( /*_#LN2__L5*/ meltfnum[4]));; MELT_LOCATION ("warmelt-base.melt:1478:/ cond"); /*cond */ if ( /*_#I__L8*/ meltfnum[7]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^quasiblock */ /*^compute */ /*_.TUPLOOP__V10*/ meltfptr[9] = NULL;; /*^exit */ /*exit */ { goto labexit_TUPLOOP_1; } ; /*epilog */ } ; } /*noelse */ ; /*_.MULTIPLE_NTH__V11*/ meltfptr[10] = (melt_multiple_nth ((melt_ptr_t) ( /*_.TUP1__V2*/ meltfptr[1]), ( /*_#IX__L6*/ meltfnum[5])));; /*^compute */ /*_.MULTIPLE_NTH__V12*/ meltfptr[11] = (melt_multiple_nth ((melt_ptr_t) ( /*_.TUP2__V3*/ meltfptr[2]), ( /*_#IX__L6*/ meltfnum[5])));; MELT_LOCATION ("warmelt-base.melt:1479:/ apply"); /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.MULTIPLE_NTH__V12*/ meltfptr[11]; /*^apply.arg */ argtab[1].meltbp_long = /*_#IX__L6*/ meltfnum[5]; /*_.F__V13*/ meltfptr[12] = melt_apply ((meltclosure_ptr_t) ( /*_.F__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.MULTIPLE_NTH__V11*/ meltfptr[10]), (MELTBPARSTR_PTR MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; /*_#I__L9*/ meltfnum[8] = (( /*_#IX__L6*/ meltfnum[5]) + (1));; MELT_LOCATION ("warmelt-base.melt:1480:/ compute"); /*_#IX__L6*/ meltfnum[5] = /*_#SETQ___L10*/ meltfnum[9] = /*_#I__L9*/ meltfnum[8];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1476:/ clear"); /*clear *//*_#I__L7*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_#I__L8*/ meltfnum[7] = 0; /*^clear */ /*clear *//*_.MULTIPLE_NTH__V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.MULTIPLE_NTH__V12*/ meltfptr[11] = 0; /*^clear */ /*clear *//*_.F__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_#I__L9*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_#SETQ___L10*/ meltfnum[9] = 0; } ; ; goto labloop_TUPLOOP_1; labexit_TUPLOOP_1:; /*^loopepilog */ /*loopepilog */ /*_.FOREVER___V9*/ meltfptr[8] = /*_.TUPLOOP__V10*/ meltfptr[9];; } ; /*^compute */ /*_.LET___V8*/ meltfptr[7] = /*_.FOREVER___V9*/ meltfptr[8];; MELT_LOCATION ("warmelt-base.melt:1473:/ clear"); /*clear *//*_#LN1__L4*/ meltfnum[3] = 0; /*^clear */ /*clear *//*_#LN2__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_#IX__L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_.FOREVER___V9*/ meltfptr[8] = 0; /*_.IF___V7*/ meltfptr[6] = /*_.LET___V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1472:/ clear"); /*clear *//*_.LET___V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; /*^compute */ /*_.IF___V6*/ meltfptr[5] = /*_.IF___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1471:/ clear"); /*clear *//*_#IS_CLOSURE__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; } ; } else { /*^cond.else */ /*_.IF___V6*/ meltfptr[5] = NULL;; } ; /*^compute */ /*_.IF___V5*/ meltfptr[4] = /*_.IF___V6*/ meltfptr[5];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1470:/ clear"); /*clear *//*_#IS_MULTIPLE__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IF___V6*/ meltfptr[5] = 0; } ; } else { /*^cond.else */ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:1467:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V5*/ meltfptr[4];; MELT_LOCATION ("warmelt-base.melt:1467:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V5*/ meltfptr[4] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MULTIPLE_EVERY_BOTH", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_20_warmelt_base_MULTIPLE_EVERY_BOTH */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_21_warmelt_base_RUN_ALL_PASS_EXECUTION_HOOKS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_21_warmelt_base_RUN_ALL_PASS_EXECUTION_HOOKS_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 7 void *mcfr_varptr[7]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 7; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 7; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("RUN_ALL_PASS_EXECUTION_HOOKS", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1507:/ getarg"); /*_.HOOKLIST__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.PASSNAME__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.PASSNAME__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_LONG) goto lab_endgetargs; /*_#PASSNUM__L1*/ meltfnum[0] = meltxargtab_[1].meltbp_long; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*citerblock FOREACH_IN_LIST */ { /* start cit1__EACHLIST */ for ( /*_.CURPAIR__V4*/ meltfptr[3] = melt_list_first ( /*_.HOOKLIST__V2*/ meltfptr[1]); melt_magic_discr ( /*_.CURPAIR__V4*/ meltfptr[3]) == MELTOBMAG_PAIR; /*_.CURPAIR__V4*/ meltfptr[3] = melt_pair_tail ( /*_.CURPAIR__V4*/ meltfptr[3])) { /*_.CURHOOK__V5*/ meltfptr[4] = melt_pair_head ( /*_.CURPAIR__V4*/ meltfptr[3]); MELT_LOCATION ("warmelt-base.melt:1512:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#PASSNUM__L1*/ meltfnum[0]; /*_.CURHOOK__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t) ( /*_.CURHOOK__V5*/ meltfptr[4]), (melt_ptr_t) ( /*_.PASSNAME__V3*/ meltfptr[2]), (MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; } /* end cit1__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1509:/ clear"); /*clear *//*_.CURPAIR__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.CURHOOK__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.CURHOOK__V6*/ meltfptr[5] = 0; } /*endciterblock FOREACH_IN_LIST */ ; MELT_LOCATION ("warmelt-base.melt:1514:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION ("warmelt-base.melt:1514:/ finalreturn"); ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-base.melt:1507:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.RETURN___V7*/ meltfptr[6];; MELT_LOCATION ("warmelt-base.melt:1507:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.RETURN___V7*/ meltfptr[6] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("RUN_ALL_PASS_EXECUTION_HOOKS", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_21_warmelt_base_RUN_ALL_PASS_EXECUTION_HOOKS */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_22_warmelt_base_REGISTER_PASS_EXECUTION_HOOK (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_22_warmelt_base_REGISTER_PASS_EXECUTION_HOOK_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 17 void *mcfr_varptr[17]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 17; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 17; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("REGISTER_PASS_EXECUTION_HOOK", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1518:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1524:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1525:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0])), 0, "CONTAINER_VALUE"); /*_.HOOKLIST__V5*/ meltfptr[4] = slot; }; ; /*_#NULL__L2*/ meltfnum[1] = (( /*_.HOOKLIST__V5*/ meltfptr[4]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1528:/ cond"); /*cond */ if ( /*_#NULL__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1530:/ blockmultialloc"); /*multiallocblock */ { struct meltletrec_1_st { struct meltlist_st rlist_0__LIST_; long meltletrec_1_endgap; } *meltletrec_1_ptr = 0; meltletrec_1_ptr = (struct meltletrec_1_st *) meltgc_allocate (sizeof (struct meltletrec_1_st), 0); /*^blockmultialloc.initfill */ /*inilist rlist_0__LIST_ */ /*_.LIST___V7*/ meltfptr[6] = (void *) &meltletrec_1_ptr->rlist_0__LIST_; meltletrec_1_ptr->rlist_0__LIST_.discr = (meltobject_ptr_t) (((void *) (MELT_PREDEF (DISCR_LIST)))); /*_.LIST___V6*/ meltfptr[5] = /*_.LIST___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1530:/ clear"); /*clear *//*_.LIST___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.LIST___V7*/ meltfptr[6] = 0; } /*end multiallocblock */ ; /*^compute */ /*_.HOOKLIST__V5*/ meltfptr[4] = /*_.SETQ___V8*/ meltfptr[6] = /*_.LIST___V6*/ meltfptr[5];; MELT_LOCATION ("warmelt-base.melt:1531:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_CONTAINER */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @CONTAINER_VALUE", melt_magic_discr ((melt_ptr_t) (( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0])), (0), ( /*_.HOOKLIST__V5*/ meltfptr[4]), "CONTAINER_VALUE"); ; /*^touch */ meltgc_touch (( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1529:/ quasiblock"); /*epilog */ MELT_LOCATION ("warmelt-base.melt:1528:/ clear"); /*clear *//*_.LIST___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.SETQ___V8*/ meltfptr[6] = 0; } ; } /*noelse */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1532:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_LIST__L3*/ meltfnum[2] = (melt_magic_discr ((melt_ptr_t) ( /*_.HOOKLIST__V5*/ meltfptr[4])) == MELTOBMAG_LIST);; MELT_LOCATION ("warmelt-base.melt:1532:/ cond"); /*cond */ if ( /*_#IS_LIST__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*_.IFELSE___V10*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1532:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check hooklist"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1532) ? (1532) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V10*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V9*/ meltfptr[5] = /*_.IFELSE___V10*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1532:/ clear"); /*clear *//*_#IS_LIST__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IFELSE___V10*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V9*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit1__EACHLIST */ for ( /*_.CURPAIR__V11*/ meltfptr[6] = melt_list_first ( /*_.HOOKLIST__V5*/ meltfptr[4]); melt_magic_discr ( /*_.CURPAIR__V11*/ meltfptr[6]) == MELTOBMAG_PAIR; /*_.CURPAIR__V11*/ meltfptr[6] = melt_pair_tail ( /*_.CURPAIR__V11*/ meltfptr[6])) { /*_.CURHOOK__V12*/ meltfptr[11] = melt_pair_head ( /*_.CURPAIR__V11*/ meltfptr[6]); /*_#__L4*/ meltfnum[2] = (( /*_.CURHOOK__V12*/ meltfptr[11]) == ( /*_.FUN__V2*/ meltfptr[1]));; MELT_LOCATION ("warmelt-base.melt:1537:/ cond"); /*cond */ if ( /*_#__L4*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1538:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION ("warmelt-base.melt:1538:/ finalreturn"); ; /*finalret */ goto labend_rout; /*_.IF___V13*/ meltfptr[12] = /*_.RETURN___V14*/ meltfptr[13];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1537:/ clear"); /*clear *//*_.RETURN___V14*/ meltfptr[13] = 0; } ; } else { /*^cond.else */ /*_.IF___V13*/ meltfptr[12] = NULL;; } ; } /* end cit1__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1534:/ clear"); /*clear *//*_.CURPAIR__V11*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.CURHOOK__V12*/ meltfptr[11] = 0; /*^clear */ /*clear *//*_#__L4*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IF___V13*/ meltfptr[12] = 0; } /*endciterblock FOREACH_IN_LIST */ ; { MELT_LOCATION ("warmelt-base.melt:1540:/ locexp"); meltgc_append_list ((melt_ptr_t) ( /*_.HOOKLIST__V5*/ meltfptr[4]), (melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])); } ; MELT_LOCATION ("warmelt-base.melt:1543:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V16*/ meltfptr[15] = meltgc_new_closure ((meltobject_ptr_t) (((void *) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_4 */ meltfrout->tabval[4])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V16*/ meltfptr[15])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V16*/ meltfptr[15]))); ((meltclosure_ptr_t) /*_.LAMBDA___V16*/ meltfptr[15])->tabval[0] = (melt_ptr_t) ( /*_.HOOKLIST__V5*/ meltfptr[4]); ; /*_.LAMBDA___V15*/ meltfptr[13] = /*_.LAMBDA___V16*/ meltfptr[15];; MELT_LOCATION ("warmelt-base.melt:1541:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[2])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[5]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_PASSEXEC_HOOK", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[2]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[2])), (25), ( /*_.LAMBDA___V15*/ meltfptr[13]), "SYSDATA_PASSEXEC_HOOK"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[2])); ; /*epilog */ } ; } /*noelse */ ; { MELT_LOCATION ("warmelt-base.melt:1546:/ locexp"); /*REGPASSXECHOOK__1 */ meltgc_notify_sysdata_passexec_hook (); ; } ; MELT_LOCATION ("warmelt-base.melt:1549:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION ("warmelt-base.melt:1549:/ finalreturn"); ; /*finalret */ goto labend_rout; /*_.LET___V4*/ meltfptr[3] = /*_.RETURN___V17*/ meltfptr[16];; MELT_LOCATION ("warmelt-base.melt:1525:/ clear"); /*clear *//*_.HOOKLIST__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_#NULL__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFCPP___V9*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.LAMBDA___V15*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.RETURN___V17*/ meltfptr[16] = 0; /*_.IF___V3*/ meltfptr[2] = /*_.LET___V4*/ meltfptr[3];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1524:/ clear"); /*clear *//*_.LET___V4*/ meltfptr[3] = 0; } ; } else { /*^cond.else */ /*_.IF___V3*/ meltfptr[2] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:1518:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V3*/ meltfptr[2];; MELT_LOCATION ("warmelt-base.melt:1518:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_CLOSURE__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("REGISTER_PASS_EXECUTION_HOOK", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_22_warmelt_base_REGISTER_PASS_EXECUTION_HOOK */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_23_warmelt_base_LAMBDA___1__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_23_warmelt_base_LAMBDA___1___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 void *mcfr_varptr[3]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1543:/ getarg"); /*_.PASSNAME__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_LONG) goto lab_endgetargs; /*_#PASSNUM__L1*/ meltfnum[0] = meltxargtab_[0].meltbp_long; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1544:/ apply"); /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.PASSNAME__V2*/ meltfptr[1]; /*^apply.arg */ argtab[1].meltbp_long = /*_#PASSNUM__L1*/ meltfnum[0]; /*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*!RUN_ALL_PASS_EXECUTION_HOOKS */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*~HOOKLIST */ meltfclos->tabval[0])), (MELTBPARSTR_PTR MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-base.melt:1543:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2];; MELT_LOCATION ("warmelt-base.melt:1543:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_23_warmelt_base_LAMBDA___1__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_24_warmelt_base_UNREGISTER_PASS_EXECUTION_HOOK (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_24_warmelt_base_UNREGISTER_PASS_EXECUTION_HOOK_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 9 void *mcfr_varptr[9]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 9; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 9; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("UNREGISTER_PASS_EXECUTION_HOOK", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1553:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1556:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1557:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PASS_EXECUTION_CONTAINER */ meltfrout->tabval[0])), 0, "CONTAINER_VALUE"); /*_.OLDHOOKLIST__V3*/ meltfptr[2] = slot; }; ; MELT_LOCATION ("warmelt-base.melt:1559:/ blockmultialloc"); /*multiallocblock */ { struct meltletrec_1_st { struct meltlist_st rlist_0__LIST_; long meltletrec_1_endgap; } *meltletrec_1_ptr = 0; meltletrec_1_ptr = (struct meltletrec_1_st *) meltgc_allocate (sizeof (struct meltletrec_1_st), 0); /*^blockmultialloc.initfill */ /*inilist rlist_0__LIST_ */ /*_.LIST___V5*/ meltfptr[4] = (void *) &meltletrec_1_ptr->rlist_0__LIST_; meltletrec_1_ptr->rlist_0__LIST_.discr = (meltobject_ptr_t) (((void *) (MELT_PREDEF (DISCR_LIST)))); /*_.NEWHOOKLIST__V4*/ meltfptr[3] = /*_.LIST___V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1559:/ clear"); /*clear *//*_.LIST___V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.LIST___V5*/ meltfptr[4] = 0; } /*end multiallocblock */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit1__EACHLIST */ for ( /*_.CURPAIR__V6*/ meltfptr[4] = melt_list_first ( /*_.OLDHOOKLIST__V3*/ meltfptr[2]); melt_magic_discr ( /*_.CURPAIR__V6*/ meltfptr[4]) == MELTOBMAG_PAIR; /*_.CURPAIR__V6*/ meltfptr[4] = melt_pair_tail ( /*_.CURPAIR__V6*/ meltfptr[4])) { /*_.CURHOOK__V7*/ meltfptr[6] = melt_pair_head ( /*_.CURPAIR__V6*/ meltfptr[4]); /*_#__L2*/ meltfnum[1] = (( /*_.CURHOOK__V7*/ meltfptr[6]) != ( /*_.FUN__V2*/ meltfptr[1]));; MELT_LOCATION ("warmelt-base.melt:1564:/ cond"); /*cond */ if ( /*_#__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1565:/ locexp"); meltgc_append_list ((melt_ptr_t) ( /*_.NEWHOOKLIST__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.CURHOOK__V7*/ meltfptr[6])); } ; /*epilog */ } ; } /*noelse */ ; } /* end cit1__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1561:/ clear"); /*clear *//*_.CURPAIR__V6*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.CURHOOK__V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_#__L2*/ meltfnum[1] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*_#IS_NON_EMPTY_LIST__L3*/ meltfnum[2] = (melt_magic_discr ((melt_ptr_t) ( /*_.NEWHOOKLIST__V4*/ meltfptr[3])) == MELTOBMAG_LIST && NULL != melt_list_first ((melt_ptr_t) ( /*_.NEWHOOKLIST__V4*/ meltfptr[3])));; MELT_LOCATION ("warmelt-base.melt:1567:/ cond"); /*cond */ if ( /*_#IS_NON_EMPTY_LIST__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1568:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[2]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_PASSEXEC_HOOK", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1])), (25), (( /*nil */ NULL)), "SYSDATA_PASSEXEC_HOOK"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[1])); ; /*epilog */ } ; } /*noelse */ ; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-base.melt:1567:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1572:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V9*/ meltfptr[8] = meltgc_new_closure ((meltobject_ptr_t) (((void *) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_4 */ meltfrout-> tabval[4])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V9*/ meltfptr[8])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V9*/ meltfptr[8]))); ((meltclosure_ptr_t) /*_.LAMBDA___V9*/ meltfptr[8])-> tabval[0] = (melt_ptr_t) ( /*_.NEWHOOKLIST__V4*/ meltfptr[3]); ; /*_.LAMBDA___V8*/ meltfptr[7] = /*_.LAMBDA___V9*/ meltfptr[8];; MELT_LOCATION ("warmelt-base.melt:1570:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[2]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_PASSEXEC_HOOK", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[1])), (25), ( /*_.LAMBDA___V8*/ meltfptr[7]), "SYSDATA_PASSEXEC_HOOK"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[1])); ; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1567:/ clear"); /*clear *//*_.LAMBDA___V8*/ meltfptr[7] = 0; } ; } ; { MELT_LOCATION ("warmelt-base.melt:1575:/ locexp"); /*UNREGPASSXECHOOK__1 */ meltgc_notify_sysdata_passexec_hook (); ; } ; MELT_LOCATION ("warmelt-base.melt:1557:/ clear"); /*clear *//*_.OLDHOOKLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_.NEWHOOKLIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_#IS_NON_EMPTY_LIST__L3*/ meltfnum[2] = 0; /*epilog */ } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1553:/ clear"); /*clear *//*_#IS_CLOSURE__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("UNREGISTER_PASS_EXECUTION_HOOK", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_24_warmelt_base_UNREGISTER_PASS_EXECUTION_HOOK */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_25_warmelt_base_LAMBDA___2__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_25_warmelt_base_LAMBDA___2___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 void *mcfr_varptr[3]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1572:/ getarg"); /*_.PASSNAME__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_LONG) goto lab_endgetargs; /*_#PASSNUM__L1*/ meltfnum[0] = meltxargtab_[0].meltbp_long; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1573:/ apply"); /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.PASSNAME__V2*/ meltfptr[1]; /*^apply.arg */ argtab[1].meltbp_long = /*_#PASSNUM__L1*/ meltfnum[0]; /*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*!RUN_ALL_PASS_EXECUTION_HOOKS */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*~NEWHOOKLIST */ meltfclos->tabval[0])), (MELTBPARSTR_PTR MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-base.melt:1572:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2];; MELT_LOCATION ("warmelt-base.melt:1572:/ finalreturn"); ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.RUN_ALL_PASS_EXECUTION_HOOKS__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_25_warmelt_base_LAMBDA___2__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_26_warmelt_base_REGISTER_PRAGMA_HANDLER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_26_warmelt_base_REGISTER_PRAGMA_HANDLER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 12 void *mcfr_varptr[12]; #define MELTFRAM_NBVARNUM 14 long mcfr_varnum[14]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 12; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 12; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("REGISTER_PRAGMA_HANDLER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1581:/ getarg"); /*_.LSTHANDLER__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1586:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.LSTHANDLER__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION ("warmelt-base.melt:1586:/ cond"); /*cond */ if ( /*_#IS_LIST__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V4*/ meltfptr[3] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1586:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("register_pragma_handler takes a list as argument."), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1586) ? (1586) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V4*/ meltfptr[3] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V3*/ meltfptr[2] = /*_.IFELSE___V4*/ meltfptr[3];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1586:/ clear"); /*clear *//*_#IS_LIST__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V4*/ meltfptr[3] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V3*/ meltfptr[2] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-base.melt:1588:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[0])), 27, "SYSDATA_MELTPRAGMAS"); /*_.OLDTUPLE__V5*/ meltfptr[3] = slot; }; ; } else { /*^cond.else */ /*_.OLDTUPLE__V5*/ meltfptr[3] = NULL;; } ; /*^compute */ /*_#OLDSIZE__L2*/ meltfnum[0] = 0;; MELT_LOCATION ("warmelt-base.melt:1590:/ cond"); /*cond */ if (( /*!NOTNULL */ meltfrout->tabval[2])) /*then */ { /*^cond.then */ /*_.IF___V6*/ meltfptr[5] = /*_.OLDTUPLE__V5*/ meltfptr[3];; } else { MELT_LOCATION ("warmelt-base.melt:1590:/ cond.else"); /*_.IF___V6*/ meltfptr[5] = NULL;; } ; /*^compute */ /*_#MULTIPLE_LENGTH__L3*/ meltfnum[2] = (melt_multiple_length ((melt_ptr_t) ( /*_.OLDTUPLE__V5*/ meltfptr[3])));; MELT_LOCATION ("warmelt-base.melt:1591:/ compute"); /*_#OLDSIZE__L2*/ meltfnum[0] = /*_#SETQ___L4*/ meltfnum[3] = /*_#MULTIPLE_LENGTH__L3*/ meltfnum[2];; MELT_LOCATION ("warmelt-base.melt:1592:/ quasiblock"); /*_#MULTIPLE_LENGTH__L5*/ meltfnum[4] = (melt_multiple_length ((melt_ptr_t) ( /*_.OLDTUPLE__V5*/ meltfptr[3])));; /*^compute */ /*_#LIST_LENGTH__L6*/ meltfnum[5] = (melt_list_length ((melt_ptr_t) ( /*_.LSTHANDLER__V2*/ meltfptr[1])));; /*^compute */ /*_#NEWSIZE__L7*/ meltfnum[6] = (( /*_#MULTIPLE_LENGTH__L5*/ meltfnum[4]) + ( /*_#LIST_LENGTH__L6*/ meltfnum[5]));; /*^compute */ /*_.NEWTUPLE__V7*/ meltfptr[6] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[3])), ( /*_#NEWSIZE__L7*/ meltfnum[6])));; /*^compute */ /*_#I__L8*/ meltfnum[7] = 0;; /*citerblock FOREACH_IN_MULTIPLE */ { /* start cit1__EACHTUP: */ long cit1__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.OLDTUPLE__V5*/ meltfptr[3]); for ( /*_#IUNUSED__L9*/ meltfnum[8] = 0; ( /*_#IUNUSED__L9*/ meltfnum[8] >= 0) && ( /*_#IUNUSED__L9*/ meltfnum[8] < cit1__EACHTUP_ln); /*_#IUNUSED__L9*/ meltfnum[8]++) { /*_.CURHANDER__V8*/ meltfptr[7] = melt_multiple_nth ((melt_ptr_t) ( /*_.OLDTUPLE__V5*/ meltfptr[3]), /*_#IUNUSED__L9*/ meltfnum[8]); { MELT_LOCATION ("warmelt-base.melt:1600:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.NEWTUPLE__V7*/ meltfptr[6]), ( /*_#I__L8*/ meltfnum[7]), (melt_ptr_t) ( /*_.CURHANDER__V8*/ meltfptr[7])); } ; /*_#I__L10*/ meltfnum[9] = (( /*_#I__L8*/ meltfnum[7]) + (1));; MELT_LOCATION ("warmelt-base.melt:1601:/ compute"); /*_#I__L8*/ meltfnum[7] = /*_#SETQ___L11*/ meltfnum[10] = /*_#I__L10*/ meltfnum[9];; if ( /*_#IUNUSED__L9*/ meltfnum[8] < 0) break; } /* end cit1__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1597:/ clear"); /*clear *//*_.CURHANDER__V8*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_#IUNUSED__L9*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_#I__L10*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_#SETQ___L11*/ meltfnum[10] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit2__EACHLIST */ for ( /*_.CURPAIR__V9*/ meltfptr[8] = melt_list_first ( /*_.LSTHANDLER__V2*/ meltfptr[1]); melt_magic_discr ( /*_.CURPAIR__V9*/ meltfptr[8]) == MELTOBMAG_PAIR; /*_.CURPAIR__V9*/ meltfptr[8] = melt_pair_tail ( /*_.CURPAIR__V9*/ meltfptr[8])) { /*_.CURHANDLER__V10*/ meltfptr[9] = melt_pair_head ( /*_.CURPAIR__V9*/ meltfptr[8]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-base.melt:1607:/ cppif.then"); /*^block */ /*anyblock */ { /*_#IS_A__L12*/ meltfnum[11] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURHANDLER__V10*/ meltfptr[9]), (melt_ptr_t) (( /*!CLASS_GCC_PRAGMA */ meltfrout->tabval[4])));; MELT_LOCATION ("warmelt-base.melt:1607:/ cond"); /*cond */ if ( /*_#IS_A__L12*/ meltfnum[11]) /*then */ { /*^cond.then */ /*_.IFELSE___V12*/ meltfptr[11] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-base.melt:1607:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("register_pragma_handler must be a list of class_gcc_pragma."), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (1607) ? (1607) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V11*/ meltfptr[10] = /*_.IFELSE___V12*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1607:/ clear"); /*clear *//*_#IS_A__L12*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V11*/ meltfptr[10] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-base.melt:1609:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.NEWTUPLE__V7*/ meltfptr[6]), ( /*_#I__L8*/ meltfnum[7]), (melt_ptr_t) ( /*_.CURHANDLER__V10*/ meltfptr[9])); } ; /*_#I__L13*/ meltfnum[11] = (( /*_#I__L8*/ meltfnum[7]) + (1));; MELT_LOCATION ("warmelt-base.melt:1610:/ compute"); /*_#I__L8*/ meltfnum[7] = /*_#SETQ___L14*/ meltfnum[13] = /*_#I__L13*/ meltfnum[11];; } /* end cit2__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1604:/ clear"); /*clear *//*_.CURPAIR__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.CURHANDLER__V10*/ meltfptr[9] = 0; /*^clear */ /*clear *//*_.IFCPP___V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_#I__L13*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_#SETQ___L14*/ meltfnum[13] = 0; } /*endciterblock FOREACH_IN_LIST */ ; MELT_LOCATION ("warmelt-base.melt:1612:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_MELTPRAGMAS", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[0])), (27), ( /*_.NEWTUPLE__V7*/ meltfptr[6]), "SYSDATA_MELTPRAGMAS"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1592:/ clear"); /*clear *//*_#MULTIPLE_LENGTH__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_#LIST_LENGTH__L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_#NEWSIZE__L7*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.NEWTUPLE__V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_#I__L8*/ meltfnum[7] = 0; MELT_LOCATION ("warmelt-base.melt:1588:/ clear"); /*clear *//*_.OLDTUPLE__V5*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_#OLDSIZE__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_#MULTIPLE_LENGTH__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_#SETQ___L4*/ meltfnum[3] = 0; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1581:/ clear"); /*clear *//*_.IFCPP___V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("REGISTER_PRAGMA_HANDLER", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_26_warmelt_base_REGISTER_PRAGMA_HANDLER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_27_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_27_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_FIRST_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void *mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 6; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("REGISTER_PRE_GENERICIZE_HOOK_FIRST", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1623:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1627:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), 2, "DELQU_FIRST"); /*_.FIRSTLIST__V3*/ meltfptr[2] = slot; }; ; } else { /*^cond.else */ /*_.FIRSTLIST__V3*/ meltfptr[2] = NULL;; } ; /*^compute */ /*_#NULL__L1*/ meltfnum[0] = (( /*_.FIRSTLIST__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1629:/ cond"); /*cond */ if ( /*_#NULL__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_.MAKE_LIST__V4*/ meltfptr[3] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1631:/ compute"); /*_.FIRSTLIST__V3*/ meltfptr[2] = /*_.SETQ___V5*/ meltfptr[4] = /*_.MAKE_LIST__V4*/ meltfptr[3];; /*_.MAKE_LIST__V6*/ meltfptr[5] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1632:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_FIRST", melt_magic_discr ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (2), ( /*_.FIRSTLIST__V3*/ meltfptr[2]), "DELQU_FIRST"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_LAST", melt_magic_discr ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (3), ( /*_.MAKE_LIST__V6*/ meltfptr[5]), "DELQU_LAST"); ; /*^touch */ meltgc_touch (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout-> tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1636:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[5]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_PRE_GENERICIZE", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[3])), (21), (( /*!PRE_GENERICIZE_HOOK_RUNNER */ meltfrout->tabval[4])), "SYSDATA_PRE_GENERICIZE"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[3])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1630:/ quasiblock"); /*epilog */ MELT_LOCATION ("warmelt-base.melt:1629:/ clear"); /*clear *//*_.MAKE_LIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.SETQ___V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.MAKE_LIST__V6*/ meltfptr[5] = 0; } ; } /*noelse */ ; /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1639:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1640:/ locexp"); meltgc_append_list ((melt_ptr_t) ( /*_.FIRSTLIST__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])); } ; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-base.melt:1639:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1641:/ locexp"); error ("MELT ERROR MSG [#%ld]::: %s", melt_dbgcounter, ("Bad hook passed to register_pre_genericize_hook")); } ; /*epilog */ } ; } ; MELT_LOCATION ("warmelt-base.melt:1627:/ clear"); /*clear *//*_.FIRSTLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_#NULL__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; /*epilog */ } ; goto labend_rout; labend_rout: melt_trace_end ("REGISTER_PRE_GENERICIZE_HOOK_FIRST", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_27_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_FIRST */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_28_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_LAST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_28_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_LAST_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void *mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 6; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("REGISTER_PRE_GENERICIZE_HOOK_LAST", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1646:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1650:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), 2, "DELQU_FIRST"); /*_.LASTLIST__V3*/ meltfptr[2] = slot; }; ; } else { /*^cond.else */ /*_.LASTLIST__V3*/ meltfptr[2] = NULL;; } ; /*^compute */ /*_#NULL__L1*/ meltfnum[0] = (( /*_.LASTLIST__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1652:/ cond"); /*cond */ if ( /*_#NULL__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_.MAKE_LIST__V4*/ meltfptr[3] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1654:/ compute"); /*_.LASTLIST__V3*/ meltfptr[2] = /*_.SETQ___V5*/ meltfptr[4] = /*_.MAKE_LIST__V4*/ meltfptr[3];; /*_.MAKE_LIST__V6*/ meltfptr[5] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1655:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_FIRST", melt_magic_discr ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (2), ( /*_.LASTLIST__V3*/ meltfptr[2]), "DELQU_FIRST"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_LAST", melt_magic_discr ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (3), ( /*_.MAKE_LIST__V6*/ meltfptr[5]), "DELQU_LAST"); ; /*^touch */ meltgc_touch (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout-> tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1659:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[5]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_PRE_GENERICIZE", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[3])), (21), (( /*!PRE_GENERICIZE_HOOK_RUNNER */ meltfrout->tabval[4])), "SYSDATA_PRE_GENERICIZE"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[3])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1653:/ quasiblock"); /*epilog */ MELT_LOCATION ("warmelt-base.melt:1652:/ clear"); /*clear *//*_.MAKE_LIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.SETQ___V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.MAKE_LIST__V6*/ meltfptr[5] = 0; } ; } /*noelse */ ; /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1662:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1663:/ locexp"); meltgc_append_list ((melt_ptr_t) ( /*_.LASTLIST__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])); } ; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-base.melt:1662:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1664:/ locexp"); error ("MELT ERROR MSG [#%ld]::: %s", melt_dbgcounter, ("Bad hook passed to register_pre_genericize_hook")); } ; /*epilog */ } ; } ; MELT_LOCATION ("warmelt-base.melt:1650:/ clear"); /*clear *//*_.LASTLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_#NULL__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[1] = 0; /*epilog */ } ; goto labend_rout; labend_rout: melt_trace_end ("REGISTER_PRE_GENERICIZE_HOOK_LAST", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_28_warmelt_base_REGISTER_PRE_GENERICIZE_HOOK_LAST */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_29_warmelt_base_PRE_GENERICIZE_HOOK_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_29_warmelt_base_PRE_GENERICIZE_HOOK_RUNNER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 16 void *mcfr_varptr[16]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 16; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 16; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("PRE_GENERICIZE_HOOK_RUNNER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1670:/ getarg"); /*_.FNDECLV__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1675:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), 2, "DELQU_FIRST"); /*_.FIRSTLIST__V3*/ meltfptr[2] = slot; }; ; } else { /*^cond.else */ /*_.FIRSTLIST__V3*/ meltfptr[2] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:1676:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!PREGENERICIZE_DELAYED_QUEUE */ meltfrout->tabval[0])), 3, "DELQU_LAST"); /*_.LASTLIST__V4*/ meltfptr[3] = slot; }; ; } else { /*^cond.else */ /*_.LASTLIST__V4*/ meltfptr[3] = NULL;; } ; /*^compute */ /*_.REVLASTLIST__V5*/ meltfptr[4] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; /*^compute */ /*_.RES__V6*/ meltfptr[5] = ( /*nil */ NULL);; /*citerblock FOREACH_IN_LIST */ { /* start cit1__EACHLIST */ for ( /*_.FIRSTPAIR__V7*/ meltfptr[6] = melt_list_first ( /*_.FIRSTLIST__V3*/ meltfptr[2]); melt_magic_discr ( /*_.FIRSTPAIR__V7*/ meltfptr[6]) == MELTOBMAG_PAIR; /*_.FIRSTPAIR__V7*/ meltfptr[6] = melt_pair_tail ( /*_.FIRSTPAIR__V7*/ meltfptr[6])) { /*_.FIRSTPROC__V8*/ meltfptr[7] = melt_pair_head ( /*_.FIRSTPAIR__V7*/ meltfptr[6]); MELT_LOCATION ("warmelt-base.melt:1684:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.RES__V6*/ meltfptr[5]; /*_.FIRSTPROC__V9*/ meltfptr[8] = melt_apply ((meltclosure_ptr_t) ( /*_.FIRSTPROC__V8*/ meltfptr[7]), (melt_ptr_t) ( /*_.FNDECLV__V2*/ meltfptr[1]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.RES__V6*/ meltfptr[5] = /*_.SETQ___V10*/ meltfptr[9] = /*_.FIRSTPROC__V9*/ meltfptr[8];; } /* end cit1__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1681:/ clear"); /*clear *//*_.FIRSTPAIR__V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.FIRSTPROC__V8*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.FIRSTPROC__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.SETQ___V10*/ meltfptr[9] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit2__EACHLIST */ for ( /*_.LASTPAIR__V11*/ meltfptr[10] = melt_list_first ( /*_.LASTLIST__V4*/ meltfptr[3]); melt_magic_discr ( /*_.LASTPAIR__V11*/ meltfptr[10]) == MELTOBMAG_PAIR; /*_.LASTPAIR__V11*/ meltfptr[10] = melt_pair_tail ( /*_.LASTPAIR__V11*/ meltfptr[10])) { /*_.LASTPROC__V12*/ meltfptr[11] = melt_pair_head ( /*_.LASTPAIR__V11*/ meltfptr[10]); /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.LASTPROC__V12*/ meltfptr[11])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1690:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { /*^locexp */ meltgc_prepend_list ((melt_ptr_t) ( /*_.REVLASTLIST__V5*/ meltfptr[4]), (melt_ptr_t) ( /*_.LASTPROC__V12*/ meltfptr[11])); } ; /*epilog */ } ; } /*noelse */ ; } /* end cit2__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1687:/ clear"); /*clear *//*_.LASTPAIR__V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.LASTPROC__V12*/ meltfptr[11] = 0; /*^clear */ /*clear *//*_#IS_CLOSURE__L1*/ meltfnum[0] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit3__EACHLIST */ for ( /*_.REVLASTPAIR__V13*/ meltfptr[12] = melt_list_first ( /*_.REVLASTLIST__V5*/ meltfptr[4]); melt_magic_discr ( /*_.REVLASTPAIR__V13*/ meltfptr[12]) == MELTOBMAG_PAIR; /*_.REVLASTPAIR__V13*/ meltfptr[12] = melt_pair_tail ( /*_.REVLASTPAIR__V13*/ meltfptr[12])) { /*_.REVLASTPROC__V14*/ meltfptr[13] = melt_pair_head ( /*_.REVLASTPAIR__V13*/ meltfptr[12]); MELT_LOCATION ("warmelt-base.melt:1695:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.RES__V6*/ meltfptr[5]; /*_.REVLASTPROC__V15*/ meltfptr[14] = melt_apply ((meltclosure_ptr_t) ( /*_.REVLASTPROC__V14*/ meltfptr[13]), (melt_ptr_t) ( /*_.FNDECLV__V2*/ meltfptr[1]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.RES__V6*/ meltfptr[5] = /*_.SETQ___V16*/ meltfptr[15] = /*_.REVLASTPROC__V15*/ meltfptr[14];; } /* end cit3__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1692:/ clear"); /*clear *//*_.REVLASTPAIR__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.REVLASTPROC__V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.REVLASTPROC__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.SETQ___V16*/ meltfptr[15] = 0; } /*endciterblock FOREACH_IN_LIST */ ; MELT_LOCATION ("warmelt-base.melt:1675:/ clear"); /*clear *//*_.FIRSTLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_.LASTLIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.REVLASTLIST__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.RES__V6*/ meltfptr[5] = 0; /*epilog */ } ; goto labend_rout; labend_rout: melt_trace_end ("PRE_GENERICIZE_HOOK_RUNNER", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_29_warmelt_base_PRE_GENERICIZE_HOOK_RUNNER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_30_warmelt_base_MELT_FINISH_TYPE_RUNNER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_30_warmelt_base_MELT_FINISH_TYPE_RUNNER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 16 void *mcfr_varptr[16]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 16; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 16; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MELT_FINISH_TYPE_RUNNER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1715:/ getarg"); /*_.BOXTREEV__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-base.melt:1716:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), 2, "DELQU_FIRST"); /*_.FIRSTLIST__V3*/ meltfptr[2] = slot; }; ; } else { /*^cond.else */ /*_.FIRSTLIST__V3*/ meltfptr[2] = NULL;; } ; MELT_LOCATION ("warmelt-base.melt:1717:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), 3, "DELQU_LAST"); /*_.LASTLIST__V4*/ meltfptr[3] = slot; }; ; } else { /*^cond.else */ /*_.LASTLIST__V4*/ meltfptr[3] = NULL;; } ; /*^compute */ /*_.REVLASTLIST__V5*/ meltfptr[4] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; /*^compute */ /*_.RES__V6*/ meltfptr[5] = ( /*nil */ NULL);; /*citerblock FOREACH_IN_LIST */ { /* start cit1__EACHLIST */ for ( /*_.FIRSTPAIR__V7*/ meltfptr[6] = melt_list_first ( /*_.FIRSTLIST__V3*/ meltfptr[2]); melt_magic_discr ( /*_.FIRSTPAIR__V7*/ meltfptr[6]) == MELTOBMAG_PAIR; /*_.FIRSTPAIR__V7*/ meltfptr[6] = melt_pair_tail ( /*_.FIRSTPAIR__V7*/ meltfptr[6])) { /*_.FIRSTPROC__V8*/ meltfptr[7] = melt_pair_head ( /*_.FIRSTPAIR__V7*/ meltfptr[6]); MELT_LOCATION ("warmelt-base.melt:1725:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.RES__V6*/ meltfptr[5]; /*_.FIRSTPROC__V9*/ meltfptr[8] = melt_apply ((meltclosure_ptr_t) ( /*_.FIRSTPROC__V8*/ meltfptr[7]), (melt_ptr_t) ( /*_.BOXTREEV__V2*/ meltfptr[1]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.RES__V6*/ meltfptr[5] = /*_.SETQ___V10*/ meltfptr[9] = /*_.FIRSTPROC__V9*/ meltfptr[8];; } /* end cit1__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1722:/ clear"); /*clear *//*_.FIRSTPAIR__V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.FIRSTPROC__V8*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.FIRSTPROC__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.SETQ___V10*/ meltfptr[9] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit2__EACHLIST */ for ( /*_.LASTPAIR__V11*/ meltfptr[10] = melt_list_first ( /*_.LASTLIST__V4*/ meltfptr[3]); melt_magic_discr ( /*_.LASTPAIR__V11*/ meltfptr[10]) == MELTOBMAG_PAIR; /*_.LASTPAIR__V11*/ meltfptr[10] = melt_pair_tail ( /*_.LASTPAIR__V11*/ meltfptr[10])) { /*_.LASTPROC__V12*/ meltfptr[11] = melt_pair_head ( /*_.LASTPAIR__V11*/ meltfptr[10]); /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.LASTPROC__V12*/ meltfptr[11])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1731:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { /*^locexp */ meltgc_prepend_list ((melt_ptr_t) ( /*_.REVLASTLIST__V5*/ meltfptr[4]), (melt_ptr_t) ( /*_.LASTPROC__V12*/ meltfptr[11])); } ; /*epilog */ } ; } /*noelse */ ; } /* end cit2__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1728:/ clear"); /*clear *//*_.LASTPAIR__V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.LASTPROC__V12*/ meltfptr[11] = 0; /*^clear */ /*clear *//*_#IS_CLOSURE__L1*/ meltfnum[0] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*citerblock FOREACH_IN_LIST */ { /* start cit3__EACHLIST */ for ( /*_.REVLASTPAIR__V13*/ meltfptr[12] = melt_list_first ( /*_.REVLASTLIST__V5*/ meltfptr[4]); melt_magic_discr ( /*_.REVLASTPAIR__V13*/ meltfptr[12]) == MELTOBMAG_PAIR; /*_.REVLASTPAIR__V13*/ meltfptr[12] = melt_pair_tail ( /*_.REVLASTPAIR__V13*/ meltfptr[12])) { /*_.REVLASTPROC__V14*/ meltfptr[13] = melt_pair_head ( /*_.REVLASTPAIR__V13*/ meltfptr[12]); MELT_LOCATION ("warmelt-base.melt:1736:/ apply"); /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.RES__V6*/ meltfptr[5]; /*_.REVLASTPROC__V15*/ meltfptr[14] = melt_apply ((meltclosure_ptr_t) ( /*_.REVLASTPROC__V14*/ meltfptr[13]), (melt_ptr_t) ( /*_.BOXTREEV__V2*/ meltfptr[1]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.RES__V6*/ meltfptr[5] = /*_.SETQ___V16*/ meltfptr[15] = /*_.REVLASTPROC__V15*/ meltfptr[14];; } /* end cit3__EACHLIST */ /*citerepilog */ MELT_LOCATION ("warmelt-base.melt:1733:/ clear"); /*clear *//*_.REVLASTPAIR__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.REVLASTPROC__V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.REVLASTPROC__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.SETQ___V16*/ meltfptr[15] = 0; } /*endciterblock FOREACH_IN_LIST */ ; MELT_LOCATION ("warmelt-base.melt:1716:/ clear"); /*clear *//*_.FIRSTLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_.LASTLIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.REVLASTLIST__V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.RES__V6*/ meltfptr[5] = 0; /*epilog */ } ; goto labend_rout; labend_rout: melt_trace_end ("MELT_FINISH_TYPE_RUNNER", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_30_warmelt_base_MELT_FINISH_TYPE_RUNNER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_31_warmelt_base_REGISTER_FINISH_TYPE_HOOK_FIRST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { #if MELT_HAVE_DEBUG static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_31_warmelt_base_REGISTER_FINISH_TYPE_HOOK_FIRST_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void *mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (void *) meltfirstargp_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 6; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("REGISTER_FINISH_TYPE_HOOK_FIRST", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-base.melt:1739:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-base.melt:1743:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-base.melt:1744:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), 2, "DELQU_FIRST"); /*_.FIRSTLIST__V3*/ meltfptr[2] = slot; }; ; } else { /*^cond.else */ /*_.FIRSTLIST__V3*/ meltfptr[2] = NULL;; } ; /*^compute */ /*_#NULL__L2*/ meltfnum[1] = (( /*_.FIRSTLIST__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION ("warmelt-base.melt:1746:/ cond"); /*cond */ if ( /*_#NULL__L2*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_.MAKE_LIST__V4*/ meltfptr[3] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1748:/ compute"); /*_.FIRSTLIST__V3*/ meltfptr[2] = /*_.SETQ___V5*/ meltfptr[4] = /*_.MAKE_LIST__V4*/ meltfptr[3];; /*_.MAKE_LIST__V6*/ meltfptr[5] = (meltgc_new_list ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[2]))));; MELT_LOCATION ("warmelt-base.melt:1749:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (melt_ptr_t) (( /*!CLASS_DELAYED_QUEUE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_FIRST", melt_magic_discr ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (2), ( /*_.FIRSTLIST__V3*/ meltfptr[2]), "DELQU_FIRST"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @DELQU_LAST", melt_magic_discr ((melt_ptr_t) (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])), (3), ( /*_.MAKE_LIST__V6*/ meltfptr[5]), "DELQU_LAST"); ; /*^touch */ meltgc_touch (( /*!FINISHTYPE_DELAYED_QUEUE */ meltfrout->tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-base.melt:1753:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3])), (melt_ptr_t) (( /*!CLASS_SYSTEM_DATA */ meltfrout->tabval[5]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SYSDATA_FINISHTYPE_HOOK", melt_magic_discr ((melt_ptr_t) (( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*!INITIAL_SYSTEM_DATA */ meltfrout->tabval[3])), (28), (( /*!MELT_FINISH_TYPE_RUNNER */ meltfrout->tabval[4])), "SYSDATA_FINISHTYPE_HOOK"); ; /*^touch */ meltgc_touch (( /*!INITIAL_SYSTEM_DATA */ meltfrout-> tabval[3])); ; /*epilog */ } ; } /*noelse */ ; { MELT_LOCATION ("warmelt-base.melt:1756:/ locexp"); /* melt_notify_finish_type */ meltgc_notify_finish_type_hook ();; } ; MELT_LOCATION ("warmelt-base.melt:1747:/ quasiblock"); /*epilog */ MELT_LOCATION ("warmelt-base.melt:1746:/ clear"); /*clear *//*_.MAKE_LIST__V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.SETQ___V5*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.MAKE_LIST__V6*/ meltfptr[5] = 0; } ; } /*noelse */ ; { MELT_LOCATION ("warmelt-base.melt:1758:/ locexp"); meltgc_append_list ((melt_ptr_t) ( /*_.FIRSTLIST__V3*/ meltfptr[2]), (melt_ptr_t) ( /*_.FUN__V2*/ meltfptr[1])); } ; MELT_LOCATION ("warmelt-base.melt:1744:/ clear"); /*clear *//*_.FIRSTLIST__V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_#NULL__L2*/ meltfnum[1] = 0; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-base.melt:1743:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-base.melt:1761:/ locexp"); error ("MELT ERROR MSG [#%ld]::: %s", melt_dbgcounter, ("Bad function (non closure) passed to register_finish_type_hook_first")); } ; /*epilog */ } ; } ; /*epilog */ MELT_LOCATION ("warmelt-base.melt:1739:/ clear"); /*clear *//*_#IS_CLOSURE__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("REGISTER_FINISH_TYPE_HOOK_FIRST", meltcallcount); melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_31_warmelt_base_REGISTER_FINISH_TYPE_HOOK_FIRST */ /**** end of warmelt-base+01.c ****/