#line 16500 "qb64pe.bas"
qbs* FUNC_UDTDYNARRAYBOUNDEXPR(qbs*_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_DESC_EXPR,qbs*_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_DIMENSION_EXPR,int32*_FUNC_UDTDYNARRAYBOUNDEXPR_LONG_WANT_UPPER){
#line 16500 "qb64pe.bas"
qbs *tqbs;
#line 16500 "qb64pe.bas"
ptrszint tmp_long;
#line 16500 "qb64pe.bas"
int32 tmp_fileno;
#line 16500 "qb64pe.bas"
uint32 qbs_tmp_base=qbs_tmp_list_nexti;
#line 16500 "qb64pe.bas"
uint8 *tmp_mem_static_pointer=mem_static_pointer;
#line 16500 "qb64pe.bas"
uint32 tmp_cmem_sp=cmem_sp;
#line 16500 "qb64pe.bas"
#include "data36.txt"
#line 16500 "qb64pe.bas"
mem_lock *sf_mem_lock;
#line 16500 "qb64pe.bas"
new_mem_lock();
#line 16500 "qb64pe.bas"
sf_mem_lock=mem_lock_tmp;
#line 16500 "qb64pe.bas"
sf_mem_lock->type=3;
#line 16500 "qb64pe.bas"
libqb_check_stack();
#line 16500 "qb64pe.bas"
if (is_error_pending()) goto exit_subfunc;
#line 16501 "qb64pe.bas"
do{
#line 16501 "qb64pe.bas"
if(!qbevent)break;evnt(16501);}while(r);
#line 16509 "qb64pe.bas"
do{
#line 16509 "qb64pe.bas"
qbs_set(_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_HELPER_NAME,qbs_add(qbs_new_txt_len("udt_dyn_array_bound_",20),qbs__tostr((int32)(FUNC_UNIQUENUMBER()),NULL,0)));
#line 16509 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16509 "qb64pe.bas"
if(!qbevent)break;evnt(16509);}while(r);
#line 16511 "qb64pe.bas"
do{
#line 16511 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2247=*__LONG_GLOBTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("static int64 ",13),_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_HELPER_NAME),qbs_new_txt_len("(ptrszint *qb_desc,int64 qb_dim){",33)));
#line 16511 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16511 "qb64pe.bas"
if(!qbevent)break;evnt(16511);}while(r);
#line 16512 "qb64pe.bas"
do{
#line 16512 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2248=*__LONG_GLOBTXTBUF),qbs_new_txt_len("ptrszint qb_i;",14));
#line 16512 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16512 "qb64pe.bas"
if(!qbevent)break;evnt(16512);}while(r);
#line 16513 "qb64pe.bas"
do{
#line 16513 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2249=*__LONG_GLOBTXTBUF),qbs_new_txt_len("if ((!qb_desc)||(qb_dim<1)||(qb_dim>qb_desc[3])){error(9); return 0;}",69));
#line 16513 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16513 "qb64pe.bas"
if(!qbevent)break;evnt(16513);}while(r);
#line 16514 "qb64pe.bas"
do{
#line 16514 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2250=*__LONG_GLOBTXTBUF),qbs_new_txt_len("qb_i=(qb_desc[3]-qb_dim)*4+4;",29));
#line 16514 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16514 "qb64pe.bas"
if(!qbevent)break;evnt(16514);}while(r);
#line 16515 "qb64pe.bas"
S_18944:;
#line 16515 "qb64pe.bas"
if ((*_FUNC_UDTDYNARRAYBOUNDEXPR_LONG_WANT_UPPER)||is_error_pending()){
#line 16515 "qb64pe.bas"
if(qbevent){evnt(16515);if(r)goto S_18944;}
#line 16516 "qb64pe.bas"
do{
#line 16516 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2251=*__LONG_GLOBTXTBUF),qbs_new_txt_len("return qb_desc[qb_i]+qb_desc[qb_i+1]-1;",39));
#line 16516 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16516 "qb64pe.bas"
if(!qbevent)break;evnt(16516);}while(r);
#line 16517 "qb64pe.bas"
}else{
#line 16518 "qb64pe.bas"
do{
#line 16518 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2252=*__LONG_GLOBTXTBUF),qbs_new_txt_len("return qb_desc[qb_i];",21));
#line 16518 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16518 "qb64pe.bas"
if(!qbevent)break;evnt(16518);}while(r);
#line 16519 "qb64pe.bas"
}
#line 16520 "qb64pe.bas"
do{
#line 16520 "qb64pe.bas"
SUB_WRITEBUFLINE(&(pass2253=*__LONG_GLOBTXTBUF),qbs_new_txt_len("}",1));
#line 16520 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16520 "qb64pe.bas"
if(!qbevent)break;evnt(16520);}while(r);
#line 16522 "qb64pe.bas"
do{
#line 16522 "qb64pe.bas"
qbs_set(_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_UDTDYNARRAYBOUNDEXPR,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_HELPER_NAME,qbs_new_txt_len("(",1)),_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_DESC_EXPR),qbs_new_txt_len(",",1)),_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_DIMENSION_EXPR),qbs_new_txt_len(")",1)));
#line 16522 "qb64pe.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 16522 "qb64pe.bas"
if(!qbevent)break;evnt(16522);}while(r);
#line 16523 "qb64pe.bas"
exit_subfunc:;
#line 16523 "qb64pe.bas"
free_mem_lock(sf_mem_lock);
#line 16523 "qb64pe.bas"
#include "free36.txt"
#line 16523 "qb64pe.bas"
if ((tmp_mem_static_pointer>=mem_static)&&(tmp_mem_static_pointer<=mem_static_limit)) mem_static_pointer=tmp_mem_static_pointer; else mem_static_pointer=mem_static;
#line 16523 "qb64pe.bas"
cmem_sp=tmp_cmem_sp;
#line 16523 "qb64pe.bas"
qbs_maketmp(_FUNC_UDTDYNARRAYBOUNDEXPR_STRING_UDTDYNARRAYBOUNDEXPR);return _FUNC_UDTDYNARRAYBOUNDEXPR_STRING_UDTDYNARRAYBOUNDEXPR;
#line 16523 "qb64pe.bas"
}
