gcc 2.95.2: Internal compiler error in `lookup_attribute'
Fergus Henderson
fjh@cs.mu.OZ.AU
Fri Nov 24 03:51:00 GMT 2000
The following program makes use of `attribute((regparm(2)))'.
GNU C 2.95.2 on Linux gets an internal error when compiling it.
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)
$ gcc -c bug.c
bug.c:2250: Internal compiler error in `lookup_attribute', at tree.c:3527
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
$ cat bug.c
typedef unsigned int MR_uintptr_t;
typedef int MR_intptr_t;
typedef unsigned long long MR_uint_least64_t;
typedef long long MR_int_least64_t;
typedef unsigned int MR_uint_least32_t;
typedef int MR_int_least32_t;
typedef unsigned short MR_uint_least16_t;
typedef short MR_int_least16_t;
typedef unsigned char MR_uint_least8_t;
typedef signed char MR_int_least8_t;
typedef MR_uintptr_t MR_Word;
typedef MR_intptr_t MR_Integer;
typedef MR_uintptr_t MR_Unsigned;
typedef MR_intptr_t MR_Bool;
typedef void MR_Code;
typedef double MR_Float64;
typedef char MR_Char;
typedef unsigned char MR_UnsignedChar;
typedef MR_Char *MR_String;
typedef const MR_Char *MR_ConstString;
typedef __attribute__((__regparm__(2))) void (*MR_NestedCont) (void);
typedef __attribute__((__regparm__(2))) void (*MR_Cont) (void *);
typedef void *MR_Box;
typedef double MR_Float;
MR_Integer MR_hash_float(MR_Float);
typedef unsigned int size_t;
typedef long int wchar_t;
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) ;
extern int atoi (__const char *__nptr) ;
extern long int atol (__const char *__nptr) ;
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) ;
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base) ;
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) ;
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group) ;
extern long double __strtold_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **
__restrict __endptr,
int __base,
int __group) ;
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0) );
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0) , 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0) , 10);
}
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern void * malloc (size_t __size) ;
extern void * calloc (size_t __nmemb, size_t __size) ;
extern void * realloc (void * __ptr, size_t __size) ;
extern void free (void * __ptr) ;
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern void exit (int __status) __attribute__ ((__noreturn__));
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int system (__const char *__command) ;
typedef int (*__compar_fn_t) (__const void * , __const void * ) ;
extern void * bsearch (__const void * __key, __const void * __base,
size_t __nmemb, size_t __size,
__compar_fn_t __compar) ;
extern void qsort (void * __base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) ;
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
extern div_t div (int __numer, int __denom) __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n) ;
extern void __assert_fail (__const char *__assertion,
__const char *__file,
unsigned int __line,
__const char *__function)
__attribute__ ((__noreturn__));
extern void __assert_perror_fail (int __errnum,
__const char *__file,
unsigned int __line,
__const char *__function)
__attribute__ ((__noreturn__));
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef unsigned long int __fd_mask;
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask)) ];
} __fd_set;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_long __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
enum
{
_ISupper = (( 0 ) < 8 ? ((1 << ( 0 )) << 8) : ((1 << ( 0 )) >> 8)) ,
_ISlower = (( 1 ) < 8 ? ((1 << ( 1 )) << 8) : ((1 << ( 1 )) >> 8)) ,
_ISalpha = (( 2 ) < 8 ? ((1 << ( 2 )) << 8) : ((1 << ( 2 )) >> 8)) ,
_ISdigit = (( 3 ) < 8 ? ((1 << ( 3 )) << 8) : ((1 << ( 3 )) >> 8)) ,
_ISxdigit = (( 4 ) < 8 ? ((1 << ( 4 )) << 8) : ((1 << ( 4 )) >> 8)) ,
_ISspace = (( 5 ) < 8 ? ((1 << ( 5 )) << 8) : ((1 << ( 5 )) >> 8)) ,
_ISprint = (( 6 ) < 8 ? ((1 << ( 6 )) << 8) : ((1 << ( 6 )) >> 8)) ,
_ISgraph = (( 7 ) < 8 ? ((1 << ( 7 )) << 8) : ((1 << ( 7 )) >> 8)) ,
_ISblank = (( 8 ) < 8 ? ((1 << ( 8 )) << 8) : ((1 << ( 8 )) >> 8)) ,
_IScntrl = (( 9 ) < 8 ? ((1 << ( 9 )) << 8) : ((1 << ( 9 )) >> 8)) ,
_ISpunct = (( 10 ) < 8 ? ((1 << ( 10 )) << 8) : ((1 << ( 10 )) >> 8)) ,
_ISalnum = (( 11 ) < 8 ? ((1 << ( 11 )) << 8) : ((1 << ( 11 )) >> 8))
};
extern __const unsigned short int *__ctype_b;
extern __const __int32_t *__ctype_tolower;
extern __const __int32_t *__ctype_toupper;
extern int isalnum (int) ;
extern int isalpha (int) ;
extern int iscntrl (int) ;
extern int isdigit (int) ;
extern int islower (int) ;
extern int isgraph (int) ;
extern int isprint (int) ;
extern int ispunct (int) ;
extern int isspace (int) ;
extern int isupper (int) ;
extern int isxdigit (int) ;
extern int tolower (int __c) ;
extern int toupper (int __c) ;
extern __inline int
tolower (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}
extern __inline int
toupper (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
extern const char MR_grade_v3_hlc_gc_tags2 ;
typedef enum { MR_use_now, MR_use_later } MR_when_to_use;
extern MR_Bool MR_init_thread(MR_when_to_use);
extern void MR_finalize_thread_engine(void);
typedef const struct MR_TypeCtorInfo_Struct *MR_TypeCtorInfo;
typedef struct MR_TypeInfo_Almost_Struct *MR_TypeInfo;
typedef const struct MR_PseudoTypeInfo_Almost_Struct *MR_PseudoTypeInfo;
struct MR_TypeInfo_Almost_Struct { MR_TypeCtorInfo MR_ti_type_ctor_info; MR_Integer MR_ti_higher_order_arity; MR_TypeInfo MR_ti_higher_order_arg_typeinfos[
0 ]; } ;
struct MR_PseudoTypeInfo_Almost_Struct { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[
0 ]; } ;
typedef MR_TypeInfo *MR_TypeInfoParams;
typedef enum {
MR_TYPECTOR_REP_ENUM , mercury__private_builtin__MR_TYPECTOR_REP_ENUM = MR_TYPECTOR_REP_ENUM ,
MR_TYPECTOR_REP_ENUM_USEREQ , mercury__private_builtin__MR_TYPECTOR_REP_ENUM_USEREQ = MR_TYPECTOR_REP_ENUM_USEREQ ,
MR_TYPECTOR_REP_DU , mercury__private_builtin__MR_TYPECTOR_REP_DU = MR_TYPECTOR_REP_DU ,
MR_TYPECTOR_REP_DU_USEREQ , mercury__private_builtin__MR_TYPECTOR_REP_DU_USEREQ = MR_TYPECTOR_REP_DU_USEREQ ,
MR_TYPECTOR_REP_NOTAG , mercury__private_builtin__MR_TYPECTOR_REP_NOTAG = MR_TYPECTOR_REP_NOTAG ,
MR_TYPECTOR_REP_NOTAG_USEREQ , mercury__private_builtin__MR_TYPECTOR_REP_NOTAG_USEREQ = MR_TYPECTOR_REP_NOTAG_USEREQ ,
MR_TYPECTOR_REP_EQUIV , mercury__private_builtin__MR_TYPECTOR_REP_EQUIV = MR_TYPECTOR_REP_EQUIV ,
MR_TYPECTOR_REP_EQUIV_VAR , mercury__private_builtin__MR_TYPECTOR_REP_EQUIV_VAR = MR_TYPECTOR_REP_EQUIV_VAR ,
MR_TYPECTOR_REP_INT , mercury__private_builtin__MR_TYPECTOR_REP_INT = MR_TYPECTOR_REP_INT ,
MR_TYPECTOR_REP_CHAR , mercury__private_builtin__MR_TYPECTOR_REP_CHAR = MR_TYPECTOR_REP_CHAR ,
MR_TYPECTOR_REP_FLOAT , mercury__private_builtin__MR_TYPECTOR_REP_FLOAT = MR_TYPECTOR_REP_FLOAT ,
MR_TYPECTOR_REP_STRING , mercury__private_builtin__MR_TYPECTOR_REP_STRING = MR_TYPECTOR_REP_STRING ,
MR_TYPECTOR_REP_PRED , mercury__private_builtin__MR_TYPECTOR_REP_PRED = MR_TYPECTOR_REP_PRED ,
MR_TYPECTOR_REP_UNIV , mercury__private_builtin__MR_TYPECTOR_REP_UNIV = MR_TYPECTOR_REP_UNIV ,
MR_TYPECTOR_REP_VOID , mercury__private_builtin__MR_TYPECTOR_REP_VOID = MR_TYPECTOR_REP_VOID ,
MR_TYPECTOR_REP_C_POINTER , mercury__private_builtin__MR_TYPECTOR_REP_C_POINTER = MR_TYPECTOR_REP_C_POINTER ,
MR_TYPECTOR_REP_TYPEINFO , mercury__private_builtin__MR_TYPECTOR_REP_TYPEINFO = MR_TYPECTOR_REP_TYPEINFO ,
MR_TYPECTOR_REP_TYPECLASSINFO , mercury__private_builtin__MR_TYPECTOR_REP_TYPECLASSINFO = MR_TYPECTOR_REP_TYPECLASSINFO ,
MR_TYPECTOR_REP_ARRAY , mercury__private_builtin__MR_TYPECTOR_REP_ARRAY = MR_TYPECTOR_REP_ARRAY ,
MR_TYPECTOR_REP_SUCCIP , mercury__private_builtin__MR_TYPECTOR_REP_SUCCIP = MR_TYPECTOR_REP_SUCCIP ,
MR_TYPECTOR_REP_HP , mercury__private_builtin__MR_TYPECTOR_REP_HP = MR_TYPECTOR_REP_HP ,
MR_TYPECTOR_REP_CURFR , mercury__private_builtin__MR_TYPECTOR_REP_CURFR = MR_TYPECTOR_REP_CURFR ,
MR_TYPECTOR_REP_MAXFR , mercury__private_builtin__MR_TYPECTOR_REP_MAXFR = MR_TYPECTOR_REP_MAXFR ,
MR_TYPECTOR_REP_REDOFR , mercury__private_builtin__MR_TYPECTOR_REP_REDOFR = MR_TYPECTOR_REP_REDOFR ,
MR_TYPECTOR_REP_REDOIP , mercury__private_builtin__MR_TYPECTOR_REP_REDOIP = MR_TYPECTOR_REP_REDOIP ,
MR_TYPECTOR_REP_TRAIL_PTR , mercury__private_builtin__MR_TYPECTOR_REP_TRAIL_PTR = MR_TYPECTOR_REP_TRAIL_PTR ,
MR_TYPECTOR_REP_TICKET , mercury__private_builtin__MR_TYPECTOR_REP_TICKET = MR_TYPECTOR_REP_TICKET ,
MR_TYPECTOR_REP_NOTAG_GROUND , mercury__private_builtin__MR_TYPECTOR_REP_NOTAG_GROUND = MR_TYPECTOR_REP_NOTAG_GROUND ,
MR_TYPECTOR_REP_NOTAG_GROUND_USEREQ , mercury__private_builtin__MR_TYPECTOR_REP_NOTAG_GROUND_USEREQ = MR_TYPECTOR_REP_NOTAG_GROUND_USEREQ ,
MR_TYPECTOR_REP_EQUIV_GROUND , mercury__private_builtin__MR_TYPECTOR_REP_EQUIV_GROUND = MR_TYPECTOR_REP_EQUIV_GROUND ,
MR_TYPECTOR_REP_TUPLE , mercury__private_builtin__MR_TYPECTOR_REP_TUPLE = MR_TYPECTOR_REP_TUPLE ,
MR_TYPECTOR_REP_UNKNOWN , mercury__private_builtin__MR_TYPECTOR_REP_UNKNOWN = MR_TYPECTOR_REP_UNKNOWN
} MR_TypeCtorRep;
typedef struct {
MR_int_least16_t MR_exist_arg_num;
MR_int_least16_t MR_exist_offset_in_tci;
} MR_DuExistLocn;
typedef struct {
MR_int_least16_t MR_exist_typeinfos_plain;
MR_int_least16_t MR_exist_typeinfos_in_tci;
MR_int_least16_t MR_exist_tcis;
const MR_DuExistLocn *MR_exist_typeinfo_locns;
} MR_DuExistInfo;
typedef enum {
MR_SECTAG_NONE , mercury__private_builtin__MR_SECTAG_NONE = MR_SECTAG_NONE ,
MR_SECTAG_LOCAL , mercury__private_builtin__MR_SECTAG_LOCAL = MR_SECTAG_LOCAL ,
MR_SECTAG_REMOTE , mercury__private_builtin__MR_SECTAG_REMOTE = MR_SECTAG_REMOTE
} MR_Sectag_Locn;
typedef struct {
MR_ConstString MR_du_functor_name;
MR_int_least16_t MR_du_functor_orig_arity;
MR_int_least16_t MR_du_functor_arg_type_contains_var;
MR_Sectag_Locn MR_du_functor_sectag_locn;
MR_int_least8_t MR_du_functor_primary;
MR_int_least32_t MR_du_functor_secondary;
MR_int_least32_t MR_du_functor_ordinal;
const MR_PseudoTypeInfo *MR_du_functor_arg_types;
const MR_ConstString *MR_du_functor_arg_names;
const MR_DuExistInfo *MR_du_functor_exist_info;
} MR_DuFunctorDesc;
typedef struct {
MR_ConstString MR_enum_functor_name;
MR_int_least32_t MR_enum_functor_ordinal;
} MR_EnumFunctorDesc;
typedef struct {
MR_ConstString MR_notag_functor_name;
MR_PseudoTypeInfo MR_notag_functor_arg_type;
} MR_NotagFunctorDesc;
typedef struct {
MR_int_least32_t MR_sectag_sharers;
MR_Sectag_Locn MR_sectag_locn;
const MR_DuFunctorDesc * const * MR_sectag_alternatives;
} MR_DuPtagLayout;
typedef MR_DuPtagLayout *MR_DuTypeLayout;
typedef MR_EnumFunctorDesc **MR_EnumTypeLayout;
typedef MR_NotagFunctorDesc *MR_NotagTypeLayout;
typedef MR_PseudoTypeInfo MR_EquivLayout;
typedef void *MR_ProcAddr;
typedef union {
void *layout_init;
MR_DuTypeLayout layout_du;
MR_EnumTypeLayout layout_enum;
MR_NotagTypeLayout layout_notag;
MR_EquivLayout layout_equiv;
} MR_TypeLayout;
typedef union {
void *functors_init;
MR_DuFunctorDesc **functors_du;
MR_EnumFunctorDesc **functors_enum;
MR_NotagFunctorDesc *functors_notag;
} MR_TypeFunctors;
struct MR_TypeCtorInfo_Struct {
MR_Integer arity;
MR_ProcAddr unify_pred;
MR_ProcAddr new_unify_pred;
MR_ProcAddr compare_pred;
MR_TypeCtorRep type_ctor_rep;
MR_ProcAddr solver_pred;
MR_ProcAddr init_pred;
MR_ConstString type_ctor_module_name;
MR_ConstString type_ctor_name;
MR_Integer type_ctor_version;
MR_TypeFunctors type_functors;
MR_TypeLayout type_layout;
MR_int_least32_t type_ctor_num_functors;
MR_int_least8_t type_ctor_num_ptags;
};
extern const struct MR_TypeCtorInfo_Struct
mercury__builtin__builtin__type_ctor_info_pred_0,
mercury__builtin__builtin__type_ctor_info_func_0,
mercury__builtin__builtin__type_ctor_info_tuple_0;
extern int MR_compare_type_info(MR_TypeInfo t1, MR_TypeInfo t2);
extern MR_TypeInfo MR_collapse_equivalences(MR_TypeInfo type_info);
extern MR_TypeInfo MR_create_type_info(
const MR_TypeInfoParams type_info_params,
const MR_PseudoTypeInfo pseudo_type_info);
extern MR_TypeInfo MR_create_type_info_maybe_existq(
const MR_TypeInfoParams type_info_params,
const MR_PseudoTypeInfo pseudo_type_info,
const MR_Word *data_value,
const MR_DuFunctorDesc *functor_descriptor);
struct MR_MemoryCellNode {
void *data;
struct MR_MemoryCellNode *next;
};
typedef struct MR_MemoryCellNode *MR_MemoryList;
extern MR_TypeInfo MR_make_type_info(
const MR_TypeInfoParams type_info_params,
const MR_PseudoTypeInfo pseudo_type_info,
MR_MemoryList *allocated);
extern MR_TypeInfo MR_make_type_info_maybe_existq(
const MR_TypeInfoParams type_info_params,
const MR_PseudoTypeInfo pseudo_type_info,
const MR_Word *data_value,
const MR_DuFunctorDesc *functor_descriptor,
MR_MemoryList *allocated);
extern void MR_deallocate(MR_MemoryList allocated_memory_cells);
typedef enum { MR_PREDICATE, MR_FUNCTION } MR_PredFunc;
typedef MR_int_least16_t MR_Determinism;
typedef MR_uint_least32_t MR_Long_Lval;
typedef enum {
MR_LONG_LVAL_TYPE_R,
MR_LONG_LVAL_TYPE_F,
MR_LONG_LVAL_TYPE_STACKVAR,
MR_LONG_LVAL_TYPE_FRAMEVAR,
MR_LONG_LVAL_TYPE_SUCCIP,
MR_LONG_LVAL_TYPE_MAXFR,
MR_LONG_LVAL_TYPE_CURFR,
MR_LONG_LVAL_TYPE_HP,
MR_LONG_LVAL_TYPE_SP,
MR_LONG_LVAL_TYPE_INDIRECT,
MR_LONG_LVAL_TYPE_UNKNOWN
} MR_Long_Lval_Type;
typedef MR_uint_least8_t MR_Short_Lval;
typedef enum {
MR_SHORT_LVAL_TYPE_R,
MR_SHORT_LVAL_TYPE_STACKVAR,
MR_SHORT_LVAL_TYPE_FRAMEVAR,
MR_SHORT_LVAL_TYPE_SPECIAL
} MR_Short_Lval_Type;
typedef struct MR_Type_Param_Locns_Struct {
MR_uint_least32_t MR_tp_param_count;
MR_Long_Lval MR_tp_param_locns[0 ];
} MR_Type_Param_Locns;
typedef struct MR_Stack_Layout_Vars_Struct {
MR_Integer MR_slvs_var_count;
void *MR_slvs_locns_types;
MR_uint_least16_t *MR_slvs_var_nums;
MR_Type_Param_Locns *MR_slvs_tvars;
} MR_Stack_Layout_Vars;
typedef struct MR_Stack_Layout_User_Proc_Struct {
MR_PredFunc MR_user_pred_or_func;
MR_ConstString MR_user_decl_module;
MR_ConstString MR_user_def_module;
MR_ConstString MR_user_name;
MR_int_least16_t MR_user_arity;
MR_int_least16_t MR_user_mode;
} MR_Stack_Layout_User_Proc;
typedef struct MR_Stack_Layout_Compiler_Proc_Struct {
MR_ConstString MR_comp_type_name;
MR_ConstString MR_comp_type_module;
MR_ConstString MR_comp_def_module;
MR_ConstString MR_comp_pred_name;
MR_int_least16_t MR_comp_arity;
MR_int_least16_t MR_comp_mode;
} MR_Stack_Layout_Compiler_Proc;
typedef union MR_Stack_Layout_Proc_Id_Union {
MR_Stack_Layout_User_Proc MR_proc_user;
MR_Stack_Layout_Compiler_Proc MR_proc_comp;
} MR_Stack_Layout_Proc_Id;
typedef enum {
MR_EVAL_METHOD_NORMAL,
MR_EVAL_METHOD_LOOP_CHECK,
MR_EVAL_METHOD_MEMO,
MR_EVAL_METHOD_MINIMAL
} MR_EvalMethod;
typedef MR_int_least8_t MR_EvalMethodInt;
typedef struct MR_Stack_Layout_Entry_Struct {
MR_Code *MR_sle_code_addr;
MR_Long_Lval MR_sle_succip_locn;
MR_int_least16_t MR_sle_stack_slots;
MR_Determinism MR_sle_detism;
MR_Stack_Layout_Proc_Id MR_sle_proc_id;
struct MR_Stack_Layout_Label_Struct
*MR_sle_call_label;
struct MR_Module_Layout_Struct
*MR_sle_module_layout;
MR_Word MR_sle_proc_rep;
MR_int_least16_t *MR_sle_used_var_names;
MR_int_least16_t MR_sle_max_var_num;
MR_int_least16_t MR_sle_max_r_num;
MR_int_least8_t MR_sle_maybe_from_full;
MR_int_least8_t MR_sle_maybe_trail;
MR_int_least8_t MR_sle_maybe_maxfr;
MR_EvalMethodInt MR_sle_eval_method_CAST_ME;
MR_int_least8_t MR_sle_maybe_call_table;
MR_int_least8_t MR_sle_maybe_decl_debug;
} MR_Stack_Layout_Entry;
typedef struct MR_Stack_Layout_Label_Struct {
MR_Stack_Layout_Entry *MR_sll_entry;
MR_int_least16_t MR_sll_port;
MR_int_least16_t MR_sll_goal_path;
MR_Stack_Layout_Vars MR_sll_var_info;
} MR_Stack_Layout_Label;
typedef enum {
MR_TRACE_LEVEL_NONE,
MR_TRACE_LEVEL_SHALLOW,
MR_TRACE_LEVEL_DEEP,
MR_TRACE_LEVEL_DECL,
MR_TRACE_LEVEL_DECL_REP
} MR_Trace_Level;
typedef struct MR_Module_File_Layout_Struct {
MR_String MR_mfl_filename;
MR_Integer MR_mfl_label_count;
MR_int_least16_t *MR_mfl_label_lineno;
MR_Stack_Layout_Label **MR_mfl_label_layout;
} MR_Module_File_Layout;
typedef struct MR_Module_Layout_Struct {
MR_String MR_ml_name;
MR_Integer MR_ml_string_table_size;
char *MR_ml_string_table;
MR_Integer MR_ml_proc_count;
MR_Stack_Layout_Entry **MR_ml_procs;
MR_Integer MR_ml_filename_count;
MR_Module_File_Layout **MR_ml_module_file_layout;
MR_Trace_Level MR_ml_trace_level;
} MR_Module_Layout;
typedef struct MR_Closure_Layout_Struct {
MR_Stack_Layout_Proc_Id proc_id;
MR_Type_Param_Locns *type_params;
MR_Integer num_all_args;
MR_PseudoTypeInfo arg_pseudo_type_info[0 ];
} MR_Closure_Layout;
typedef struct MR_Closure_Struct {
MR_Closure_Layout *MR_closure_layout;
MR_Code *MR_closure_code;
MR_Unsigned MR_closure_num_hidden_args;
MR_Word MR_closure_hidden_args_0[0 ];
} MR_Closure;
typedef MR_Word Word;
typedef MR_Code Code;
typedef MR_Char Char;
typedef MR_Float Float;
typedef MR_Float64 Float64;
typedef MR_Integer Integer;
typedef MR_Unsigned Unsigned;
typedef MR_UnsignedChar UnsignedChar;
typedef MR_String String;
typedef MR_ConstString ConstString;
typedef MR_Bool Bool;
extern MR_Word MR_get_reg(int);
extern MR_Word MR_set_reg(int, MR_Word);
extern MR_Word MR_virtual_reg_map[32 ];
extern unsigned long MR_num_uses[(32 + 16) ];
typedef struct MR_MemoryZone_Struct MR_MemoryZone;
typedef char MR_ZoneHandler(MR_Word *addr, MR_MemoryZone *zone,
void *context);
struct MR_MemoryZone_Struct {
MR_MemoryZone *next;
const char *name;
int id;
MR_Word *bottom;
MR_Word *top;
MR_Word *min;
MR_Word *max;
MR_Word *hardmax;
MR_Word *redzone_base;
MR_Word *redzone;
MR_ZoneHandler *handler;
};
int MR_protect_pages(void *addr, size_t size, int prot_flags);
extern void MR_init_memory_arena(void);
extern void MR_init_zones(void);
extern MR_MemoryZone *MR_create_zone(const char *name, int id,
size_t size, size_t offset, size_t redsize,
MR_ZoneHandler *handler);
extern MR_MemoryZone *MR_construct_zone(const char *name, int Id,
MR_Word *base, size_t size, size_t offset,
size_t redsize, MR_ZoneHandler *handler);
extern void MR_reset_redzone(MR_MemoryZone *zone);
extern MR_MemoryZone *MR_get_used_memory_zones(void);
extern void MR_debug_memory(void);
extern size_t MR_next_offset(void);
typedef int ptrdiff_t;
typedef unsigned int wint_t;
typedef void * GC_PTR;
typedef unsigned long GC_word;
typedef long GC_signed_word;
extern GC_word GC_gc_no;
extern GC_PTR (*GC_oom_fn) (size_t bytes_requested) ;
extern int GC_find_leak;
extern int GC_quiet;
extern int GC_finalize_on_demand;
extern int GC_java_finalization;
extern int GC_dont_gc;
extern int GC_dont_expand;
extern int GC_use_entire_heap;
extern int GC_full_freq;
extern GC_word GC_non_gc_bytes;
extern GC_word GC_free_space_divisor;
extern GC_word GC_max_retries;
extern char *GC_stackbottom;
extern GC_PTR GC_malloc (size_t size_in_bytes) ;
extern GC_PTR GC_malloc_atomic (size_t size_in_bytes) ;
extern GC_PTR GC_malloc_uncollectable (size_t size_in_bytes) ;
extern GC_PTR GC_malloc_stubborn (size_t size_in_bytes) ;
extern GC_PTR GC_malloc_atomic_uncollectable (size_t size_in_bytes) ;
extern void GC_free (GC_PTR object_addr) ;
extern void GC_change_stubborn (GC_PTR) ;
extern void GC_end_stubborn_change (GC_PTR) ;
extern GC_PTR GC_base (GC_PTR displaced_pointer) ;
extern size_t GC_size (GC_PTR object_addr) ;
extern GC_PTR GC_realloc
(GC_PTR old_object, size_t new_size_in_bytes) ;
extern int GC_expand_hp (size_t number_of_bytes) ;
extern void GC_set_max_heap_size (GC_word n) ;
extern void GC_exclude_static_roots (GC_PTR start, GC_PTR finish) ;
extern void GC_clear_roots (void) ;
extern void GC_add_roots (char * low_address,
char * high_address_plus_1) ;
extern void GC_register_displacement (GC_word n) ;
extern void GC_debug_register_displacement (GC_word n) ;
extern void GC_gcollect (void) ;
typedef int (* GC_stop_func) (void) ;
extern int GC_try_to_collect (GC_stop_func stop_func) ;
extern size_t GC_get_heap_size (void) ;
extern size_t GC_get_free_bytes (void) ;
extern size_t GC_get_bytes_since_gc (void) ;
extern void GC_enable_incremental (void) ;
extern int GC_collect_a_little (void) ;
extern GC_PTR GC_malloc_ignore_off_page (size_t lb) ;
extern GC_PTR GC_malloc_atomic_ignore_off_page (size_t lb) ;
extern GC_PTR GC_debug_malloc
(size_t size_in_bytes, const char * s, int i ) ;
extern GC_PTR GC_debug_malloc_atomic
(size_t size_in_bytes, const char * s, int i ) ;
extern GC_PTR GC_debug_malloc_uncollectable
(size_t size_in_bytes, const char * s, int i ) ;
extern GC_PTR GC_debug_malloc_stubborn
(size_t size_in_bytes, const char * s, int i ) ;
extern void GC_debug_free (GC_PTR object_addr) ;
extern GC_PTR GC_debug_realloc
(GC_PTR old_object, size_t new_size_in_bytes,
const char * s, int i ) ;
extern void GC_debug_change_stubborn (GC_PTR) ;
extern void GC_debug_end_stubborn_change (GC_PTR) ;
typedef void (*GC_finalization_proc)
(GC_PTR obj, GC_PTR client_data) ;
extern void GC_register_finalizer
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern void GC_debug_register_finalizer
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern void GC_register_finalizer_ignore_self
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern void GC_debug_register_finalizer_ignore_self
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern void GC_register_finalizer_no_order
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern void GC_debug_register_finalizer_no_order
(GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
GC_finalization_proc *ofn, GC_PTR *ocd) ;
extern int GC_register_disappearing_link (GC_PTR * ) ;
extern int GC_general_register_disappearing_link
(GC_PTR * , GC_PTR obj) ;
extern int GC_unregister_disappearing_link (GC_PTR * ) ;
extern GC_PTR GC_make_closure (GC_finalization_proc fn, GC_PTR data) ;
extern void GC_debug_invoke_finalizer (GC_PTR obj, GC_PTR data) ;
extern int GC_should_invoke_finalizers (void) ;
extern int GC_invoke_finalizers (void) ;
typedef void (*GC_warn_proc) (char *msg, GC_word arg) ;
extern GC_warn_proc GC_set_warn_proc (GC_warn_proc p) ;
typedef GC_PTR (*GC_fn_type) (GC_PTR client_data) ;
extern GC_PTR GC_call_with_alloc_lock
(GC_fn_type fn, GC_PTR client_data) ;
extern GC_PTR GC_same_obj (GC_PTR p, GC_PTR q) ;
extern GC_PTR GC_pre_incr (GC_PTR *p, size_t how_much) ;
extern GC_PTR GC_post_incr (GC_PTR *p, size_t how_much) ;
extern GC_PTR GC_is_visible (GC_PTR p) ;
extern GC_PTR GC_is_valid_displacement (GC_PTR p) ;
extern void (*GC_same_obj_print_proc) (GC_PTR p, GC_PTR q) ;
extern void (*GC_is_valid_displacement_print_proc)
(GC_PTR p) ;
extern void (*GC_is_visible_print_proc)
(GC_PTR p) ;
extern void MR_init_memory(void);
extern void MR_init_heap(void);
extern void MR_init_conservative_GC(void);
extern void *MR_malloc(size_t n);
extern void *MR_realloc(void *old, size_t n);
extern void *MR_GC_malloc(size_t num_bytes);
extern void *MR_GC_malloc_uncollectable(size_t num_bytes);
extern void *MR_GC_realloc(void *ptr, size_t num_bytes);
char *MR_copy_string(const char *s);
extern size_t MR_unit;
extern size_t MR_page_size;
extern void MR_register_type_ctor_info(
MR_TypeCtorInfo type_ctor_info);
extern MR_TypeCtorInfo MR_lookup_type_ctor_info(const char *module_name,
const char *type_name, int arity);
typedef int __jmp_buf[6];
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int))) ];
} __sigset_t;
typedef struct __jmp_buf_tag
{
__jmp_buf __jmpbuf;
int __mask_was_saved;
__sigset_t __saved_mask;
} jmp_buf[1];
extern int __sigsetjmp (jmp_buf __env, int __savemask) ;
extern void longjmp (jmp_buf __env, int __val)
__attribute__ ((__noreturn__));
extern void * memcpy (void * __restrict __dest,
__const void * __restrict __src, size_t __n) ;
extern void * memmove (void * __dest, __const void * __src,
size_t __n) ;
extern void * memset (void * __s, int __c, size_t __n) ;
extern int memcmp (__const void * __s1, __const void * __s2,
size_t __n) ;
extern void * memchr (__const void * __s, int __c, size_t __n) ;
extern char *strcpy (char *__restrict __dest,
__const char *__restrict __src) ;
extern char *strncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest,
__const char *__restrict __src) ;
extern char *strncat (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2) ;
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) ;
extern int strcoll (__const char *__s1, __const char *__s2) ;
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *strchr (__const char *__s, int __c) ;
extern char *strrchr (__const char *__s, int __c) ;
extern size_t strcspn (__const char *__s, __const char *__reject) ;
extern size_t strspn (__const char *__s, __const char *__accept) ;
extern char *strpbrk (__const char *__s, __const char *__accept) ;
extern char *strstr (__const char *__haystack, __const char *__needle) ;
extern char *strtok (char *__restrict __s,
__const char *__restrict __delim) ;
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr) ;
extern size_t strlen (__const char *__s) ;
extern char *strerror (int __errnum) ;
extern void __bzero (void * __s, size_t __n) ;
extern void * __rawmemchr (const void * __s, int __c);
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
__uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
__uint16_t __src0_2, __uint16_t __src4_2,
__uint32_t __src0_4, __uint32_t __src4_4,
size_t __srclen)
{
union {
__uint32_t __ui;
__uint16_t __usi;
unsigned char __uc;
} *__u = (void *) __dest;
switch ((unsigned int) __srclen)
{
case 1:
__u->__uc = '\0';
break;
case 2:
__u->__usi = __src0_2;
break;
case 3:
__u->__usi = __src0_2;
__u = __extension__ (void *)((char *) __u + 2);
__u->__uc = '\0';
break;
case 4:
__u->__ui = __src0_4;
break;
case 5:
__u->__ui = __src0_4;
__u = __extension__ (void *)((char *) __u + 4);
__u->__uc = '\0';
break;
case 6:
__u->__ui = __src0_4;
__u = __extension__ (void *)((char *) __u + 4);
__u->__usi = __src4_2;
break;
case 7:
__u->__ui = __src0_4;
__u = __extension__ (void *)((char *) __u + 4);
__u->__usi = __src4_2;
__u = __extension__ (void *)((char *) __u + 2);
__u->__uc = '\0';
break;
case 8:
__u->__ui = __src0_4;
__u = __extension__ (void *)((char *) __u + 4);
__u->__ui = __src4_4;
break;
}
return __dest;
}
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
char __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
extern __inline char *__strpbrk_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
char __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0) )
__s = *__nextp;
while (*__s == __sep)
++__s;
if (*__s == '\0')
__result = ((void *)0) ;
else
{
__result = __s;
while (*__s != '\0' && *__s != __sep)
++__s;
if (*__s == '\0')
*__nextp = __s;
else
{
*__s = '\0';
*__nextp = __s + 1;
}
}
return __result;
}
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0) )
return *__s = ((void *)0) ;
if (*__retval == __reject)
*(*__s)++ = '\0';
else
if ((*__s = (__extension__ (__builtin_constant_p ( __reject ) && ( __reject ) == '\0' ? (char *) __rawmemchr ( __retval , __reject ) : strchr ( __retval , __reject ))) ) != ((void *)0) )
*(*__s)++ = '\0';
else
*__s = ((void *)0) ;
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval == ((void *)0) )
return *__s = ((void *)0) ;
if (*__retval == __reject1 || *__retval == __reject2)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0) ;
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval == ((void *)0) )
return *__s = ((void *)0) ;
if (*__retval == __reject1 || *__retval == __reject2
|| *__retval == __reject3)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
&& *__cp != __reject3)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0) ;
}
return __retval;
}
extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0) )
return ((void *)0) ;
if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( __reject ) && ((size_t)(const void *)(( __reject ) + 1) - (size_t)(const void *)( __reject ) == 1) ? ((__a0 = ((__const char *) ( __reject ))[0], __a0 == '\0') ? ((void *)0) : ((__a1 = ((__const char *) ( __reject ))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( __retval , __a0 ) : strchr ( __retval , __a0 ))) : ((__a2 = ((__const char *) ( __reject ))[2], __a2 == '\0') ? __strpbrk_c2 ( __retval , __a0, __a1) : (((__const char *) ( __reject ))[3] == '\0' ? __strpbrk_c3 ( __retval , __a0, __a1, __a2) : strpbrk ( __retval , __reject ))))) : strpbrk ( __retval , __reject )); }) ) != ((void *)0) )
*(*__s)++ = '\0';
return __retval;
}
typedef const MR_Closure *MR_ClosurePtr;
typedef MR_Word MR_Comparison_Result;
typedef MR_Word MR_Void;
typedef MR_Word MR_C_Pointer;
typedef MR_Word MR_Pred;
typedef MR_Word MR_Func;
typedef MR_Word MR_Array;
typedef MR_Word MR_Univ;
typedef MR_Word MR_Type_Desc;
typedef MR_Word MR_Mercury_Type_Info;
typedef MR_Word MR_Mercury_Type_Ctor_Info;
typedef MR_Word MR_Mercury_TypeClass_Info;
typedef MR_Word MR_Mercury_Base_TypeClass_Info;
typedef MR_Box *MR_Tuple;
typedef struct MR_TypeCtorInfo_Struct MR_TypeCtorInfo_Struct;
typedef const MR_EnumFunctorDesc * MR_EnumFunctorDescPtr;
typedef const MR_DuFunctorDesc * MR_DuFunctorDescPtr;
typedef union MR_TableNode_Union * * MR_TableNodePtrPtr;
typedef MR_Box MR_BaseTypeclassInfo;
struct MR_HO_PseudoTypeInfo_Struct1 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 1 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct2 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 2 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct3 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 3 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct4 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 4 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct5 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 5 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct6 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 6 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct7 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 7 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct8 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 8 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct9 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 9 ]; } ;
struct MR_HO_PseudoTypeInfo_Struct10 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_Integer MR_pti_higher_order_arity; MR_PseudoTypeInfo MR_pti_higher_order_arg_pseudo_typeinfos[ 10 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct1 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 1 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct2 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 2 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct3 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 3 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct4 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 4 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct5 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 5 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct6 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 6 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct7 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 7 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct8 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 8 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct9 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 9 ]; } ;
struct MR_FO_PseudoTypeInfo_Struct10 { MR_TypeCtorInfo MR_pti_type_ctor_info; MR_PseudoTypeInfo MR_pti_first_order_arg_pseudo_typeinfos[ 10 ]; } ;
typedef struct MR_HO_PseudoTypeInfo_Struct1 MR_HO_PseudoTypeInfo_Struct1;
typedef struct MR_HO_PseudoTypeInfo_Struct2 MR_HO_PseudoTypeInfo_Struct2;
typedef struct MR_HO_PseudoTypeInfo_Struct3 MR_HO_PseudoTypeInfo_Struct3;
typedef struct MR_HO_PseudoTypeInfo_Struct4 MR_HO_PseudoTypeInfo_Struct4;
typedef struct MR_HO_PseudoTypeInfo_Struct5 MR_HO_PseudoTypeInfo_Struct5;
typedef struct MR_HO_PseudoTypeInfo_Struct6 MR_HO_PseudoTypeInfo_Struct6;
typedef struct MR_HO_PseudoTypeInfo_Struct7 MR_HO_PseudoTypeInfo_Struct7;
typedef struct MR_HO_PseudoTypeInfo_Struct8 MR_HO_PseudoTypeInfo_Struct8;
typedef struct MR_HO_PseudoTypeInfo_Struct9 MR_HO_PseudoTypeInfo_Struct9;
typedef struct MR_HO_PseudoTypeInfo_Struct10 MR_HO_PseudoTypeInfo_Struct10;
typedef struct MR_FO_PseudoTypeInfo_Struct1 MR_FO_PseudoTypeInfo_Struct1;
typedef struct MR_FO_PseudoTypeInfo_Struct2 MR_FO_PseudoTypeInfo_Struct2;
typedef struct MR_FO_PseudoTypeInfo_Struct3 MR_FO_PseudoTypeInfo_Struct3;
typedef struct MR_FO_PseudoTypeInfo_Struct4 MR_FO_PseudoTypeInfo_Struct4;
typedef struct MR_FO_PseudoTypeInfo_Struct5 MR_FO_PseudoTypeInfo_Struct5;
typedef struct MR_FO_PseudoTypeInfo_Struct6 MR_FO_PseudoTypeInfo_Struct6;
typedef struct MR_FO_PseudoTypeInfo_Struct7 MR_FO_PseudoTypeInfo_Struct7;
typedef struct MR_FO_PseudoTypeInfo_Struct8 MR_FO_PseudoTypeInfo_Struct8;
typedef struct MR_FO_PseudoTypeInfo_Struct9 MR_FO_PseudoTypeInfo_Struct9;
typedef struct MR_FO_PseudoTypeInfo_Struct10 MR_FO_PseudoTypeInfo_Struct10;
extern const MR_TypeCtorInfo_Struct
mercury__builtin__builtin__type_ctor_info_int_0,
mercury__builtin__builtin__type_ctor_info_string_0,
mercury__builtin__builtin__type_ctor_info_float_0,
mercury__builtin__builtin__type_ctor_info_character_0,
mercury__builtin__builtin__type_ctor_info_void_0,
mercury__builtin__builtin__type_ctor_info_c_pointer_0,
mercury__builtin__builtin__type_ctor_info_pred_0,
mercury__builtin__builtin__type_ctor_info_func_0,
mercury__builtin__builtin__type_ctor_info_tuple_0,
mercury__array__array__type_ctor_info_array_1,
mercury__std_util__std_util__type_ctor_info_univ_0,
mercury__std_util__std_util__type_ctor_info_type_desc_0,
mercury__private_builtin__private_builtin__type_ctor_info_type_ctor_info_1,
mercury__private_builtin__private_builtin__type_ctor_info_type_info_1,
mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_1,
mercury__private_builtin__private_builtin__type_ctor_info_base_typeclass_info_1;
extern MR_Word mercury__private_builtin__dummy_var;
__attribute__((__regparm__(2))) char mercury__builtin__unify_2_p_0(MR_Mercury_Type_Info,
MR_Box, MR_Box);
__attribute__((__regparm__(2))) void mercury__builtin__compare_3_p_0(MR_Mercury_Type_Info,
MR_Comparison_Result *, MR_Box, MR_Box);
__attribute__((__regparm__(2))) void mercury__builtin__compare_3_p_1(MR_Mercury_Type_Info,
MR_Comparison_Result *, MR_Box, MR_Box);
__attribute__((__regparm__(2))) void mercury__builtin__compare_3_p_2(MR_Mercury_Type_Info,
MR_Comparison_Result *, MR_Box, MR_Box);
__attribute__((__regparm__(2))) void mercury__builtin__compare_3_p_3(MR_Mercury_Type_Info,
MR_Comparison_Result *, MR_Box, MR_Box);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____int_0_0(MR_Integer x, MR_Integer y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____string_0_0(MR_String x, MR_String y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____float_0_0(MR_Float x, MR_Float y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____character_0_0(MR_Char x, MR_Char);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____void_0_0(MR_Void x, MR_Void y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____c_pointer_0_0(
MR_C_Pointer x, MR_C_Pointer y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____func_0_0(MR_Func x, MR_Func y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____pred_0_0(MR_Pred x, MR_Pred y);
__attribute__((__regparm__(2))) char mercury__builtin____Unify____tuple_0_0(
MR_Mercury_Type_Info type_info, MR_Tuple x, MR_Tuple y);
__attribute__((__regparm__(2))) char mercury__array____Unify____array_1_0(
MR_Mercury_Type_Info type_info, MR_Array x, MR_Array y);
__attribute__((__regparm__(2))) char mercury__std_util____Unify____univ_0_0(MR_Univ x, MR_Univ y);
__attribute__((__regparm__(2))) char mercury__std_util____Unify____type_desc_0_0(
MR_Type_Desc x, MR_Type_Desc y);
__attribute__((__regparm__(2))) char mercury__private_builtin____Unify____type_ctor_info_1_0(
MR_Mercury_Type_Info type_info,
MR_Mercury_Type_Ctor_Info x, MR_Mercury_Type_Ctor_Info y);
__attribute__((__regparm__(2))) char mercury__private_builtin____Unify____type_info_1_0(
MR_Mercury_Type_Info type_info,
MR_Mercury_Type_Info x, MR_Mercury_Type_Info y);
__attribute__((__regparm__(2))) char mercury__private_builtin____Unify____typeclass_info_1_0(
MR_Mercury_Type_Info type_info,
MR_Mercury_TypeClass_Info x, MR_Mercury_TypeClass_Info y);
__attribute__((__regparm__(2))) char mercury__private_builtin____Unify____base_typeclass_info_1_0(
MR_Mercury_Type_Info type_info, MR_Mercury_Base_TypeClass_Info x,
MR_Mercury_Base_TypeClass_Info y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____int_0_0(
MR_Comparison_Result *result, MR_Integer x, MR_Integer y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____string_0_0(
MR_Comparison_Result *result, MR_String x, MR_String y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____float_0_0(
MR_Comparison_Result *result, MR_Float x, MR_Float y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____character_0_0(
MR_Comparison_Result *result, MR_Char x, MR_Char y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____void_0_0(
MR_Comparison_Result *result, MR_Void x, MR_Void y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____c_pointer_0_0(
MR_Comparison_Result *result, MR_C_Pointer x, MR_C_Pointer y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____func_0_0(
MR_Comparison_Result *result, MR_Func x, MR_Func y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____pred_0_0(
MR_Comparison_Result *result, MR_Pred x, MR_Pred y);
__attribute__((__regparm__(2))) void mercury__builtin____Compare____tuple_0_0(
MR_Mercury_Type_Info type_info, MR_Comparison_Result *result,
MR_Tuple x, MR_Tuple y);
__attribute__((__regparm__(2))) void mercury__array____Compare____array_1_0(MR_Mercury_Type_Info
type_info, MR_Comparison_Result *result, MR_Array x, MR_Array y);
__attribute__((__regparm__(2))) void mercury__std_util____Compare____univ_0_0(
MR_Comparison_Result *result, MR_Univ x, MR_Univ y);
__attribute__((__regparm__(2))) void mercury__std_util____Compare____type_desc_0_0(
MR_Comparison_Result *result, MR_Type_Desc x, MR_Type_Desc y);
__attribute__((__regparm__(2))) void mercury__private_builtin____Compare____type_ctor_info_1_0(
MR_Mercury_Type_Info type_info, MR_Comparison_Result *result,
MR_Mercury_Type_Ctor_Info x, MR_Mercury_Type_Ctor_Info y);
__attribute__((__regparm__(2))) void mercury__private_builtin____Compare____type_info_1_0(
MR_Mercury_Type_Info type_info, MR_Comparison_Result *result,
MR_Mercury_Type_Info x, MR_Mercury_Type_Info y);
__attribute__((__regparm__(2))) void mercury__private_builtin____Compare____typeclass_info_1_0(
MR_Mercury_Type_Info type_info, MR_Comparison_Result *result,
MR_Mercury_TypeClass_Info x, MR_Mercury_TypeClass_Info y);
__attribute__((__regparm__(2))) void mercury__private_builtin____Compare____base_typeclass_info_1_0(
MR_Mercury_Type_Info type_info, MR_Comparison_Result *result,
MR_Mercury_Base_TypeClass_Info x, MR_Mercury_Base_TypeClass_Info y);
MR_Word MR_deep_copy(const MR_Word *data_ptr, MR_TypeInfo type_info,
const MR_Word *lower_limit, const MR_Word *upper_limit);
MR_Word MR_agc_deep_copy(MR_Word *data_ptr, MR_TypeInfo type_info,
const MR_Word *lower_limit, const MR_Word *upper_limit);
typedef void *__gnuc_va_list;
typedef struct _IO_FILE FILE;
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
struct _IO_jump_t; struct _IO_FILE;
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
};
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
__off64_t _offset;
int _unused2[16];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
typedef __ssize_t __io_read_fn (void * __cookie, char *__buf,
size_t __nbytes) ;
typedef __ssize_t __io_write_fn (void * __cookie, __const char *__buf,
size_t __n) ;
typedef int __io_seek_fn (void * __cookie, __off_t __pos, int __w) ;
typedef int __io_close_fn (void * __cookie) ;
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
__gnuc_va_list , int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
__gnuc_va_list ) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t ) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t ) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t , int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t , int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
typedef __off_t fpos_t;
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
extern char *tmpnam (char *__s) ;
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) ;
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) ;
extern int fprintf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s,
__const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int vsprintf (char *__restrict __s,
__const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern char *fgets (char *__restrict __s, int __n,
FILE *__restrict __stream) ;
extern char *gets (char *__s) ;
extern int fputs (__const char *__restrict __s,
FILE *__restrict __stream) ;
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
typedef __off_t off_t;
extern int fgetpos (FILE *__restrict __stream,
fpos_t *__restrict __pos) ;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout , __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin );
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout );
}
typedef enum {
MR_undo,
MR_commit,
MR_solve,
MR_exception,
MR_retry,
MR_gc
} MR_untrail_reason;
typedef enum {
MR_val_entry,
MR_func_entry
} MR_trail_entry_kind;
typedef void MR_untrail_func_type(void *datum, MR_untrail_reason);
typedef struct {
union {
struct {
MR_Word *MR_address;
MR_Word MR_value;
} MR_val;
struct {
MR_untrail_func_type *MR_untrail_func;
void *MR_datum;
} MR_func;
} MR_union;
} MR_TrailEntry;
extern MR_MemoryZone *MR_trail_zone;
extern MR_TrailEntry *MR_trail_ptr_var;
extern MR_Unsigned MR_ticket_counter_var;
extern MR_Unsigned MR_ticket_high_water_var;
void MR_untrail_to(MR_TrailEntry *old_trail_ptr, MR_untrail_reason reason);
typedef MR_Unsigned MR_ChoicepointId;
extern void MR_printdetstack(const MR_Word *s);
extern void MR_printdetstackptr(const MR_Word *s);
extern void MR_print_detstackptr(FILE *fp, const MR_Word *s);
extern void MR_printnondstack(const MR_Word *s);
extern void MR_printnondstackptr(const MR_Word *s);
extern void MR_print_nondstackptr(FILE *fp, const MR_Word *s);
extern void MR_print_heapptr(FILE *fp, const MR_Word *s);
extern void MR_print_label(FILE *fp, MR_Code *w);
extern void MR_printlabel(FILE *fp, MR_Code *w);
typedef struct MR_Dlist_Struct MR_Dlist;
struct MR_Dlist_Struct {
union {
const void *MR_dlist_data;
int MR_dlist_length;
} MR_dlist_union;
MR_Dlist *MR_dlist_prev;
MR_Dlist *MR_dlist_next;
};
extern MR_Dlist *MR_dlist_makelist0(void);
extern MR_Dlist * MR_dlist_makelist( const void * ) ;
extern MR_Dlist * MR_dlist_addhead( MR_Dlist * , const void * ) ;
extern MR_Dlist * MR_dlist_addtail( MR_Dlist * , const void * ) ;
extern MR_Dlist *MR_dlist_addlist(MR_Dlist *, MR_Dlist *);
extern MR_Dlist *MR_dlist_addndlist(MR_Dlist *, MR_Dlist *);
extern void MR_dlist_insert_before( MR_Dlist * , MR_Dlist * ,
const void * ) ;
extern void MR_dlist_insert_after( MR_Dlist * , MR_Dlist * ,
const void * ) ;
extern int MR_dlist_maybe_null_length(const MR_Dlist *);
extern void MR_dlist_delete(MR_Dlist *, MR_Dlist *,
void (*)(const void *));
extern void MR_dlist_oldlist(MR_Dlist *, void (*)(const void *));
typedef struct s_entry {
const MR_Code *e_addr;
const MR_Stack_Layout_Entry *e_layout;
const char *e_name;
} MR_Entry;
typedef struct s_internal {
const MR_Code *i_addr;
const MR_Stack_Layout_Label *i_layout;
const char *i_name;
} MR_Internal;
extern void MR_do_init_label_tables(void);
extern void MR_insert_internal_label(const char *name,
MR_Code *addr,
const MR_Stack_Layout_Label *label_layout);
extern MR_Internal *MR_lookup_internal_by_addr(const MR_Code *addr);
extern void MR_process_all_internal_labels(void f(const void *));
extern void MR_dummy_function_call(void);
extern void *MR_dummy_identify_function(void *);
extern void *volatile MR_global_pointer;
extern void *volatile MR_global_pointer_2;
typedef MR_Code * MR_ModuleFunc(void);
typedef struct MR_Context_Struct MR_Context;
struct MR_Context_Struct {
MR_Context *next;
MR_Code *resume;
MR_Code *context_succip;
MR_MemoryZone *detstack_zone;
MR_Word *context_sp;
MR_MemoryZone *nondetstack_zone;
MR_Word *context_maxfr;
MR_Word *context_curfr;
MR_Word *context_hp;
MR_Word *min_hp_rec;
};
typedef MR_Context Context;
extern MR_Context *MR_runqueue_head;
extern MR_Context *MR_runqueue_tail;
typedef enum {
MR_PENDING_READ = 0x01,
MR_PENDING_WRITE = 0x02,
MR_PENDING_EXEC = 0x04
} MR_WaitingMode;
typedef struct MR_PendingContext_Struct {
struct MR_PendingContext_Struct *next;
MR_Context *context;
int fd;
MR_WaitingMode waiting_mode;
} MR_PendingContext;
extern MR_PendingContext *MR_pending_contexts;
extern void MR_init_context(MR_Context *context);
extern MR_Context *MR_create_context(void);
extern void MR_destroy_context(MR_Context *context);
extern void MR_init_thread_stuff(void);
extern void MR_finalize_runqueue(void);
extern void MR_flounder(void);
extern void MR_schedule(MR_Context *ctxt);
extern MR_Code * do_runnext (void) ;
typedef struct MR_Sync_Term_Struct MR_SyncTerm;
struct MR_Sync_Term_Struct {
int count;
MR_Context *parent;
};
typedef struct MR_dword
{
unsigned long low_word;
unsigned long high_word;
} MR_dword;
typedef struct MR_memprof_counter
{
MR_dword cells_at_period_start;
MR_dword words_at_period_start;
MR_dword cells_since_period_start;
MR_dword words_since_period_start;
} MR_memprof_counter;
typedef struct MR_memprof_record
{
const char *name;
MR_Code *addr;
MR_memprof_counter counter;
struct MR_memprof_record *left;
struct MR_memprof_record *right;
} MR_memprof_record;
typedef struct MR_memprof_table
{
MR_memprof_record *root;
int num_entries;
} MR_memprof_table;
extern MR_memprof_counter MR_memprof_overall;
extern MR_memprof_table MR_memprof_procs;
extern MR_memprof_table MR_memprof_types;
extern void MR_record_allocation(int size, MR_Code *proc_addr,
const char *proc_name, const char *type);
extern void MR_prof_output_mem_tables(void);
extern __inline__ MR_Word MR_create1(MR_Word w1);
extern __inline__ MR_Word MR_create2(MR_Word w1, MR_Word w2);
extern __inline__ MR_Word MR_create3(MR_Word w1, MR_Word w2, MR_Word w3) ;
extern __inline__ MR_Word
MR_create1(MR_Word w1)
{
MR_Word *p = (MR_Word *) (( MR_Word *) GC_malloc( 1 * sizeof(MR_Word) ) ) ;
p[0] = w1;
return (MR_Word) p;
}
extern __inline__ MR_Word
MR_create2(MR_Word w1, MR_Word w2)
{
MR_Word *p = (MR_Word *) (( MR_Word *) GC_malloc( 2 * sizeof(MR_Word) ) ) ;
p[0] = w1;
p[1] = w2;
return (MR_Word) p;
}
extern __inline__ MR_Word
MR_create3(MR_Word w1, MR_Word w2, MR_Word w3)
{
MR_Word *p = (MR_Word *) (( MR_Word *) GC_malloc( 3 * sizeof(MR_Word) ) ) ;
p[0] = w1;
p[1] = w2;
p[2] = w3;
return (MR_Word) p;
}
extern void MR_warning(const char *msg, ...);
extern void MR_fatal_error(const char *msg, ...) __attribute__((noreturn)) ;
void va_end (__gnuc_va_list);
typedef __gnuc_va_list va_list;
int MR_hash_string(MR_Word);
MR_String MR_make_string(MR_Code *proclabel, const char *fmt, ...);
typedef struct MR_TypeCtorDesc_Struct *MR_TypeCtorDesc;
typedef struct ML_Construct_Info_Struct {
MR_ConstString functor_name;
MR_Integer arity;
const MR_PseudoTypeInfo *arg_pseudo_type_infos;
MR_TypeCtorRep type_ctor_rep;
union {
const MR_EnumFunctorDesc *enum_functor_desc;
const MR_NotagFunctorDesc *notag_functor_desc;
const MR_DuFunctorDesc *du_functor_desc;
} functor_info;
} ML_Construct_Info;
extern void ML_type_ctor_and_args(MR_TypeInfo type_info,
char collapse_equivalences,
MR_TypeCtorDesc *type_ctor_desc_ptr,
MR_Word *arg_type_info_list_ptr);
extern int ML_get_num_functors(MR_TypeInfo type_info);
extern MR_Word ML_type_params_vector_to_list(int arity,
MR_TypeInfoParams type_params);
extern MR_Word ML_pseudo_type_info_vector_to_type_info_list(int arity,
MR_TypeInfoParams type_params,
const MR_PseudoTypeInfo *arg_pseudo_type_infos);
extern char ML_get_functors_check_range(int functor_number,
MR_TypeInfo type_info,
ML_Construct_Info *construct_info);
extern void ML_copy_arguments_from_list_to_vector(int arity,
MR_Word arg_list, MR_Word term_vector);
extern char ML_typecheck_arguments(MR_TypeInfo type_info,
int arity, MR_Word arg_list,
const MR_PseudoTypeInfo *arg_pseudo_type_infos);
extern MR_TypeInfo ML_make_type(int arity, MR_TypeCtorDesc type_ctor_desc,
MR_Word arg_type_list);
extern MR_TypeCtorDesc ML_make_type_ctor_desc(MR_TypeInfo type_info,
MR_TypeCtorInfo type_ctor_info);
typedef struct ML_Expand_Info_Struct {
MR_ConstString functor;
int arity;
int num_extra_args;
MR_Word *arg_values;
MR_TypeInfo *arg_type_infos;
char can_free_arg_type_infos;
char non_canonical_type;
char need_functor;
char need_args;
} ML_Expand_Info;
extern void ML_expand(MR_TypeInfo type_info, MR_Word *data_word_ptr,
ML_Expand_Info *expand_info);
extern char ML_arg(MR_TypeInfo type_info, MR_Word *term, int arg_index,
MR_TypeInfo *arg_type_info_ptr, MR_Word **argument_ptr);
void mercury__builtin__copy_2_p_0(MR_Mercury_Type_Info, MR_Box, MR_Box *);
void mercury__builtin__copy_2_p_1(MR_Mercury_Type_Info, MR_Box, MR_Box *);
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_108_105_115_116_95_116_111_95_115_101_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_5,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word * mercury__set_ordlist__HeadVar__2_2,
MR_Word mercury__set_ordlist__V_7_7,
MR_Word mercury__set_ordlist__V_6_6)
{
{
char mercury__set_ordlist__succeeded;
MR_Word mercury__set_ordlist__L1_5_10;
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_103_101_95_115_111_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(mercury__set_ordlist__TypeInfo_for_T_5, mercury__set_ordlist__HeadVar__1_1, &mercury__set_ordlist__L1_5_10, mercury__set_ordlist__V_7_7, mercury__set_ordlist__V_6_6);
}
if ((mercury__set_ordlist__L1_5_10 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__2_2 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
else
{
MR_Word mercury__set_ordlist__X_3_11;
MR_Word mercury__set_ordlist__Xs_4_12;
mercury__set_ordlist__X_3_11 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__L1_5_10 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Xs_4_12 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__L1_5_10 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_114_101_109_111_118_101_95_97_100_106_97_99_101_110_116_95_100_117_112_115_95_50_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_5, mercury__set_ordlist__Xs_4_12, mercury__set_ordlist__X_3_11, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__V_7_7, mercury__set_ordlist__V_6_6);
return;
}
}
}
}
__attribute__((__regparm__(2))) char mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_109_98_101_114_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_5,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word mercury__set_ordlist__V_7_7,
MR_Word mercury__set_ordlist__V_6_6)
{
{
char mercury__set_ordlist__succeeded;
{
return mercury__set_ordlist__succeeded = mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_109_98_101_114_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(mercury__set_ordlist__TypeInfo_for_T_5, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__V_7_7, mercury__set_ordlist__V_6_6);
}
return mercury__set_ordlist__succeeded;
}
}
__attribute__((__regparm__(2))) char mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_99_111_110_116_97_105_110_115_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_5,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word mercury__set_ordlist__V_7_7,
MR_Word mercury__set_ordlist__V_6_6)
{
{
char mercury__set_ordlist__succeeded;
{
return mercury__set_ordlist__succeeded = mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_109_98_101_114_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(mercury__set_ordlist__TypeInfo_for_T_5, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__V_7_7, mercury__set_ordlist__V_6_6);
}
return mercury__set_ordlist__succeeded;
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_115_101_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_13,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_15_15,
MR_Word mercury__set_ordlist__V_14_14)
{
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
{
MR_Word mercury__set_ordlist__V_5_5;
mercury__set_ordlist__V_5_5 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__2_2));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__V_5_5));
}
}
else
{
MR_Word mercury__set_ordlist__I_6;
MR_Word mercury__set_ordlist__Is_7;
MR_Word mercury__set_ordlist__R_10;
mercury__set_ordlist__I_6 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Is_7 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
mercury__term____Compare____var_1_0(mercury__set_ordlist__V_14_14, &mercury__set_ordlist__R_10, mercury__set_ordlist__I_6, mercury__set_ordlist__HeadVar__2_2);
}
switch (mercury__set_ordlist__R_10) {
case (MR_Integer) 0:
*mercury__set_ordlist__HeadVar__3_3 = mercury__set_ordlist__HeadVar__1_1;
break;
case (MR_Integer) 1:
{
MR_Word mercury__set_ordlist__Ks_11;
{
mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_115_101_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_13, mercury__set_ordlist__Is_7, mercury__set_ordlist__HeadVar__2_2, &mercury__set_ordlist__Ks_11, mercury__set_ordlist__V_15_15, mercury__set_ordlist__V_14_14);
}
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__I_6));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__Ks_11));
}
}
break;
case (MR_Integer) 2:
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__2_2));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__1_1));
}
break;
default: ((void) (( 0 ) ? 0 : (__assert_fail ("0" , "set_ordlist.c", 227, __PRETTY_FUNCTION__ ), 0))) ;
}
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_115_101_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_1(
MR_Word mercury__set_ordlist__TypeInfo_for_T_13,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_15_15,
MR_Word mercury__set_ordlist__V_14_14)
{
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
{
MR_Word mercury__set_ordlist__V_5_5;
mercury__set_ordlist__V_5_5 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__2_2));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__V_5_5));
}
}
else
{
MR_Word mercury__set_ordlist__I_6;
MR_Word mercury__set_ordlist__Is_7;
MR_Word mercury__set_ordlist__R_10;
MR_Integer mercury__set_ordlist__V_16_16;
MR_Integer mercury__set_ordlist__V_17_17;
mercury__set_ordlist__I_6 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Is_7 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
mercury__set_ordlist__V_16_16 = (MR_Integer) mercury__set_ordlist__I_6;
mercury__set_ordlist__V_17_17 = (MR_Integer) mercury__set_ordlist__HeadVar__2_2;
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_16_16 < mercury__set_ordlist__V_17_17);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_10 = (MR_Integer) 1;
else
{
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_16_16 == mercury__set_ordlist__V_17_17);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_10 = (MR_Integer) 0;
else
mercury__set_ordlist__R_10 = (MR_Integer) 2;
}
switch (mercury__set_ordlist__R_10) {
case (MR_Integer) 0:
*mercury__set_ordlist__HeadVar__3_3 = mercury__set_ordlist__HeadVar__1_1;
break;
case (MR_Integer) 1:
{
MR_Word mercury__set_ordlist__Ks_11;
{
mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_115_101_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_1(mercury__set_ordlist__TypeInfo_for_T_13, mercury__set_ordlist__Is_7, mercury__set_ordlist__HeadVar__2_2, &mercury__set_ordlist__Ks_11, mercury__set_ordlist__V_15_15, mercury__set_ordlist__V_14_14);
}
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__I_6));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__Ks_11));
}
}
break;
case (MR_Integer) 2:
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__2_2));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__1_1));
}
break;
default: ((void) (( 0 ) ? 0 : (__assert_fail ("0" , "set_ordlist.c", 303, __PRETTY_FUNCTION__ ), 0))) ;
}
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_115_101_114_116_95_108_105_115_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_8,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_10_10,
MR_Word mercury__set_ordlist__V_9_9)
{
{
char mercury__set_ordlist__succeeded;
MR_Word mercury__set_ordlist__List_7;
MR_Word mercury__set_ordlist__L1_5_13;
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_103_101_95_115_111_114_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_2_p_0(mercury__set_ordlist__TypeInfo_for_T_8, mercury__set_ordlist__HeadVar__2_2, &mercury__set_ordlist__L1_5_13, mercury__set_ordlist__V_10_10, mercury__set_ordlist__V_9_9);
}
if ((mercury__set_ordlist__L1_5_13 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
mercury__set_ordlist__List_7 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
else
{
MR_Word mercury__set_ordlist__X_3_14;
MR_Word mercury__set_ordlist__Xs_4_15;
mercury__set_ordlist__X_3_14 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__L1_5_13 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Xs_4_15 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__L1_5_13 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_114_101_109_111_118_101_95_97_100_106_97_99_101_110_116_95_100_117_112_115_95_50_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_8, mercury__set_ordlist__Xs_4_15, mercury__set_ordlist__X_3_14, &mercury__set_ordlist__List_7, mercury__set_ordlist__V_10_10, mercury__set_ordlist__V_9_9);
}
}
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_103_101_95_97_110_100_95_114_101_109_111_118_101_95_100_117_112_115_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_8, mercury__set_ordlist__List_7, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__HeadVar__3_3, mercury__set_ordlist__V_10_10, mercury__set_ordlist__V_9_9);
return;
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_117_110_105_111_110_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_7,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_9_9,
MR_Word mercury__set_ordlist__V_8_8)
{
{
char mercury__set_ordlist__succeeded;
{
mercury__list__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_103_101_95_97_110_100_95_114_101_109_111_118_101_95_100_117_112_115_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_7, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__HeadVar__3_3, mercury__set_ordlist__V_9_9, mercury__set_ordlist__V_8_8);
return;
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_116_101_114_115_101_99_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_16,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_20_20,
MR_Word mercury__set_ordlist__V_19_19)
{
{
loop_top:;
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
else
{
MR_Word mercury__set_ordlist__V_17_17;
MR_Word mercury__set_ordlist__V_18_18;
mercury__set_ordlist__V_18_18 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__V_17_17 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
if ((mercury__set_ordlist__HeadVar__2_2 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
else
{
MR_Word mercury__set_ordlist__Y_9;
MR_Word mercury__set_ordlist__Ys_10;
MR_Word mercury__set_ordlist__R_12;
MR_Integer mercury__set_ordlist__V_21_21;
MR_Integer mercury__set_ordlist__V_22_22;
mercury__set_ordlist__Y_9 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Ys_10 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
mercury__set_ordlist__V_21_21 = (MR_Integer) mercury__set_ordlist__V_18_18;
mercury__set_ordlist__V_22_22 = (MR_Integer) mercury__set_ordlist__Y_9;
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_21_21 < mercury__set_ordlist__V_22_22);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 1;
else
{
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_21_21 == mercury__set_ordlist__V_22_22);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 0;
else
mercury__set_ordlist__R_12 = (MR_Integer) 2;
}
switch (mercury__set_ordlist__R_12) {
case (MR_Integer) 0:
{
MR_Word mercury__set_ordlist__Set0_13;
{
mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_116_101_114_115_101_99_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_16, mercury__set_ordlist__V_17_17, mercury__set_ordlist__Ys_10, &mercury__set_ordlist__Set0_13, mercury__set_ordlist__V_20_20, mercury__set_ordlist__V_19_19);
}
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__V_18_18));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__Set0_13));
}
}
break;
case (MR_Integer) 1:
{
{
MR_Word mercury__set_ordlist__HeadVar__1_1__tmp_copy = mercury__set_ordlist__V_17_17;
mercury__set_ordlist__HeadVar__1_1 = mercury__set_ordlist__HeadVar__1_1__tmp_copy;
}
goto loop_top;
}
break;
case (MR_Integer) 2:
{
{
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Ys_10;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
break;
default: ((void) (( 0 ) ? 0 : (__assert_fail ("0" , "set_ordlist.c", 448, __PRETTY_FUNCTION__ ), 0))) ;
}
}
}
}
}
}
__attribute__((__regparm__(2))) char mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_116_101_114_115_101_99_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_1(
MR_Word mercury__set_ordlist__TypeInfo_for_T_16,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_24_24,
MR_Word mercury__set_ordlist__V_23_23)
{
{
loop_top:;
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
mercury__set_ordlist__succeeded = (mercury__set_ordlist__HeadVar__3_3 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) );
else
{
MR_Word mercury__set_ordlist__V_19_19;
MR_Word mercury__set_ordlist__V_20_20;
mercury__set_ordlist__V_20_20 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__V_19_19 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
if ((mercury__set_ordlist__HeadVar__2_2 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
mercury__set_ordlist__succeeded = (mercury__set_ordlist__HeadVar__3_3 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) );
else
{
MR_Word mercury__set_ordlist__Y_9;
MR_Word mercury__set_ordlist__Ys_10;
MR_Word mercury__set_ordlist__R_12;
MR_Integer mercury__set_ordlist__V_25_25;
MR_Integer mercury__set_ordlist__V_26_26;
mercury__set_ordlist__Y_9 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Ys_10 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
mercury__set_ordlist__V_25_25 = (MR_Integer) mercury__set_ordlist__V_20_20;
mercury__set_ordlist__V_26_26 = (MR_Integer) mercury__set_ordlist__Y_9;
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_25_25 < mercury__set_ordlist__V_26_26);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 1;
else
{
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_25_25 == mercury__set_ordlist__V_26_26);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 0;
else
mercury__set_ordlist__R_12 = (MR_Integer) 2;
}
switch (mercury__set_ordlist__R_12) {
case (MR_Integer) 0:
{
MR_Word mercury__set_ordlist__Set0_13;
MR_Word mercury__set_ordlist__V_17_17;
MR_Word mercury__set_ordlist__V_18_18;
MR_Integer mercury__set_ordlist__V_27_27;
MR_Integer mercury__set_ordlist__V_28_28;
{
mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_105_110_116_101_114_115_101_99_116_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_16, mercury__set_ordlist__V_19_19, mercury__set_ordlist__Ys_10, &mercury__set_ordlist__Set0_13, mercury__set_ordlist__V_24_24, mercury__set_ordlist__V_23_23);
}
mercury__set_ordlist__succeeded = ((( (MR_Word) mercury__set_ordlist__HeadVar__3_3 ) & ((1 << 2 ) - 1)) == ( (MR_Integer) 1 ) );
if (((( (MR_Word) mercury__set_ordlist__HeadVar__3_3 ) & ((1 << 2 ) - 1)) == ( (MR_Integer) 1 ) ))
{
mercury__set_ordlist__V_17_17 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__V_18_18 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
}
if (mercury__set_ordlist__succeeded)
{
mercury__set_ordlist__V_27_27 = (MR_Integer) mercury__set_ordlist__V_20_20;
mercury__set_ordlist__V_28_28 = (MR_Integer) mercury__set_ordlist__V_17_17;
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_27_27 == mercury__set_ordlist__V_28_28);
if (mercury__set_ordlist__succeeded)
{
return mercury__set_ordlist__succeeded = mercury__list____Unify____list_1_0((MR_Word) mercury__set_ordlist__TypeInfo_for_T_16, (MR_Word) mercury__set_ordlist__Set0_13, (MR_Word) mercury__set_ordlist__V_18_18);
}
}
}
break;
case (MR_Integer) 1:
{
{
MR_Word mercury__set_ordlist__HeadVar__1_1__tmp_copy = mercury__set_ordlist__V_19_19;
mercury__set_ordlist__HeadVar__1_1 = mercury__set_ordlist__HeadVar__1_1__tmp_copy;
}
goto loop_top;
}
break;
case (MR_Integer) 2:
{
{
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Ys_10;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
break;
default: ((void) (( 0 ) ? 0 : (__assert_fail ("0" , "set_ordlist.c", 556, __PRETTY_FUNCTION__ ), 0))) ;
}
}
}
return mercury__set_ordlist__succeeded;
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_100_105_102_102_101_114_101_110_99_101_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_16,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3,
MR_Word mercury__set_ordlist__V_20_20,
MR_Word mercury__set_ordlist__V_19_19)
{
{
loop_top:;
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ;
else
{
MR_Word mercury__set_ordlist__V_17_17;
MR_Word mercury__set_ordlist__V_18_18;
mercury__set_ordlist__V_18_18 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__V_17_17 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
if ((mercury__set_ordlist__HeadVar__2_2 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__3_3 = mercury__set_ordlist__HeadVar__1_1;
else
{
MR_Word mercury__set_ordlist__Y_9;
MR_Word mercury__set_ordlist__Ys_10;
MR_Word mercury__set_ordlist__R_12;
MR_Integer mercury__set_ordlist__V_21_21;
MR_Integer mercury__set_ordlist__V_22_22;
mercury__set_ordlist__Y_9 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__Ys_10 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
mercury__set_ordlist__V_21_21 = (MR_Integer) mercury__set_ordlist__V_18_18;
mercury__set_ordlist__V_22_22 = (MR_Integer) mercury__set_ordlist__Y_9;
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_21_21 < mercury__set_ordlist__V_22_22);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 1;
else
{
mercury__set_ordlist__succeeded = (mercury__set_ordlist__V_21_21 == mercury__set_ordlist__V_22_22);
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__R_12 = (MR_Integer) 0;
else
mercury__set_ordlist__R_12 = (MR_Integer) 2;
}
switch (mercury__set_ordlist__R_12) {
case (MR_Integer) 0:
{
{
MR_Word mercury__set_ordlist__HeadVar__1_1__tmp_copy = mercury__set_ordlist__V_17_17;
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Ys_10;
mercury__set_ordlist__HeadVar__1_1 = mercury__set_ordlist__HeadVar__1_1__tmp_copy;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
break;
case (MR_Integer) 1:
{
MR_Word mercury__set_ordlist__Set0_13;
{
mercury__set_ordlist__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_111_114_95_102_117_110_99_95_95_100_105_102_102_101_114_101_110_99_101_95_95_91_84_32_61_32_118_97_114_40_86_95_50_41_93_3_p_0(mercury__set_ordlist__TypeInfo_for_T_16, mercury__set_ordlist__V_17_17, mercury__set_ordlist__HeadVar__2_2, &mercury__set_ordlist__Set0_13, mercury__set_ordlist__V_20_20, mercury__set_ordlist__V_19_19);
}
{
*mercury__set_ordlist__HeadVar__3_3 = (MR_Word) ((MR_Word *)((char *)( (( MR_Word *) GC_malloc( ((MR_Integer) 2 * sizeof(MR_Word) ) ) ) ) + ( ( 1 ) ))) ;
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__V_18_18));
((MR_Word *) ((MR_Word) ( ( *mercury__set_ordlist__HeadVar__3_3 ) ) - ( ( ( 1 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__Set0_13));
}
}
break;
case (MR_Integer) 2:
{
{
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Ys_10;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
break;
default: ((void) (( 0 ) ? 0 : (__assert_fail ("0" , "set_ordlist.c", 652, __PRETTY_FUNCTION__ ), 0))) ;
}
}
}
}
}
}
static __attribute__((__regparm__(2))) char mercury__set_ordlist__IntroducedFrom__pred__filter_map__206__3_5_p_0(
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__TypeInfo_for_X_16,
MR_Word mercury__set_ordlist__TypeInfo_for_Y_17,
MR_Box mercury__set_ordlist__V_13_13,
MR_Box * mercury__set_ordlist__V_12_12)
{
{
char mercury__set_ordlist__succeeded;
char (__attribute__((__regparm__(2))) * mercury__set_ordlist__func_1)(MR_Box, MR_Box, MR_Box *);
mercury__set_ordlist__func_1 = ((char (__attribute__((__regparm__(2))) *)(MR_Box, MR_Box, MR_Box *)) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 1 ] ));
{
return mercury__set_ordlist__succeeded = mercury__set_ordlist__func_1(((MR_Box) (MR_Word) mercury__set_ordlist__HeadVar__1_1), mercury__set_ordlist__V_13_13, mercury__set_ordlist__V_12_12);
}
return mercury__set_ordlist__succeeded;
}
}
static __attribute__((__regparm__(2))) void mercury__set_ordlist__IntroducedFrom__pred__foldl__148__2_6_p_0(
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__TypeInfo_for_X_22,
MR_Word mercury__set_ordlist__TypeInfo_for_Y_23,
MR_Box mercury__set_ordlist__V_18_18,
MR_Box mercury__set_ordlist__V_17_17,
MR_Box * mercury__set_ordlist__V_16_16)
{
{
char mercury__set_ordlist__succeeded;
MR_Box (__attribute__((__regparm__(2))) * mercury__set_ordlist__func_1)(MR_Box, MR_Box, MR_Box);
mercury__set_ordlist__func_1 = ((MR_Box (__attribute__((__regparm__(2))) *)(MR_Box, MR_Box, MR_Box)) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 1 ] ));
{
*mercury__set_ordlist__V_16_16 = mercury__set_ordlist__func_1(((MR_Box) (MR_Word) mercury__set_ordlist__HeadVar__1_1), mercury__set_ordlist__V_18_18, mercury__set_ordlist__V_17_17);
}
}
}
static __attribute__((__regparm__(2))) void mercury__set_ordlist__IntroducedFrom__pred__map__134__1_5_p_0(
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__TypeInfo_for_X_16,
MR_Word mercury__set_ordlist__TypeInfo_for_Y_17,
MR_Box mercury__set_ordlist__V_13_13,
MR_Box * mercury__set_ordlist__V_12_12)
{
{
char mercury__set_ordlist__succeeded;
MR_Box (__attribute__((__regparm__(2))) * mercury__set_ordlist__func_1)(MR_Box, MR_Box);
mercury__set_ordlist__func_1 = ((MR_Box (__attribute__((__regparm__(2))) *)(MR_Box, MR_Box)) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 1 ] ));
{
*mercury__set_ordlist__V_12_12 = mercury__set_ordlist__func_1(((MR_Box) (MR_Word) mercury__set_ordlist__HeadVar__1_1), mercury__set_ordlist__V_13_13);
}
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist____Compare____set_ordlist_1_0(
MR_Word mercury__set_ordlist__TypeInfo_for__T_4,
MR_Word * mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word mercury__set_ordlist__HeadVar__3_3)
{
{
char mercury__set_ordlist__succeeded;
MR_Word mercury__set_ordlist__conv1_HeadVar__2_2;
MR_Word mercury__set_ordlist__conv2_HeadVar__3_3;
mercury__set_ordlist__conv1_HeadVar__2_2 = (MR_Word) mercury__set_ordlist__HeadVar__2_2;
mercury__set_ordlist__conv2_HeadVar__3_3 = (MR_Word) mercury__set_ordlist__HeadVar__3_3;
{
mercury__list____Compare____list_1_0(mercury__set_ordlist__TypeInfo_for__T_4, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__conv1_HeadVar__2_2, mercury__set_ordlist__conv2_HeadVar__3_3);
return;
}
}
}
__attribute__((__regparm__(2))) char mercury__set_ordlist____Unify____set_ordlist_1_0(
MR_Word mercury__set_ordlist__TypeInfo_for__T_3,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2)
{
{
char mercury__set_ordlist__succeeded;
MR_Word mercury__set_ordlist__conv1_HeadVar__1_1;
MR_Word mercury__set_ordlist__conv2_HeadVar__2_2;
mercury__set_ordlist__conv1_HeadVar__1_1 = (MR_Word) mercury__set_ordlist__HeadVar__1_1;
mercury__set_ordlist__conv2_HeadVar__2_2 = (MR_Word) mercury__set_ordlist__HeadVar__2_2;
{
mercury__set_ordlist__succeeded = mercury__list____Unify____list_1_0(mercury__set_ordlist__TypeInfo_for__T_3, mercury__set_ordlist__conv1_HeadVar__1_1, mercury__set_ordlist__conv2_HeadVar__2_2);
}
if (mercury__set_ordlist__succeeded)
mercury__set_ordlist__succeeded = 1 ;
return mercury__set_ordlist__succeeded;
}
}
__attribute__((__regparm__(2))) void mercury__set_ordlist__power_union_2_3_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_10,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Word * mercury__set_ordlist__HeadVar__3_3)
{
{
loop_top:;
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__1_1 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
*mercury__set_ordlist__HeadVar__3_3 = mercury__set_ordlist__HeadVar__2_2;
else
{
MR_Word mercury__set_ordlist__NextSet_5;
MR_Word mercury__set_ordlist__SetofSets_6;
MR_Word mercury__set_ordlist__Set1_9;
mercury__set_ordlist__NextSet_5 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] ));
mercury__set_ordlist__SetofSets_6 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__1_1 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
mercury__list__merge_and_remove_dups_3_p_0(mercury__set_ordlist__TypeInfo_for_T_10, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__NextSet_5, &mercury__set_ordlist__Set1_9);
}
{
{
MR_Word mercury__set_ordlist__HeadVar__1_1__tmp_copy = mercury__set_ordlist__SetofSets_6;
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Set1_9;
mercury__set_ordlist__HeadVar__1_1 = mercury__set_ordlist__HeadVar__1_1__tmp_copy;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
}
}
}
}
static __attribute__((__regparm__(2))) char mercury__set_ordlist__no_dups_2_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_7,
MR_Box mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2)
{
{
loop_top:;
{
char mercury__set_ordlist__succeeded;
if ((mercury__set_ordlist__HeadVar__2_2 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
mercury__set_ordlist__succeeded = 1 ;
else
{
MR_Box mercury__set_ordlist__Elem0_5;
MR_Word mercury__set_ordlist__Elems_6;
mercury__set_ordlist__Elem0_5 = (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] );
mercury__set_ordlist__Elems_6 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
mercury__set_ordlist__succeeded = mercury__builtin__unify_2_p_0(mercury__set_ordlist__TypeInfo_for_T_7, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__Elem0_5);
}
mercury__set_ordlist__succeeded = !(mercury__set_ordlist__succeeded);
if (mercury__set_ordlist__succeeded)
{
{
MR_Box mercury__set_ordlist__HeadVar__1_1__tmp_copy = mercury__set_ordlist__Elem0_5;
MR_Word mercury__set_ordlist__HeadVar__2_2__tmp_copy = mercury__set_ordlist__Elems_6;
mercury__set_ordlist__HeadVar__1_1 = mercury__set_ordlist__HeadVar__1_1__tmp_copy;
mercury__set_ordlist__HeadVar__2_2 = mercury__set_ordlist__HeadVar__2_2__tmp_copy;
}
goto loop_top;
}
}
return mercury__set_ordlist__succeeded;
}
}
}
__attribute__((__regparm__(2))) char mercury__set_ordlist__sort_no_dups_2_p_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T_7,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word * mercury__set_ordlist__HeadVar__2_2)
{
{
char mercury__set_ordlist__succeeded;
{
mercury__list__merge_sort_2_p_0(mercury__set_ordlist__TypeInfo_for_T_7, mercury__set_ordlist__HeadVar__1_1, mercury__set_ordlist__HeadVar__2_2);
}
if ((*mercury__set_ordlist__HeadVar__2_2 == (MR_Word) (MR_Word) ((MR_Word *)((char *)( (( (MR_Integer) 0 ) << 2 ) ) + ( ( 0 ) ))) ))
mercury__set_ordlist__succeeded = 1 ;
else
{
MR_Box mercury__set_ordlist__Elem_5;
MR_Word mercury__set_ordlist__Elems_6;
mercury__set_ordlist__Elem_5 = (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) *mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 0 ] );
mercury__set_ordlist__Elems_6 = ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) *mercury__set_ordlist__HeadVar__2_2 ) ) - ( ( ( 1 ) ) )) )[ (MR_Integer) 1 ] ));
{
return mercury__set_ordlist__succeeded = mercury__set_ordlist__no_dups_2_p_0(mercury__set_ordlist__TypeInfo_for_T_7, mercury__set_ordlist__Elem_5, mercury__set_ordlist__Elems_6);
}
}
return mercury__set_ordlist__succeeded;
}
}
static __attribute__((__regparm__(2))) void mercury__set_ordlist__fold_4_f_0_1(
MR_Box mercury__set_ordlist__closure_arg,
MR_Box mercury__set_ordlist__wrapper_arg_1,
MR_Box mercury__set_ordlist__wrapper_arg_2,
MR_Box * mercury__set_ordlist__wrapper_arg_3)
{
{
MR_Box mercury__set_ordlist__closure;
mercury__set_ordlist__closure = mercury__set_ordlist__closure_arg;
{
mercury__set_ordlist__IntroducedFrom__pred__foldl__148__2_6_p_0(((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 3 ] )), ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 4 ] )), ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 5 ] )), mercury__set_ordlist__wrapper_arg_1, mercury__set_ordlist__wrapper_arg_2, mercury__set_ordlist__wrapper_arg_3);
return;
}
}
}
__attribute__((__regparm__(2))) MR_Box mercury__set_ordlist__fold_4_f_0(
MR_Word mercury__set_ordlist__TypeInfo_for_T1_10,
MR_Word mercury__set_ordlist__TypeInfo_for_T2_11,
MR_Word mercury__set_ordlist__HeadVar__1_1,
MR_Word mercury__set_ordlist__HeadVar__2_2,
MR_Box mercury__set_ordlist__HeadVar__3_3)
{
{
char mercury__set_ordlist__succeeded;
MR_Box mercury__set_ordlist__HeadVar__4_4;
MR_Word mercury__set_ordlist__P_9_19;
{
mercury__set_ordlist__P_9_19 = (MR_Word) (( MR_Word *) GC_malloc( ((MR_Integer) 6 * sizeof(MR_Word) ) ) ) ;
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 0 ] = (MR_Word) ((MR_Box) (MR_Word) (((void *)0) ));
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 1 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__fold_4_f_0_1));
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 2 ] = (MR_Word) ((MR_Box) (MR_Word) ((MR_Integer) 3));
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 3 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__HeadVar__1_1));
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 4 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__TypeInfo_for_T1_10));
((MR_Word *) ((MR_Word) ( ( mercury__set_ordlist__P_9_19 ) ) - ( ( ( 0 ) ) )) )[ 5 ] = (MR_Word) ((MR_Box) (MR_Word) (mercury__set_ordlist__TypeInfo_for_T2_11));
}
{
mercury__list__foldl_4_p_1(mercury__set_ordlist__TypeInfo_for_T1_10, mercury__set_ordlist__TypeInfo_for_T2_11, mercury__set_ordlist__P_9_19, mercury__set_ordlist__HeadVar__2_2, mercury__set_ordlist__HeadVar__3_3, &mercury__set_ordlist__HeadVar__4_4);
}
return mercury__set_ordlist__HeadVar__4_4;
}
}
static __attribute__((__regparm__(2))) char mercury__set_ordlist__filter_map_3_f_0_1(
MR_Box mercury__set_ordlist__closure_arg,
MR_Box mercury__set_ordlist__wrapper_arg_1,
MR_Box * mercury__set_ordlist__wrapper_arg_2)
{
{
char mercury__set_ordlist__succeeded;
MR_Box mercury__set_ordlist__closure;
mercury__set_ordlist__closure = mercury__set_ordlist__closure_arg;
{
return mercury__set_ordlist__succeeded = mercury__set_ordlist__IntroducedFrom__pred__filter_map__206__3_5_p_0(((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 3 ] )), ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 4 ] )), ((MR_Word) (MR_Word) (* (MR_Box *) & ((MR_Word *) ((MR_Word) ( ( (MR_Word) mercury__set_ordlist__closure ) ) - ( ( ( 0 ) ) )) )[ (MR_Integer) 5 ] )), mercury__set_ordlist__wrapper_arg_1, mercury__set_ordlist__wrapper_arg_2);
}
return mercury__set_ordlist__succeeded;
}
}
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
| of excellence is a lethal habit"
WWW: < http://www.cs.mu.oz.au/~fjh > | -- the last words of T. S. Garp.
More information about the Gcc-bugs
mailing list