summaryrefslogtreecommitdiff
path: root/gcc/melt/generated/warmelt-base+03.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/melt/generated/warmelt-base+03.c')
-rw-r--r--gcc/melt/generated/warmelt-base+03.c1202
1 files changed, 1201 insertions, 1 deletions
diff --git a/gcc/melt/generated/warmelt-base+03.c b/gcc/melt/generated/warmelt-base+03.c
index 428f8c29f22..e4686a5ec67 100644
--- a/gcc/melt/generated/warmelt-base+03.c
+++ b/gcc/melt/generated/warmelt-base+03.c
@@ -13,7 +13,7 @@ MELT_EXTERN const char meltrun_used_md5_melt_f3[] =
/***************************************************
***
- Copyright 2008 - 2012 Free Software Foundation, Inc.
+ Copyright 2008 - 2013 Free Software Foundation, Inc.
Contributed by Basile Starynkevitch <basile@starynkevitch.net>
and Pierre Vittet <piervit@pvittet.com>
@@ -868,6 +868,41 @@ meltrout_58_warmelt_base_LIST_REMOVE_LAST_ELEMENT (meltclosure_ptr_t
+
+melt_ptr_t MELT_MODULE_VISIBILITY
+meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE (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_60_warmelt_base_COMPLETE_SEQUENCE_AS_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_);
+
+
+
MELT_EXTERN void *melt_start_this_module (void *);
@@ -1834,4 +1869,1169 @@ labend_rout:
+
+
+melt_ptr_t MELT_MODULE_VISIBILITY
+meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE (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_COMPLETE_SEQUENCE_AS_TUPLE_ix =
+ 0, variad_COMPLETE_SEQUENCE_AS_TUPLE_len =
+ melt_argdescr_length (meltxargdescr_);
+#define melt_variadic_length (0+variad_COMPLETE_SEQUENCE_AS_TUPLE_len)
+#define melt_variadic_index variad_COMPLETE_SEQUENCE_AS_TUPLE_ix
+
+ long
+ current_blocklevel_signals_meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE_melt
+ = melt_blocklevel_signals;
+
+#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_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE_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;
+#undef MELTFRAM_NBVARPTR
+#undef MELTFRAM_NBVARNUM
+#define MELTFRAM_NBVARPTR 18
+ melt_ptr_t mcfr_varptr[18];
+#define MELTFRAM_NBVARNUM 3
+ long mcfr_varnum[3];
+/*others*/
+ long _spare_;
+ }
+ *meltframptr_ = 0, meltfram__; /*declfrastruct */
+#define meltframe meltfram__
+ /*meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE is not initial declstructinit */
+ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC))
+ { /*mark for ggc */
+ int ix = 0;
+ meltframptr_ =
+ (struct frame_meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE_st
+ *) meltfirstargp_;
+ /* use arguments output_curframe_declstruct_init */
+ (void) meltclosp_;
+ (void) meltfirstargp_;
+ (void) meltxargdescr_;
+ (void) meltxargtab_;
+ (void) meltxresdescr_;
+ (void) meltxrestab_;
+ gt_ggc_mx_melt_un (meltframptr_->mcfr_clos);
+ for (ix = 0; ix < 18; ix++)
+ if (meltframptr_->mcfr_varptr[ix])
+ gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]);
+ return NULL;
+ } /*end markggc */ ;
+ memset (&meltfram__, 0, sizeof (meltfram__));
+/* declstructinit plain routine meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE nbval 18*/
+ meltfram__.mcfr_nbvar = 18 /*nbval */ ;
+ meltfram__.mcfr_clos = meltclosp_;
+ meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe;
+ melt_topframe = (struct melt_callframe_st *) &meltfram__;
+ melt_trace_start ("COMPLETE_SEQUENCE_AS_TUPLE", meltcallcount);
+/*getargs*/
+
+ /*getarg#0 */
+ MELT_LOCATION ("warmelt-base.melt:3677:/ getarg");
+ /*_.SRC__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_;
+ ;
+ goto lab_endgetargs;
+lab_endgetargs:;
+/*body*/
+/*^block*/
+/*anyblock*/
+ {
+
+ MELT_LOCATION ("warmelt-base.melt:3681:/ quasiblock");
+
+
+ /*_.NEWLIST__V4*/ meltfptr[3] =
+ (meltgc_new_list
+ ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[0]))));;
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*^compute */
+ /*_#IS_MULTIPLE__L1*/ meltfnum[0] =
+ (melt_magic_discr ((melt_ptr_t) ( /*_.SRC__V2*/ meltfptr[1])) ==
+ MELTOBMAG_MULTIPLE);;
+ MELT_LOCATION ("warmelt-base.melt:3683:/ cond");
+ /*cond */ if ( /*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*citerblock FOREACH_IN_MULTIPLE */
+ {
+ /* start foreach_in_multiple meltcit1__EACHTUP */
+ long meltcit1__EACHTUP_ln =
+ melt_multiple_length ((melt_ptr_t) /*_.SRC__V2*/ meltfptr[1]);
+ for ( /*_#IX__L2*/ meltfnum[1] = 0;
+ ( /*_#IX__L2*/ meltfnum[1] >= 0)
+ && ( /*_#IX__L2*/ meltfnum[1] < meltcit1__EACHTUP_ln);
+ /*_#IX__L2*/ meltfnum[1]++)
+ {
+ /*_.COMP__V5*/ meltfptr[4] =
+ melt_multiple_nth ((melt_ptr_t)
+ ( /*_.SRC__V2*/ meltfptr[1]),
+ /*_#IX__L2*/ meltfnum[1]);
+
+
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3687:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.COMP__V5*/
+ meltfptr[4]));
+ }
+ ;
+ if ( /*_#IX__L2*/ meltfnum[1] < 0)
+ break;
+ } /* end foreach_in_multiple meltcit1__EACHTUP */
+
+ /*citerepilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3684:/ clear");
+ /*clear *//*_.COMP__V5*/ meltfptr[4] = 0;
+ /*^clear */
+ /*clear *//*_#IX__L2*/ meltfnum[1] = 0;
+ } /*endciterblock FOREACH_IN_MULTIPLE */
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3683:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*_#IS_LIST__L3*/ meltfnum[2] =
+ (melt_magic_discr ((melt_ptr_t) ( /*_.SRC__V2*/ meltfptr[1])) ==
+ MELTOBMAG_LIST);;
+ MELT_LOCATION ("warmelt-base.melt:3689:/ cond");
+ /*cond */ if ( /*_#IS_LIST__L3*/ meltfnum[2]) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*citerblock FOREACH_IN_LIST */
+ {
+ /* start foreach_in_list meltcit2__EACHLIST */
+ for ( /*_.CURPAIR__V6*/ meltfptr[5] =
+ melt_list_first ((melt_ptr_t) /*_.SRC__V2*/
+ meltfptr[1]);
+ melt_magic_discr ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]) == MELTOBMAG_PAIR;
+ /*_.CURPAIR__V6*/ meltfptr[5] =
+ melt_pair_tail ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]))
+ {
+ /*_.CURCOMP__V7*/ meltfptr[6] =
+ melt_pair_head ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]);
+
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3693:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.CURCOMP__V7*/
+ meltfptr[6]));
+ }
+ ;
+ } /* end foreach_in_list meltcit2__EACHLIST */
+ /*_.CURPAIR__V6*/ meltfptr[5] = NULL;
+ /*_.CURCOMP__V7*/ meltfptr[6] = NULL;
+
+
+ /*citerepilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3690:/ clear");
+ /*clear *//*_.CURPAIR__V6*/ meltfptr[5] = 0;
+ /*^clear */
+ /*clear *//*_.CURCOMP__V7*/ meltfptr[6] = 0;
+ } /*endciterblock FOREACH_IN_LIST */
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3689:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3696:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.SRC__V2*/
+ meltfptr[1]));
+ }
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3695:/ quasiblock");
+
+
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3683:/ clear");
+ /*clear *//*_#IS_LIST__L3*/ meltfnum[2] = 0;
+ }
+ ;
+ }
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3697:/ loop");
+ /*loop */
+ {
+ labloop_ARGLOOP_3:; /*^loopbody */
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3699:/ cond");
+ /*cond */ if ( /*ifvariadic nomore */ variad_COMPLETE_SEQUENCE_AS_TUPLE_ix == variad_COMPLETE_SEQUENCE_AS_TUPLE_len) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^compute */
+
+ /*consume variadic ! */ variad_COMPLETE_SEQUENCE_AS_TUPLE_ix +=
+ 0;;
+ MELT_LOCATION ("warmelt-base.melt:3701:/ quasiblock");
+
+
+ /*^compute */
+ /*_.ARGLOOP__V9*/ meltfptr[8] = NULL;;
+
+ /*^exit */
+ /*exit */
+ {
+ goto labexit_ARGLOOP_3;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3699:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^cond */
+ /*cond */ if ( /*ifvariadic arg#1 */ variad_COMPLETE_SEQUENCE_AS_TUPLE_ix >= 0 && variad_COMPLETE_SEQUENCE_AS_TUPLE_ix + 1 <= variad_COMPLETE_SEQUENCE_AS_TUPLE_len && meltxargdescr_[variad_COMPLETE_SEQUENCE_AS_TUPLE_ix] == MELTBPAR_PTR) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^compute */
+ /*_.V__V10*/ meltfptr[9] =
+ /*variadic argument value */
+ ((meltxargtab_
+ [variad_COMPLETE_SEQUENCE_AS_TUPLE_ix +
+ 0].
+ meltbp_aptr)
+ ? (*
+ (meltxargtab_
+ [variad_COMPLETE_SEQUENCE_AS_TUPLE_ix +
+ 0].meltbp_aptr)) : NULL);;
+ /*^compute */
+
+ /*consume variadic Value ! */
+ variad_COMPLETE_SEQUENCE_AS_TUPLE_ix += 1;;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3703:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.V__V10*/
+ meltfptr[9]));
+ }
+ ;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3699:/ clear");
+ /*clear *//*_.V__V10*/ meltfptr[9] = 0;
+ }
+ ;
+ }
+ else
+ { /*^cond.else */
+
+ /*^block */
+ /*anyblock */
+ {
+
+ MELT_LOCATION ("warmelt-base.melt:3705:/ quasiblock");
+
+
+ /*_.VCTY__V12*/ meltfptr[11] =
+ /*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:3708:/ cond");
+ /*cond */ if (
+ /*ifisa */
+ melt_is_instance_of ((melt_ptr_t)
+ ( /*_.VCTY__V12*/
+ meltfptr[11]),
+ (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[1])))
+ ) /*then */
+ {
+ /*^cond.then */
+ /*^getslot */
+ {
+ melt_ptr_t slot = NULL, obj = NULL;
+ obj =
+ (melt_ptr_t) ( /*_.VCTY__V12*/ meltfptr[11])
+ /*=obj*/ ;
+ melt_object_get_field (slot, obj, 1, "NAMED_NAME");
+ /*_.NAMED_NAME__V13*/ meltfptr[12] = slot;
+ };
+ ;
+ }
+ else
+ { /*^cond.else */
+
+ /*_.NAMED_NAME__V13*/ meltfptr[12] = NULL;;
+ }
+ ;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3707:/ locexp");
+ error ("MELT ERROR MSG [#%ld]::: %s - %s",
+ melt_dbgcounter,
+ ("COMPLETE_SEQUENCE_AS_TUPLE with unsupported ctype"),
+ melt_string_str ((melt_ptr_t)
+ ( /*_.NAMED_NAME__V13*/
+ meltfptr[12])));
+ }
+ ;
+
+#if MELT_HAVE_DEBUG
+ MELT_LOCATION ("warmelt-base.melt:3709:/ cppif.then");
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*^cond */
+ /*cond */ if (( /*nil */ NULL)) /*then */
+ {
+ /*^cond.then */
+ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);;
+ }
+ else
+ {
+ MELT_LOCATION
+ ("warmelt-base.melt:3709:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+
+
+ {
+ /*^locexp */
+ melt_assert_failed (("invalid variadic argument to COMPLETE_SEQUENCE_AS_TUPLE"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (3709) ? (3709) : __LINE__, __FUNCTION__);
+ ;
+ }
+ ;
+ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0;
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*^compute */
+ /*_.IFCPP___V14*/ meltfptr[13] =
+ /*_.IFELSE___V15*/ meltfptr[14];;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3709:/ clear");
+ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0;
+ }
+
+#else /*MELT_HAVE_DEBUG */
+ /*^cppif.else */
+ /*_.IFCPP___V14*/ meltfptr[13] = ( /*nil */ NULL);
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ /*^compute */
+ /*_.LET___V11*/ meltfptr[9] =
+ /*_.IFCPP___V14*/ meltfptr[13];;
+
+ MELT_LOCATION ("warmelt-base.melt:3705:/ clear");
+ /*clear *//*_.VCTY__V12*/ meltfptr[11] = 0;
+ /*^clear */
+ /*clear *//*_.NAMED_NAME__V13*/ meltfptr[12] = 0;
+ /*^clear */
+ /*clear *//*_.IFCPP___V14*/ meltfptr[13] = 0;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3699:/ clear");
+ /*clear *//*_.LET___V11*/ meltfptr[9] = 0;
+ }
+ ;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ ;
+ goto labloop_ARGLOOP_3;
+ labexit_ARGLOOP_3:;
+ MELT_LOCATION ("warmelt-base.melt:3697:/ loopepilog");
+ /*loopepilog */
+ /*_.FOREVER___V8*/ meltfptr[7] = /*_.ARGLOOP__V9*/ meltfptr[8];;
+ }
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3711:/ quasiblock");
+
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*^apply */
+ /*apply */
+ {
+ /*_.RES__V17*/ meltfptr[11] =
+ melt_apply ((meltclosure_ptr_t)
+ (( /*!LIST_TO_MULTIPLE */ meltfrout->tabval[2])),
+ (melt_ptr_t) ( /*_.NEWLIST__V4*/ meltfptr[3]), (""),
+ (union meltparam_un *) 0, "", (union meltparam_un *) 0);
+ }
+ ;
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3713:/ quasiblock");
+
+
+ /*_.RETVAL___V1*/ meltfptr[0] = /*_.RES__V17*/ meltfptr[11];;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3713:/ locexp");
+ /*ochecknores compilobj_nrep_return */
+#if MELT_HAVE_DEBUG
+ if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_)
+ melt_warn_for_no_expected_secondary_results ();
+ /* we warned when secondary results are expected but not returned. */
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ }
+ ;
+ /*^finalreturn */
+ ;
+ /*finalret */ goto labend_rout;
+ /*_.LET___V16*/ meltfptr[14] = /*_.RETURN___V18*/ meltfptr[12];;
+
+ MELT_LOCATION ("warmelt-base.melt:3711:/ clear");
+ /*clear *//*_.RES__V17*/ meltfptr[11] = 0;
+ /*^clear */
+ /*clear *//*_.RETURN___V18*/ meltfptr[12] = 0;
+ /*_.LET___V3*/ meltfptr[2] = /*_.LET___V16*/ meltfptr[14];;
+
+ MELT_LOCATION ("warmelt-base.melt:3681:/ clear");
+ /*clear *//*_.NEWLIST__V4*/ meltfptr[3] = 0;
+ /*^clear */
+ /*clear *//*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0;
+ /*^clear */
+ /*clear *//*_.FOREVER___V8*/ meltfptr[7] = 0;
+ /*^clear */
+ /*clear *//*_.LET___V16*/ meltfptr[14] = 0;
+ MELT_LOCATION ("warmelt-base.melt:3677:/ quasiblock");
+
+
+ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V3*/ meltfptr[2];;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3677:/ locexp");
+ /*ochecknores compilobj_nrep_return */
+#if MELT_HAVE_DEBUG
+ if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_)
+ melt_warn_for_no_expected_secondary_results ();
+ /* we warned when secondary results are expected but not returned. */
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ }
+ ;
+ /*^finalreturn */
+ ;
+ /*finalret */ goto labend_rout;
+ /*epilog */
+
+ /*^clear */
+ /*clear *//*_.LET___V3*/ meltfptr[2] = 0;
+ }
+
+ ;
+ goto labend_rout;
+labend_rout:
+ melt_trace_end ("COMPLETE_SEQUENCE_AS_TUPLE", meltcallcount);
+ MELT_TRACE_EXIT_LOCATION ();
+ melt_blocklevel_signals =
+ current_blocklevel_signals_meltrout_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE_melt;
+ 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_59_warmelt_base_COMPLETE_SEQUENCE_AS_TUPLE */
+
+
+
+
+
+melt_ptr_t MELT_MODULE_VISIBILITY
+meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_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_)
+{
+ /*variadic */ int variad_COMPLETE_SEQUENCE_AS_LIST_ix =
+ 0, variad_COMPLETE_SEQUENCE_AS_LIST_len =
+ melt_argdescr_length (meltxargdescr_);
+#define melt_variadic_length (0+variad_COMPLETE_SEQUENCE_AS_LIST_len)
+#define melt_variadic_index variad_COMPLETE_SEQUENCE_AS_LIST_ix
+
+ long
+ current_blocklevel_signals_meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST_melt
+ = melt_blocklevel_signals;
+
+#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_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST_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;
+#undef MELTFRAM_NBVARPTR
+#undef MELTFRAM_NBVARNUM
+#define MELTFRAM_NBVARPTR 16
+ melt_ptr_t mcfr_varptr[16];
+#define MELTFRAM_NBVARNUM 3
+ long mcfr_varnum[3];
+/*others*/
+ long _spare_;
+ }
+ *meltframptr_ = 0, meltfram__; /*declfrastruct */
+#define meltframe meltfram__
+ /*meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST is not initial declstructinit */
+ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC))
+ { /*mark for ggc */
+ int ix = 0;
+ meltframptr_ =
+ (struct frame_meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST_st *)
+ meltfirstargp_;
+ /* use arguments output_curframe_declstruct_init */
+ (void) meltclosp_;
+ (void) meltfirstargp_;
+ (void) meltxargdescr_;
+ (void) meltxargtab_;
+ (void) meltxresdescr_;
+ (void) meltxrestab_;
+ 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__));
+/* declstructinit plain routine meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST nbval 16*/
+ meltfram__.mcfr_nbvar = 16 /*nbval */ ;
+ meltfram__.mcfr_clos = meltclosp_;
+ meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe;
+ melt_topframe = (struct melt_callframe_st *) &meltfram__;
+ melt_trace_start ("COMPLETE_SEQUENCE_AS_LIST", meltcallcount);
+/*getargs*/
+
+ /*getarg#0 */
+ MELT_LOCATION ("warmelt-base.melt:3717:/ getarg");
+ /*_.SRC__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_;
+ ;
+ goto lab_endgetargs;
+lab_endgetargs:;
+/*body*/
+/*^block*/
+/*anyblock*/
+ {
+
+ MELT_LOCATION ("warmelt-base.melt:3721:/ quasiblock");
+
+
+ /*_.NEWLIST__V4*/ meltfptr[3] =
+ (meltgc_new_list
+ ((meltobject_ptr_t) (( /*!DISCR_LIST */ meltfrout->tabval[0]))));;
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*^compute */
+ /*_#IS_MULTIPLE__L1*/ meltfnum[0] =
+ (melt_magic_discr ((melt_ptr_t) ( /*_.SRC__V2*/ meltfptr[1])) ==
+ MELTOBMAG_MULTIPLE);;
+ MELT_LOCATION ("warmelt-base.melt:3723:/ cond");
+ /*cond */ if ( /*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*citerblock FOREACH_IN_MULTIPLE */
+ {
+ /* start foreach_in_multiple meltcit1__EACHTUP */
+ long meltcit1__EACHTUP_ln =
+ melt_multiple_length ((melt_ptr_t) /*_.SRC__V2*/ meltfptr[1]);
+ for ( /*_#IX__L2*/ meltfnum[1] = 0;
+ ( /*_#IX__L2*/ meltfnum[1] >= 0)
+ && ( /*_#IX__L2*/ meltfnum[1] < meltcit1__EACHTUP_ln);
+ /*_#IX__L2*/ meltfnum[1]++)
+ {
+ /*_.COMP__V5*/ meltfptr[4] =
+ melt_multiple_nth ((melt_ptr_t)
+ ( /*_.SRC__V2*/ meltfptr[1]),
+ /*_#IX__L2*/ meltfnum[1]);
+
+
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3727:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.COMP__V5*/
+ meltfptr[4]));
+ }
+ ;
+ if ( /*_#IX__L2*/ meltfnum[1] < 0)
+ break;
+ } /* end foreach_in_multiple meltcit1__EACHTUP */
+
+ /*citerepilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3724:/ clear");
+ /*clear *//*_.COMP__V5*/ meltfptr[4] = 0;
+ /*^clear */
+ /*clear *//*_#IX__L2*/ meltfnum[1] = 0;
+ } /*endciterblock FOREACH_IN_MULTIPLE */
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3723:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*_#IS_LIST__L3*/ meltfnum[2] =
+ (melt_magic_discr ((melt_ptr_t) ( /*_.SRC__V2*/ meltfptr[1])) ==
+ MELTOBMAG_LIST);;
+ MELT_LOCATION ("warmelt-base.melt:3729:/ cond");
+ /*cond */ if ( /*_#IS_LIST__L3*/ meltfnum[2]) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*citerblock FOREACH_IN_LIST */
+ {
+ /* start foreach_in_list meltcit2__EACHLIST */
+ for ( /*_.CURPAIR__V6*/ meltfptr[5] =
+ melt_list_first ((melt_ptr_t) /*_.SRC__V2*/
+ meltfptr[1]);
+ melt_magic_discr ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]) == MELTOBMAG_PAIR;
+ /*_.CURPAIR__V6*/ meltfptr[5] =
+ melt_pair_tail ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]))
+ {
+ /*_.CURCOMP__V7*/ meltfptr[6] =
+ melt_pair_head ((melt_ptr_t) /*_.CURPAIR__V6*/
+ meltfptr[5]);
+
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3733:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.CURCOMP__V7*/
+ meltfptr[6]));
+ }
+ ;
+ } /* end foreach_in_list meltcit2__EACHLIST */
+ /*_.CURPAIR__V6*/ meltfptr[5] = NULL;
+ /*_.CURCOMP__V7*/ meltfptr[6] = NULL;
+
+
+ /*citerepilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3730:/ clear");
+ /*clear *//*_.CURPAIR__V6*/ meltfptr[5] = 0;
+ /*^clear */
+ /*clear *//*_.CURCOMP__V7*/ meltfptr[6] = 0;
+ } /*endciterblock FOREACH_IN_LIST */
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3729:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3736:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.SRC__V2*/
+ meltfptr[1]));
+ }
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3735:/ quasiblock");
+
+
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3723:/ clear");
+ /*clear *//*_#IS_LIST__L3*/ meltfnum[2] = 0;
+ }
+ ;
+ }
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3737:/ loop");
+ /*loop */
+ {
+ labloop_ARGLOOP_4:; /*^loopbody */
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3739:/ cond");
+ /*cond */ if ( /*ifvariadic nomore */ variad_COMPLETE_SEQUENCE_AS_LIST_ix == variad_COMPLETE_SEQUENCE_AS_LIST_len) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^compute */
+
+ /*consume variadic ! */ variad_COMPLETE_SEQUENCE_AS_LIST_ix +=
+ 0;;
+ MELT_LOCATION ("warmelt-base.melt:3741:/ quasiblock");
+
+
+ /*^compute */
+ /*_.ARGLOOP__V9*/ meltfptr[8] = NULL;;
+
+ /*^exit */
+ /*exit */
+ {
+ goto labexit_ARGLOOP_4;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ else
+ {
+ MELT_LOCATION ("warmelt-base.melt:3739:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^cond */
+ /*cond */ if ( /*ifvariadic arg#1 */ variad_COMPLETE_SEQUENCE_AS_LIST_ix >= 0 && variad_COMPLETE_SEQUENCE_AS_LIST_ix + 1 <= variad_COMPLETE_SEQUENCE_AS_LIST_len && meltxargdescr_[variad_COMPLETE_SEQUENCE_AS_LIST_ix] == MELTBPAR_PTR) /*then */
+ {
+ /*^cond.then */
+ /*^block */
+ /*anyblock */
+ {
+
+ /*^compute */
+ /*_.V__V10*/ meltfptr[9] =
+ /*variadic argument value */
+ ((meltxargtab_[variad_COMPLETE_SEQUENCE_AS_LIST_ix + 0].
+ meltbp_aptr)
+ ? (*
+ (meltxargtab_
+ [variad_COMPLETE_SEQUENCE_AS_LIST_ix +
+ 0].meltbp_aptr)) : NULL);;
+ /*^compute */
+
+ /*consume variadic Value ! */
+ variad_COMPLETE_SEQUENCE_AS_LIST_ix += 1;;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3743:/ locexp");
+ meltgc_append_list ((melt_ptr_t)
+ ( /*_.NEWLIST__V4*/ meltfptr[3]),
+ (melt_ptr_t) ( /*_.V__V10*/
+ meltfptr[9]));
+ }
+ ;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3739:/ clear");
+ /*clear *//*_.V__V10*/ meltfptr[9] = 0;
+ }
+ ;
+ }
+ else
+ { /*^cond.else */
+
+ /*^block */
+ /*anyblock */
+ {
+
+ MELT_LOCATION ("warmelt-base.melt:3745:/ quasiblock");
+
+
+ /*_.VCTY__V12*/ meltfptr[11] =
+ /*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:3748:/ cond");
+ /*cond */ if (
+ /*ifisa */
+ melt_is_instance_of ((melt_ptr_t)
+ ( /*_.VCTY__V12*/
+ meltfptr[11]),
+ (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[1])))
+ ) /*then */
+ {
+ /*^cond.then */
+ /*^getslot */
+ {
+ melt_ptr_t slot = NULL, obj = NULL;
+ obj =
+ (melt_ptr_t) ( /*_.VCTY__V12*/ meltfptr[11])
+ /*=obj*/ ;
+ melt_object_get_field (slot, obj, 1, "NAMED_NAME");
+ /*_.NAMED_NAME__V13*/ meltfptr[12] = slot;
+ };
+ ;
+ }
+ else
+ { /*^cond.else */
+
+ /*_.NAMED_NAME__V13*/ meltfptr[12] = NULL;;
+ }
+ ;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3747:/ locexp");
+ error ("MELT ERROR MSG [#%ld]::: %s - %s",
+ melt_dbgcounter,
+ ("COMPLETE_SEQUENCE_AS_LIST with unsupported ctype"),
+ melt_string_str ((melt_ptr_t)
+ ( /*_.NAMED_NAME__V13*/
+ meltfptr[12])));
+ }
+ ;
+
+#if MELT_HAVE_DEBUG
+ MELT_LOCATION ("warmelt-base.melt:3749:/ cppif.then");
+ /*^block */
+ /*anyblock */
+ {
+
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ /*^cond */
+ /*cond */ if (( /*nil */ NULL)) /*then */
+ {
+ /*^cond.then */
+ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);;
+ }
+ else
+ {
+ MELT_LOCATION
+ ("warmelt-base.melt:3749:/ cond.else");
+
+ /*^block */
+ /*anyblock */
+ {
+
+
+
+
+ {
+ /*^locexp */
+ melt_assert_failed (("invalid variadic argument to COMPLETE_SEQUENCE_AS_LIST"), ("warmelt-base.melt") ? ("warmelt-base.melt") : __FILE__, (3749) ? (3749) : __LINE__, __FUNCTION__);
+ ;
+ }
+ ;
+ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0;
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*^compute */
+ /*_.IFCPP___V14*/ meltfptr[13] =
+ /*_.IFELSE___V15*/ meltfptr[14];;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3749:/ clear");
+ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0;
+ }
+
+#else /*MELT_HAVE_DEBUG */
+ /*^cppif.else */
+ /*_.IFCPP___V14*/ meltfptr[13] = ( /*nil */ NULL);
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ /*^compute */
+ /*_.LET___V11*/ meltfptr[9] =
+ /*_.IFCPP___V14*/ meltfptr[13];;
+
+ MELT_LOCATION ("warmelt-base.melt:3745:/ clear");
+ /*clear *//*_.VCTY__V12*/ meltfptr[11] = 0;
+ /*^clear */
+ /*clear *//*_.NAMED_NAME__V13*/ meltfptr[12] = 0;
+ /*^clear */
+ /*clear *//*_.IFCPP___V14*/ meltfptr[13] = 0;
+ /*epilog */
+
+ MELT_LOCATION ("warmelt-base.melt:3739:/ clear");
+ /*clear *//*_.LET___V11*/ meltfptr[9] = 0;
+ }
+ ;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ }
+ ;
+ /*epilog */
+ }
+ ;
+ ;
+ goto labloop_ARGLOOP_4;
+ labexit_ARGLOOP_4:;
+ MELT_LOCATION ("warmelt-base.melt:3737:/ loopepilog");
+ /*loopepilog */
+ /*_.FOREVER___V8*/ meltfptr[7] = /*_.ARGLOOP__V9*/ meltfptr[8];;
+ }
+ ;
+
+ MELT_CHECK_SIGNAL ();
+ ;
+ MELT_LOCATION ("warmelt-base.melt:3751:/ quasiblock");
+
+
+ /*_.RETVAL___V1*/ meltfptr[0] = /*_.NEWLIST__V4*/ meltfptr[3];;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3751:/ locexp");
+ /*ochecknores compilobj_nrep_return */
+#if MELT_HAVE_DEBUG
+ if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_)
+ melt_warn_for_no_expected_secondary_results ();
+ /* we warned when secondary results are expected but not returned. */
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ }
+ ;
+ /*^finalreturn */
+ ;
+ /*finalret */ goto labend_rout;
+ /*_.LET___V3*/ meltfptr[2] = /*_.RETURN___V16*/ meltfptr[14];;
+
+ MELT_LOCATION ("warmelt-base.melt:3721:/ clear");
+ /*clear *//*_.NEWLIST__V4*/ meltfptr[3] = 0;
+ /*^clear */
+ /*clear *//*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0;
+ /*^clear */
+ /*clear *//*_.FOREVER___V8*/ meltfptr[7] = 0;
+ /*^clear */
+ /*clear *//*_.RETURN___V16*/ meltfptr[14] = 0;
+ MELT_LOCATION ("warmelt-base.melt:3717:/ quasiblock");
+
+
+ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V3*/ meltfptr[2];;
+
+ {
+ MELT_LOCATION ("warmelt-base.melt:3717:/ locexp");
+ /*ochecknores compilobj_nrep_return */
+#if MELT_HAVE_DEBUG
+ if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_)
+ melt_warn_for_no_expected_secondary_results ();
+ /* we warned when secondary results are expected but not returned. */
+#endif /*MELT_HAVE_DEBUG */
+ ;
+ }
+ ;
+ /*^finalreturn */
+ ;
+ /*finalret */ goto labend_rout;
+ /*epilog */
+
+ /*^clear */
+ /*clear *//*_.LET___V3*/ meltfptr[2] = 0;
+ }
+
+ ;
+ goto labend_rout;
+labend_rout:
+ melt_trace_end ("COMPLETE_SEQUENCE_AS_LIST", meltcallcount);
+ MELT_TRACE_EXIT_LOCATION ();
+ melt_blocklevel_signals =
+ current_blocklevel_signals_meltrout_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST_melt;
+ 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_60_warmelt_base_COMPLETE_SEQUENCE_AS_LIST */
+
+
+
/**** end of warmelt-base+03.c ****/