/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmpbackend-cxx/cmppass2-ffi.lsp */
#include <ecl/ecl-cmp.h>
#include "cmp/cmppass2-ffi.eclh"
/* function definition for C1CLINES                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3952c1clines(cl_object v1args)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = (ECL_SYM("STRINGP",828)->symbol.gfdef);
 if (cl_every(2, T0, v1args)!=ECL_NIL) {
  goto L2;
 }
 (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(2, VV[2], v1args) /*  CMPERR */;
L2:;
 T0 = ecl_cmp_symbol_value(cl_env_copy,VV[3]);
 T1 = cl_copy_list(v1args);
 T2 = ecl_nconc(T0,T1);
 ecl_cmp_setq(cl_env_copy,VV[3],T2);
 value0 = VV[4];
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3952c1clines_va(cl_narg narg, cl_object v2args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[0]);
 {
  return L3952c1clines(v2args);
 }
}
/* function definition for OUTPUT-CLINES                                      */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3953output_clines(cl_object v1output_stream)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2;
  cl_object v3s;
  cl_object v4;
  {
   cl_object v5;
   v5 = ecl_cmp_symbol_value(cl_env_copy,VV[3]);
   if (ecl_unlikely(!ECL_LISTP(v5))) FEtype_error_list(v5);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v2 = v5;
  }
  v3s = ECL_NIL;
  v4 = v2;
L8:;
  if (!(ecl_endp(v4))){
   goto L10;
  }
  goto L9;
L10:;
  v3s = ECL_CONS_CAR(v4);
  {
   cl_object v5;
   v5 = ECL_CONS_CDR(v4);
   if (ecl_unlikely(!ECL_LISTP(v5))) FEtype_error_list(v5);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4 = v5;
  }
  (ecl_terpri(v1output_stream));
  {
   cl_object v5;
   v5 = si_make_seq_iterator(2, v3s, ecl_make_int8_t(0));
L23:;
   if (v5!=ECL_NIL) {
    goto L25;
   }
   goto L20;
L25:;
   {
    cl_object v6;
    v6 = si_seq_iterator_ref(v3s, v5);
    if (!((ECL_CODE_CHAR((ecl_character)(64))==(v6)))){
     goto L27;
    }
    if (Null(v6)){
     goto L20;
    }
    goto L21;
   }
L27:;
   v5 = si_seq_iterator_next(v3s, v5);
   goto L23;
  }
L21:;
  (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(2, VV[13], ECL_SYM("CLINES",2111)) /*  CMPERR */;
  goto L19;
L20:;
  cl_write_string(2, v3s, v1output_stream);
L19:;
  goto L8;
L9:;
 }
 (ecl_terpri(v1output_stream));
 T0 = ECL_NIL;
 ecl_cmp_setq(cl_env_copy,VV[3],T0);
 value0 = ECL_NIL;
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3953output_clines_va(cl_narg narg, cl_object v2output_stream, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[6]);
 {
  return L3953output_clines(v2output_stream);
 }
}
/* function definition for C2C-PROGN                                          */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3954c2c_progn(cl_object v1c1form, cl_object v2variables, cl_object v3statements)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 ecl_bds_bind(cl_env_copy,VV[16],VV[17]);         /*  *DESTINATION*           */
 {
  cl_object v4;
  cl_object v5form;
  cl_object v6;
  {
   cl_object v7;
   v7 = v3statements;
   if (ecl_unlikely(!ECL_LISTP(v7))) FEtype_error_list(v7);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4 = v7;
  }
  v5form = ECL_NIL;
  v6 = v4;
L7:;
  if (!(ecl_endp(v6))){
   goto L9;
  }
  goto L8;
L9:;
  v5form = ECL_CONS_CAR(v6);
  {
   cl_object v7;
   v7 = ECL_CONS_CDR(v6);
   if (ecl_unlikely(!ECL_LISTP(v7))) FEtype_error_list(v7);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v6 = v7;
  }
  if (!(ECL_STRINGP(v5form))){
   goto L18;
  }
  (cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(0) /*  WT-NL    */;
  (cl_env_copy->function=ecl_fdefinition(VV[19]))->cfun.entry(5, ECL_SYM("VOID",1424), v5form, v2variables, ECL_T, ECL_NIL) /*  WT-C-INLINE-LOC */;
  goto L17;
L18:;
  (cl_env_copy->function=ecl_fdefinition(VV[20]))->cfun.entry(1, v5form) /*  C2EXPR* */;
L17:;
  goto L7;
L8:;
  (cl_env_copy->function=ecl_fdefinition(VV[21]))->cfun.entry(1, ecl_cmp_symbol_value(cl_env_copy,VV[22])) /*  UNWIND-EXIT */;
  value0 = ECL_NIL;
  cl_env_copy->nvalues = 1;
  ecl_bds_unwind1(cl_env_copy);
  return value0;
 }
}
static cl_object L3954c2c_progn_va(cl_narg narg, cl_object v7c1form, cl_object v8variables, cl_object v9statements, ...)
{
 if (ecl_unlikely(narg!=3)) FEwrong_num_arguments(VV[15]);
 {
  return L3954c2c_progn(v7c1form, v8variables, v9statements);
 }
}
/* function definition for C2C-INLINE                                         */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3955c2c_inline(cl_narg narg, cl_object v1c1form, cl_object v2arguments, ...)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 if (ecl_unlikely(narg<2)) FEwrong_num_arguments(VV[24]);
 {
  cl_object v3rest;
  ecl_va_list args; ecl_va_start(args,v2arguments,narg,2);
  v3rest = cl_grab_rest_args(args);
  ecl_va_end(args);
  {
   cl_object v4;
   cl_object v5;
   v4 = ecl_cmp_symbol_value(cl_env_copy,VV[26]);
   v5 = ecl_cmp_symbol_value(cl_env_copy,VV[27]);
   ecl_bds_bind(cl_env_copy,VV[28],ecl_make_int8_t(0)); /*  *INLINE-BLOCKS*   */
   ecl_bds_bind(cl_env_copy,VV[26],v4);           /*  *TEMP*                  */
   ecl_bds_bind(cl_env_copy,VV[27],v5);           /*  *LCL*                   */
   T0 = ecl_fdefinition(VV[29]);
   T1 = (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(1, v2arguments) /*  INLINE-ARGS */;
   T2 = cl_apply(3, T0, T1, v3rest);
   (cl_env_copy->function=ecl_fdefinition(VV[21]))->cfun.entry(1, T2) /*  UNWIND-EXIT */;
   value0 = (cl_env_copy->function=ecl_fdefinition(VV[31]))->cfun.entry(0) /*  CLOSE-INLINE-BLOCKS */;
   ecl_bds_unwind1(cl_env_copy);
   ecl_bds_unwind1(cl_env_copy);
   ecl_bds_unwind1(cl_env_copy);
   return value0;
  }
 }
}
#include "cmp/cmppass2-ffi.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _eclQfgLg99AFZlr9_mMd0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPBACKEND-CXX;CMPPASS2-FFI.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_eclQfgLg99AFZlr9_mMd0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(VVtemp[0]);
  ecl_cmp_defun(VV[33]);                          /*  C1CLINES                */
  ecl_cmp_defun(VV[34]);                          /*  OUTPUT-CLINES           */
  ecl_cmp_defun(VV[35]);                          /*  C2C-PROGN               */
  ecl_cmp_defun(VV[36]);                          /*  C2C-INLINE              */
}
