diff options
176 files changed, 3771 insertions, 443 deletions
@@ -127,3 +127,5 @@ a license to everyone to use it as detailed in LICENSE.) * Richard Janicek <r@janicek.co> * Joel Croteau <jcroteau@gmail.com> * Haneef Mubarak <haneef503@gmail.com> +* Nicolas Peri <nicox@shivaengine.com> (copyright owned by ShiVa Technologies, SAS) + @@ -47,8 +47,8 @@ emcc can be influenced by a few environment variables: EMMAKEN_COMPILER - The compiler to be used, if you don't want the default clang. ''' -import os, sys, shutil, tempfile, subprocess, shlex, time, re, logging, json -from subprocess import PIPE, STDOUT +import os, sys, shutil, tempfile, subprocess, shlex, time, re, logging +from subprocess import PIPE from tools import shared, jsrun, system_libs from tools.shared import Compression, execute, suffix, unsuffixed, unsuffixed_basename, WINDOWS from tools.response_file import read_response_file @@ -330,7 +330,7 @@ Options that are modified or new in %s include: For more docs on the options --preload-file accepts, see https://github.com/kripken/emscripten/wiki/Filesystem-Guide - --exclude-file <name> Files and directories to be excluded from + --exclude-file <name> Files and directories to be excluded from --embed-file and --preload-file wildcard is supported @@ -477,9 +477,9 @@ Options that are modified or new in %s include: --default-obj-ext .ext Specifies the file suffix to generate if the location of a directory name is passed to -o directive, e.g. emcc -c a.c -o dir/ - will by default generate an output name 'dir/a.o', + will by default generate an output name 'dir/a.o', but this cmdline param can be passed to generate a - file with a custom suffix 'dir/a.ext'. + file with a custom suffix 'dir/a.ext'. The target file, if specified (-o <target>), defines what will be generated: @@ -524,13 +524,14 @@ Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt) This is free and open source software under the MIT license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ''' % (shared.EMSCRIPTEN_VERSION, revision) - exit(0) + exit(0) elif len(sys.argv) == 2 and sys.argv[1] == '-v': # -v with no inputs print 'emcc (Emscripten GCC-like replacement + linker emulating GNU ld ) %s' % shared.EMSCRIPTEN_VERSION + shared.check_sanity(force=True) exit(subprocess.call([shared.CLANG, '-v'])) -def is_minus_s_for_emcc(newargs,i): +def is_minus_s_for_emcc(newargs, i): assert newargs[i] == '-s' if i+1 < len(newargs) and '=' in newargs[i+1]: # -s OPT=VALUE is for us, -s by itself is a linker option return True @@ -591,7 +592,7 @@ if CONFIGURE_CONFIG or CMAKE_CONFIG: idx += 1 cmd = [compiler] + list(filter_emscripten_options(sys.argv[1:])) - if not use_js: cmd += shared.EMSDK_OPTS + ['-DEMSCRIPTEN'] + if not use_js: cmd += shared.EMSDK_OPTS + ['-D__EMSCRIPTEN__', '-DEMSCRIPTEN'] if use_js: cmd += ['-s', 'ERROR_ON_UNDEFINED_SYMBOLS=1'] # configure tests should fail when an undefined symbol exists logging.debug('just configuring: ' + ' '.join(cmd)) @@ -729,7 +730,7 @@ log_time_last = time.time() def log_time(name): global log_time_last now = time.time() - logging.debug('emcc step "%s" took %.2f seconds' % (name, now - log_time_last)) + logging.debug('emcc step "%s" took %.2f seconds', name, now - log_time_last) log_time_last = now try: @@ -805,7 +806,7 @@ try: # optimization mode, but we disable the actual optimization passes, as we'll # run them seperately. newargs.append('-mllvm') - newargs.append('-disable-llvm-optzns'); + newargs.append('-disable-llvm-optzns') elif newargs[i].startswith('--js-opts'): check_bad_eq(newargs[i]) js_opts = eval(newargs[i+1]) @@ -918,6 +919,7 @@ try: shared.set_logging() logging.debug('invocation: ' + ' '.join(sys.argv)) shared.apply_configuration() # reset config to pick up change + shared.check_sanity(force=True) newargs[i] = '' elif newargs[i].startswith('--shell-file'): check_bad_eq(newargs[i]) @@ -930,7 +932,7 @@ try: newargs[i] = '' newargs[i+1] = '' elif newargs[i] == '--remove-duplicates': - logging.warning ('--remove-duplicates is deprecated as it is no longer needed. If you cannot link without it, file a bug with a testcase') + logging.warning('--remove-duplicates is deprecated as it is no longer needed. If you cannot link without it, file a bug with a testcase') newargs[i] = '' elif newargs[i] == '--jcache': logging.warning('jcache is deprecated') @@ -940,6 +942,7 @@ try: newargs[i] = '' logging.warning('clearing cache') shared.Cache.erase() + shared.check_sanity(force=True) # this is a good time for a sanity check sys.exit(0) elif newargs[i] == '--save-bc': check_bad_eq(newargs[i]) @@ -957,7 +960,7 @@ try: elif newargs[i].startswith(('-I', '-L')): path_name = newargs[i][2:] if not absolute_warning_shown and os.path.isabs(path_name): - logging.warning ('-I or -L of an absolute path "' + newargs[i] + '" encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript). Pass \'-Wno-warn-absolute-paths\' to emcc to hide this warning.') # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not + logging.warning('-I or -L of an absolute path "' + newargs[i] + '" encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript). Pass \'-Wno-warn-absolute-paths\' to emcc to hide this warning.') # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not absolute_warning_shown = True elif newargs[i] == '--emrun': emrun = True @@ -973,7 +976,7 @@ try: default_object_extension = '.' + default_object_extension newargs[i+1] = '' - newargs = [ arg for arg in newargs if arg is not '' ] + newargs = [arg for arg in newargs if arg is not ''] # If user did not specify a default -std for C++ code, specify the emscripten default. if default_cxx_std: @@ -999,7 +1002,7 @@ try: if DEBUG: start_time = time.time() # done after parsing arguments, which might affect debug state if closure: - assert os.path.exists(shared.CLOSURE_COMPILER), logging.error('fatal: Closure compiler (%s) does not exist' % shared.CLOSURE_COMPILER) + assert os.path.exists(shared.CLOSURE_COMPILER), logging.error('fatal: Closure compiler (%s) does not exist', shared.CLOSURE_COMPILER) for i in range(len(newargs)): if newargs[i] == '-s': @@ -1011,7 +1014,7 @@ try: settings_changes.append('USE_TYPED_ARRAYS=' + newargs[i+1]) newargs[i] = '' newargs[i+1] = '' - newargs = [ arg for arg in newargs if arg is not '' ] + newargs = [arg for arg in newargs if arg is not ''] if split_js_file: settings_changes.append("PRINT_SPLIT_FILE_MARKER=1") @@ -1032,12 +1035,12 @@ try: prev = newargs[i-1] if prev in ['-MT', '-MF', '-MQ', '-D', '-U', '-o', '-x', '-Xpreprocessor', '-include', '-imacros', '-idirafter', '-iprefix', '-iwithprefix', '-iwithprefixbefore', '-isysroot', '-imultilib', '-A', '-isystem', '-iquote', '-install_name', '-compatibility_version', '-current_version', '-I', '-L']: continue # ignore this gcc-style argument - if (os.path.islink(arg) and os.path.realpath(arg).endswith(SOURCE_ENDINGS + BITCODE_ENDINGS + DYNAMICLIB_ENDINGS + ASSEMBLY_ENDINGS + HEADER_ENDINGS)): + if os.path.islink(arg) and os.path.realpath(arg).endswith(SOURCE_ENDINGS + BITCODE_ENDINGS + DYNAMICLIB_ENDINGS + ASSEMBLY_ENDINGS + HEADER_ENDINGS): arg = os.path.realpath(arg) if not arg.startswith('-'): if not os.path.exists(arg): - logging.error('%s: No such file or directory ("%s" was expected to be an input file, based on the commandline arguments provided)' % (arg, arg)) + logging.error('%s: No such file or directory ("%s" was expected to be an input file, based on the commandline arguments provided)', arg, arg) exit(1) arg_ending = filename_type_ending(arg) @@ -1082,7 +1085,7 @@ try: original_input_files = input_files[:] - newargs = [ arg for arg in newargs if arg is not '' ] + newargs = [arg for arg in newargs if arg is not ''] # -c means do not link in gcc, and for us, the parallel is to not go all the way to JS, but stop at bitcode has_dash_c = '-c' in newargs @@ -1093,7 +1096,7 @@ try: # Find library files for lib in libs: - logging.debug('looking for library "%s"' % lib) + logging.debug('looking for library "%s"', lib) found = False for prefix in LIB_PREFIXES: for suff in STATICLIB_ENDINGS + DYNAMICLIB_ENDINGS: @@ -1101,24 +1104,24 @@ try: for lib_dir in lib_dirs: path = os.path.join(lib_dir, name) if os.path.exists(path): - logging.debug('found library "%s" at %s' % (lib, path)) + logging.debug('found library "%s" at %s', lib, path) input_files.append(path) found = True break if found: break if found: break - if not found: logging.warning('emcc: cannot find library "%s"' % lib) + if not found: logging.warning('emcc: cannot find library "%s"', lib) # If not compiling to JS, then we are compiling to an intermediate bitcode objects or library, so # ignore dynamic linking, since multiple dynamic linkings can interfere with each other if not filename_type_suffix(target) in JS_CONTAINING_SUFFIXES or ignore_dynamic_linking: def check(input_file): if filename_type_ending(input_file) in DYNAMICLIB_ENDINGS: - if not ignore_dynamic_linking: logging.warning('ignoring dynamic library %s because not compiling to JS or HTML, remember to link it when compiling to JS or HTML at the end' % os.path.basename(input_file)) + if not ignore_dynamic_linking: logging.warning('ignoring dynamic library %s because not compiling to JS or HTML, remember to link it when compiling to JS or HTML at the end', os.path.basename(input_file)) return False else: return True - input_files = filter(lambda input_file: check(input_file), input_files) + input_files = [input_file for input_file in input_files if check(input_file)] if len(input_files) == 0: logging.error('no input files\nnote that input files without a known suffix are ignored, make sure your input files end with one of: ' + str(SOURCE_ENDINGS + BITCODE_ENDINGS + DYNAMICLIB_ENDINGS + STATICLIB_ENDINGS + ASSEMBLY_ENDINGS + HEADER_ENDINGS)) @@ -1161,7 +1164,7 @@ try: assert shared.Settings.EXECUTION_TIMEOUT == -1, 'execution timeout not supported in fastcomp' assert shared.Settings.NAMED_GLOBALS == 0, 'named globals not supported in fastcomp' assert shared.Settings.PGO == 0, 'pgo not supported in fastcomp' - assert shared.Settings.TARGET_LE32 == 1, 'fastcomp requires le32' + assert shared.Settings.TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 1, 'fastcomp requires asmjs-unknown-emscripten' assert shared.Settings.USE_TYPED_ARRAYS == 2, 'fastcomp assumes ta2' assert not split_js_file, '--split-js is deprecated and not supported in fastcomp' assert not bind, 'embind not supported in fastcomp yet' @@ -1177,7 +1180,10 @@ try: logging.warning('jcache is deprecated and not supported in fastcomp (you should not need it anyhow), disabling') jcache = False - fastcomp_opts = ['-pnacl-abi-simplify-preopt', '-pnacl-abi-simplify-postopt'] + fastcomp_opts = [] + if shared.Settings.NO_EXIT_RUNTIME: + fastcomp_opts += ['-emscripten-no-exit-runtime', '-globaldce'] + fastcomp_opts += ['-pnacl-abi-simplify-preopt', '-pnacl-abi-simplify-postopt'] if shared.Settings.DISABLE_EXCEPTION_CATCHING != 1: fastcomp_opts += ['-enable-emscripten-cxx-exceptions'] if len(shared.Settings.EXCEPTION_CATCHING_WHITELIST) > 0: @@ -1214,10 +1220,12 @@ try: assert shared.LLVM_TARGET in shared.COMPILER_OPTS if shared.LLVM_TARGET == 'i386-pc-linux-gnu': shared.Settings.TARGET_X86 = 1 - shared.Settings.TARGET_LE32 = 0 - assert 'le32-unknown-nacl' not in shared.COMPILER_OPTS - elif shared.LLVM_TARGET == 'le32-unknown-nacl': - shared.Settings.TARGET_LE32 = 1 + shared.Settings.TARGET_ASMJS_UNKNOWN_EMSCRIPTEN = 0 + assert 'asmjs-unknown-emscripten' not in shared.COMPILER_OPTS + elif shared.LLVM_TARGET == 'asmjs-unknown-emscripten' or \ + shared.LLVM_TARGET == 'le32-unknown-nacl': + # For temporary compatibility, treat 'le32-unknown-nacl' as 'asmjs-unknown-emscripten'. + shared.Settings.TARGET_ASMJS_UNKNOWN_EMSCRIPTEN = 1 shared.Settings.TARGET_X86 = 0 assert 'i386-pc-linux-gnu' not in shared.COMPILER_OPTS else: @@ -1334,7 +1342,7 @@ try: file_ending = filename_type_ending(input_file) if file_ending.endswith(SOURCE_ENDINGS): temp_file = temp_files[i] - logging.debug('optimizing %s with -O%s' % (input_file, llvm_opts)) + logging.debug('optimizing %s with -O%s', input_file, llvm_opts) shared.Building.llvm_opt(temp_file, llvm_opts) # If we were just asked to generate bitcode, stop there @@ -1391,7 +1399,7 @@ try: (not LEAVE_INPUTS_RAW and not (suffix(temp_files[0]) in BITCODE_ENDINGS or suffix(temp_files[0]) in DYNAMICLIB_ENDINGS) and shared.Building.is_ar(temp_files[0])): linker_inputs = temp_files + extra_files_to_link logging.debug('linking: ' + str(linker_inputs)) - shared.Building.link(linker_inputs, in_temp(target_basename + '.bc'), force_archive_contents = len(filter(lambda temp: not temp.endswith(STATICLIB_ENDINGS), temp_files)) == 0) + shared.Building.link(linker_inputs, in_temp(target_basename + '.bc'), force_archive_contents=len([temp for temp in temp_files if not temp.endswith(STATICLIB_ENDINGS)]) == 0) final = in_temp(target_basename + '.bc') else: if not LEAVE_INPUTS_RAW: @@ -1404,7 +1412,7 @@ try: log_time('link') if DEBUG: - logging.debug('saving intermediate processing steps to %s' % shared.EMSCRIPTEN_TEMP_DIR) + logging.debug('saving intermediate processing steps to %s', shared.EMSCRIPTEN_TEMP_DIR) intermediate_counter = 0 def save_intermediate(name=None, suffix='js'): @@ -1528,7 +1536,7 @@ try: shutil.copyfile(final, final + '.tr.js') final += '.tr.js' posix = True if not shared.WINDOWS else False - logging.debug('applying transform: %s' % js_transform) + logging.debug('applying transform: %s', js_transform) subprocess.check_call(shlex.split(js_transform, posix=posix) + [os.path.abspath(final)]) if DEBUG: save_intermediate('transformed') @@ -1558,7 +1566,7 @@ try: if DEBUG: if os.path.exists(memfile): save_intermediate('meminit') - logging.debug('wrote memory initialization to %s' % memfile) + logging.debug('wrote memory initialization to %s', memfile) else: logging.debug('did not see memory initialization') elif shared.Settings.USE_TYPED_ARRAYS == 2 and not shared.Settings.MAIN_MODULE and not shared.Settings.SIDE_MODULE: @@ -1660,7 +1668,7 @@ try: if debug_level < 2 and shared.Settings.ASM_JS: js_optimizer_queue += ['minifyNames'] if debug_level == 0: js_optimizer_queue += ['minifyWhitespace'] - if closure and shared.Settings.ASM_JS: + if closure and shared.Settings.ASM_JS: js_optimizer_queue += ['closure'] if not shared.Settings.SIDE_MODULE: js_optimizer_queue += ['last'] # side modules are not finalized until after relocation @@ -1840,7 +1848,7 @@ try { log_time('final emitting') - if DEBUG: logging.debug('total time: %.2f seconds' % (time.time() - start_time)) + if DEBUG: logging.debug('total time: %.2f seconds', (time.time() - start_time)) finally: if not TEMP_DIR: diff --git a/emscripten.py b/emscripten.py index 6b49a3cc..cb9eefab 100755 --- a/emscripten.py +++ b/emscripten.py @@ -9,7 +9,7 @@ header files (so that the JS compiler can see the constants in those headers, for the libc implementation in JS). ''' -import os, sys, json, optparse, subprocess, re, time, multiprocessing, string, logging, shutil +import os, sys, json, optparse, subprocess, re, time, multiprocessing, string, logging from tools import shared from tools import jsrun, cache as cache_module, tempfiles @@ -538,7 +538,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, ''.join([' var ' + g + '=+env.' + g + ';\n' for g in basic_float_vars]) # In linkable modules, we need to add some explicit globals for global variables that can be linked and used across modules if settings.get('MAIN_MODULE') or settings.get('SIDE_MODULE'): - assert settings.get('TARGET_LE32'), 'TODO: support x86 target when linking modules (needs offset of 4 and not 8 here)' + assert settings.get('TARGET_ASMJS_UNKNOWN_EMSCRIPTEN'), 'TODO: support x86 target when linking modules (needs offset of 4 and not 8 here)' for key, value in forwarded_json['Variables']['globals'].iteritems(): if value.get('linkable'): init = forwarded_json['Variables']['indexedGlobals'][key] + 8 # 8 is Runtime.GLOBAL_BASE / STATIC_BASE @@ -801,8 +801,8 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None, if DEBUG: logging.debug('emscript: js compiler glue') # Settings changes - assert settings['TARGET_LE32'] == 1 - settings['TARGET_LE32'] = 2 + assert settings['TARGET_ASMJS_UNKNOWN_EMSCRIPTEN'] == 1 + settings['TARGET_ASMJS_UNKNOWN_EMSCRIPTEN'] = 2 i64_funcs = ['i64Add', 'i64Subtract', '__muldi3', '__divdi3', '__udivdi3', '__remdi3', '__uremdi3'] for i64_func in i64_funcs: if i64_func in metadata['declares']: @@ -1087,7 +1087,7 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None, asm_global_vars = ''.join([' var ' + g + '=env.' + g + '|0;\n' for g in basic_vars + global_vars]) # In linkable modules, we need to add some explicit globals for global variables that can be linked and used across modules if settings.get('MAIN_MODULE') or settings.get('SIDE_MODULE'): - assert settings.get('TARGET_LE32'), 'TODO: support x86 target when linking modules (needs offset of 4 and not 8 here)' + assert settings.get('TARGET_ASMJS_UNKNOWN_EMSCRIPTEN'), 'TODO: support x86 target when linking modules (needs offset of 4 and not 8 here)' for key, value in forwarded_json['Variables']['globals'].iteritems(): if value.get('linkable'): init = forwarded_json['Variables']['indexedGlobals'][key] + 8 # 8 is Runtime.GLOBAL_BASE / STATIC_BASE @@ -1277,13 +1277,13 @@ def main(args, compiler_engine, cache, jcache, relooper, temp_files, DEBUG, DEBU settings.setdefault('RELOOPER', relooper) if not os.path.exists(relooper): shared.Building.ensure_relooper(relooper) - + settings.setdefault('STRUCT_INFO', cache.get_path('struct_info.compiled.json')) struct_info = settings.get('STRUCT_INFO') - + if not os.path.exists(struct_info): shared.Building.ensure_struct_info(struct_info) - + emscript(args.infile, settings, args.outfile, libraries, compiler_engine=compiler_engine, jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, DEBUG_CACHE=DEBUG_CACHE) diff --git a/scons-tools/emscripten.py b/scons-tools/emscripten.py index 4c48083e..af85f106 100755 --- a/scons-tools/emscripten.py +++ b/scons-tools/emscripten.py @@ -274,7 +274,7 @@ def generate(env): RANLIBCOM='',
CCFLAGS=[
'-U__STRICT_ANSI__',
- '-target', 'le32-unknown-nacl',
+ '-target', 'asmjs-unknown-emscripten',
'-nostdinc',
'-Wno-#warnings',
'-Wno-error=unused-variable',
diff --git a/src/intertyper.js b/src/intertyper.js index 10822e48..7743ce62 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -348,7 +348,7 @@ function intertyper(lines, sidePass, baseLineNums) { if (token1Text == 'triple') { var triple = item.tokens[3].text; triple = triple.substr(1, triple.length-2); - var expected = TARGET_LE32 ? 'le32-unknown-nacl' : 'i386-pc-linux-gnu'; + var expected = TARGET_ASMJS_UNKNOWN_EMSCRIPTEN ? 'asmjs-unknown-emscripten' : 'i386-pc-linux-gnu'; if (triple !== expected) { warn('using an unexpected LLVM triple: ' + [triple, ' !== ', expected] + ' (are you using emcc for everything and not clang?)'); } @@ -688,7 +688,7 @@ function intertyper(lines, sidePass, baseLineNums) { Types.hasInlineJS = true; warnOnce('inline JavaScript using asm() will cause the code to no longer fall in the asm.js subset of JavaScript, which can reduce performance - consider using emscripten_run_script'); } - assert(TARGET_LE32, 'inline js is only supported in le32'); + assert(TARGET_ASMJS_UNKNOWN_EMSCRIPTEN, 'inline js is only supported in asmjs-unknown-emscripten'); // Inline assembly is just JavaScript that we paste into the code item.intertype = 'value'; if (tokensLeft[0].text == 'sideeffect') tokensLeft.splice(0, 1); @@ -848,7 +848,7 @@ function intertyper(lines, sidePass, baseLineNums) { }).filter(function(param) { return param.value && param.value.ident != 'undef' }); return item; } - // 'phi' + // 'va_arg' function va_argHandler(item) { item.intertype = 'va_arg'; var segments = splitTokenList(item.tokens.slice(1)); diff --git a/src/jsifier.js b/src/jsifier.js index c1ca893b..503f0b71 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -384,7 +384,7 @@ function JSify(data, functionsOnly) { functionStubSigs[item.ident] = Functions.getSignature(item.returnType.text, item.params.map(function(arg) { return arg.type }), false); } - function addFromLibrary(ident) { + function addFromLibrary(ident, notDep) { if (ident in addedLibraryItems) return ''; addedLibraryItems[ident] = true; @@ -396,8 +396,10 @@ function JSify(data, functionsOnly) { if (('_' + ident) in Functions.implementedFunctions) return ''; if (!LibraryManager.library.hasOwnProperty(ident) && !LibraryManager.library.hasOwnProperty(ident + '__inline')) { - if (ERROR_ON_UNDEFINED_SYMBOLS) error('unresolved symbol: ' + ident); - else if (VERBOSE || (WARN_ON_UNDEFINED_SYMBOLS && !LINKABLE)) warn('unresolved symbol: ' + ident); + if (notDep) { + if (ERROR_ON_UNDEFINED_SYMBOLS) error('unresolved symbol: ' + ident); + else if (VERBOSE || (WARN_ON_UNDEFINED_SYMBOLS && !LINKABLE)) warn('unresolved symbol: ' + ident); + } // emit a stub that will fail at runtime LibraryManager.library[shortident] = new Function("Module['printErr']('missing function: " + shortident + "'); abort(-1);"); } @@ -502,7 +504,7 @@ function JSify(data, functionsOnly) { delete LibraryManager.library[shortident + '__deps']; } } - item.JS = addFromLibrary(shortident); + item.JS = addFromLibrary(shortident, true); } } @@ -1413,7 +1415,7 @@ function JSify(data, functionsOnly) { } } function va_argHandler(item) { - assert(TARGET_LE32); + assert(TARGET_ASMJS_UNKNOWN_EMSCRIPTEN); var ident = item.value.ident; var move = Runtime.STACK_ALIGN; @@ -1710,7 +1712,7 @@ function JSify(data, functionsOnly) { if ((phase == 'pre' || phase == 'glue') && !Variables.generatedGlobalBase && !BUILD_AS_SHARED_LIB) { Variables.generatedGlobalBase = true; // Globals are done, here is the rest of static memory - assert((TARGET_LE32 && Runtime.GLOBAL_BASE == 8) || (TARGET_X86 && Runtime.GLOBAL_BASE == 4)); // this is assumed in e.g. relocations for linkable modules + assert((TARGET_ASMJS_UNKNOWN_EMSCRIPTEN && Runtime.GLOBAL_BASE == 8) || (TARGET_X86 && Runtime.GLOBAL_BASE == 4)); // this is assumed in e.g. relocations for linkable modules if (!SIDE_MODULE) { print('STATIC_BASE = ' + Runtime.GLOBAL_BASE + ';\n'); print('STATICTOP = STATIC_BASE + ' + Runtime.alignMemory(Variables.nextIndexedOffset) + ';\n'); diff --git a/src/library.js b/src/library.js index b9571a73..cd451c57 100644 --- a/src/library.js +++ b/src/library.js @@ -1861,14 +1861,14 @@ LibraryManager.library = { // int x = 4; printf("%c\n", (char)x); var ret; if (type === 'double') { -#if TARGET_LE32 == 2 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 2 ret = {{{ makeGetValue('varargs', 'argIndex', 'double', undefined, undefined, true, 4) }}}; #else ret = {{{ makeGetValue('varargs', 'argIndex', 'double', undefined, undefined, true) }}}; #endif #if USE_TYPED_ARRAYS == 2 } else if (type == 'i64') { -#if TARGET_LE32 == 1 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 1 ret = [{{{ makeGetValue('varargs', 'argIndex', 'i32', undefined, undefined, true) }}}, {{{ makeGetValue('varargs', 'argIndex+8', 'i32', undefined, undefined, true) }}}]; argIndex += {{{ STACK_ALIGN }}}; // each 32-bit chunk is in a 64-bit block @@ -1885,7 +1885,7 @@ LibraryManager.library = { type = 'i32'; // varargs are always i32, i64, or double ret = {{{ makeGetValue('varargs', 'argIndex', 'i32', undefined, undefined, true) }}}; } -#if TARGET_LE32 == 2 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 2 argIndex += Runtime.getNativeFieldSize(type); #else argIndex += Math.max(Runtime.getNativeFieldSize(type), Runtime.getAlignSize(type, null, true)); @@ -2861,7 +2861,7 @@ LibraryManager.library = { vsscanf: 'sscanf', #endif -#if TARGET_LE32 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN // convert va_arg into varargs vfprintf__deps: ['fprintf'], vfprintf: function(s, f, va_arg) { @@ -4180,7 +4180,7 @@ LibraryManager.library = { #if TARGET_X86 return makeSetValue(ptr, 0, 'varrp', 'void*'); #endif -#if TARGET_LE32 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN // 2-word structure: struct { void* start; void* currentOffset; } return makeSetValue(ptr, 0, 'varrp', 'void*') + ';' + makeSetValue(ptr, Runtime.QUANTUM_SIZE, 0, 'void*'); #endif diff --git a/src/library_openal.js b/src/library_openal.js index ac49fe95..bdbb2dca 100644 --- a/src/library_openal.js +++ b/src/library_openal.js @@ -174,8 +174,8 @@ var LibraryOpenAL = { }, alcOpenDevice: function(deviceName) { - if (typeof(AudioContext) == "function" || - typeof(webkitAudioContext) == "function") { + if (typeof(AudioContext) !== "undefined" || + typeof(webkitAudioContext) !== "undefined") { return 1; // non-null pointer -- we just simulate one device } else { return 0; diff --git a/src/parseTools.js b/src/parseTools.js index fe56580e..4fb76196 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -1161,7 +1161,7 @@ function getHeapOffset(offset, type, forceAsm) { if (Runtime.getNativeFieldSize(type) > 4) { if (type == 'i64' || TARGET_X86) { - type = 'i32'; // XXX we emulate 64-bit values as 32 in x86, and also in le32 but only i64, not double + type = 'i32'; // XXX we emulate 64-bit values as 32 in x86, and also in asmjs-unknown-emscripten but only i64, not double } } @@ -1287,7 +1287,7 @@ function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align, noSa return '{ ' + ret.join(', ') + ' }'; } - // In double mode 1, in x86 we always assume unaligned because we can't trust that; otherwise in le32 + // In double mode 1, in x86 we always assume unaligned because we can't trust that; otherwise in asmjs-unknown-emscripten // we need this code path if we are not fully aligned. if (DOUBLE_MODE == 1 && USE_TYPED_ARRAYS == 2 && type == 'double' && (TARGET_X86 || align < 8)) { return '(' + makeSetTempDouble(0, 'i32', makeGetValue(ptr, pos, 'i32', noNeedFirst, unsigned, ignore, align, noSafe)) + ',' + @@ -1826,7 +1826,7 @@ function makeGetSlabs(ptr, type, allowMultiple, unsigned) { case '<4 x i32>': case 'i32': case 'i64': return [unsigned ? 'HEAPU32' : 'HEAP32']; break; case 'double': { - if (TARGET_LE32) return ['HEAPF64']; // in le32, we do have the ability to assume 64-bit alignment + if (TARGET_ASMJS_UNKNOWN_EMSCRIPTEN) return ['HEAPF64']; // in asmjs-unknown-emscripten, we do have the ability to assume 64-bit alignment // otherwise, fall through to float } case '<4 x float>': diff --git a/src/relooper/Relooper.cpp b/src/relooper/Relooper.cpp index 14c203e0..c11de099 100644 --- a/src/relooper/Relooper.cpp +++ b/src/relooper/Relooper.cpp @@ -17,8 +17,8 @@ typedef std::string ministring; #endif -template <class T, class U> bool contains(const T& container, const U& contained) { - return container.find(contained) != container.end(); +template <class T, class U> static bool contains(const T& container, const U& contained) { + return container.count(contained); } #if DEBUG @@ -650,7 +650,7 @@ void Relooper::Calculate(Block *Entry) { Block *Curr = *iter; for (BlockBranchMap::iterator iter = Curr->BranchesOut.begin(); iter != Curr->BranchesOut.end(); iter++) { Block *Target = iter->first; - if (Hoisted.find(Target) == Hoisted.end() && NextEntries.find(Target) == NextEntries.end()) { + if (!contains(Hoisted, Target) && !contains(NextEntries, Target)) // abort this hoisting abort = true; break; diff --git a/src/runtime.js b/src/runtime.js index fecd3b68..97de7473 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -185,10 +185,10 @@ var Runtime = { // type can be a native type or a struct (or null, for structs we only look at size here) getAlignSize: function(type, size, vararg) { // we align i64s and doubles on 64-bit boundaries, unlike x86 -#if TARGET_LE32 == 1 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 1 if (vararg) return 8; #endif -#if TARGET_LE32 +#if TARGET_ASMJS_UNKNOWN_EMSCRIPTEN if (!vararg && (type == 'i64' || type == 'double')) return 8; if (!type) return Math.min(size, 8); // align structures internally to 64 bits #endif diff --git a/src/settings.js b/src/settings.js index 1c6b998e..7f9fbabf 100644 --- a/src/settings.js +++ b/src/settings.js @@ -23,8 +23,8 @@ var QUANTUM_SIZE = 4; // This is the size of an individual field in a structure. // Changing this from the default of 4 is deprecated. var TARGET_X86 = 0; // For i386-pc-linux-gnu -var TARGET_LE32 = 1; // For le32-unknown-nacl. 1 is normal, 2 is for the fastcomp llvm - // backend using pnacl abi simplification +var TARGET_ASMJS_UNKNOWN_EMSCRIPTEN = 1; // For asmjs-unknown-emscripten. 1 is normal, 2 is for the fastcomp llvm + // backend using emscripten-customized abi simplification var CORRECT_SIGNS = 1; // Whether we make sure to convert unsigned values to signed values. // Decreases performance with additional runtime checks. Might not be diff --git a/system/include/EGL/eglplatform.h b/system/include/EGL/eglplatform.h index 2db2cc47..77e885a8 100644 --- a/system/include/EGL/eglplatform.h +++ b/system/include/EGL/eglplatform.h @@ -75,7 +75,7 @@ typedef HDC EGLNativeDisplayType; typedef HBITMAP EGLNativePixmapType; typedef HWND EGLNativeWindowType; -#elif defined(EMSCRIPTEN) +#elif defined(__EMSCRIPTEN__) typedef int EGLNativeDisplayType; typedef int EGLNativeWindowType; diff --git a/system/include/SDL/SDL_config_minimal.h b/system/include/SDL/SDL_config_minimal.h index ea0cec10..18951f18 100644 --- a/system/include/SDL/SDL_config_minimal.h +++ b/system/include/SDL/SDL_config_minimal.h @@ -33,7 +33,7 @@ #include <stddef.h> #include <stdarg.h> -#if !defined(EMSCRIPTEN) && !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if !defined(__EMSCRIPTEN__) && !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) typedef unsigned int size_t; typedef signed char int8_t; typedef unsigned char uint8_t; diff --git a/system/include/SDL/SDL_stdinc.h b/system/include/SDL/SDL_stdinc.h index c4ce7ccd..508ecdb4 100644 --- a/system/include/SDL/SDL_stdinc.h +++ b/system/include/SDL/SDL_stdinc.h @@ -65,7 +65,7 @@ #endif #if defined(HAVE_INTTYPES_H) # include <inttypes.h> -#elif defined(EMSCRIPTEN) || defined(HAVE_STDINT_H) +#elif defined(__EMSCRIPTEN__) || defined(HAVE_STDINT_H) # include <stdint.h> #endif #ifdef HAVE_CTYPE_H diff --git a/system/include/emscripten/emscripten.h b/system/include/emscripten/emscripten.h index 852a8e0d..c36bec63 100644 --- a/system/include/emscripten/emscripten.h +++ b/system/include/emscripten/emscripten.h @@ -14,7 +14,7 @@ extern "C" { #endif -#if !EMSCRIPTEN +#if !__EMSCRIPTEN__ #include <SDL/SDL.h> /* for SDL_Delay in async_call */ #endif @@ -141,7 +141,7 @@ extern void emscripten_async_load_script(const char *script, void (*onload)(), v * you created an object on the stack, it will be cleaned up * before the main loop will be called the first time. */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ extern void emscripten_set_main_loop(void (*func)(), int fps, int simulate_infinite_loop); extern void emscripten_set_main_loop_arg(void (*func)(void*), void *arg, int fps, int simulate_infinite_loop); extern void emscripten_pause_main_loop(); @@ -166,7 +166,7 @@ extern void emscripten_cancel_main_loop(); * are not counted, do not block the main loop, and can fire * at specific time in the future. */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ extern void _emscripten_push_main_loop_blocker(void (*func)(void *), void *arg, const char *name); extern void _emscripten_push_uncounted_main_loop_blocker(void (*func)(void *), void *arg, const char *name); #else @@ -188,7 +188,7 @@ inline void _emscripten_push_uncounted_main_loop_blocker(void (*func)(void *), v * to 10, then push 10 blockers, as they complete the user will * see x/10 and so forth. */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ extern void emscripten_set_main_loop_expected_blockers(int num); #else inline void emscripten_set_main_loop_expected_blockers(int num) {} @@ -203,7 +203,7 @@ inline void emscripten_set_main_loop_expected_blockers(int num) {} * If millis is negative, the browser's requestAnimationFrame * mechanism is used. */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ extern void emscripten_async_call(void (*func)(void *), void *arg, int millis); #else inline void emscripten_async_call(void (*func)(void *), void *arg, int millis) { @@ -247,7 +247,7 @@ void emscripten_get_canvas_size(int *width, int *height, int *isFullscreen); * absolute time, and is only meaningful in comparison to * other calls to this function. The unit is ms. */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ double emscripten_get_now(); #else #include <time.h> diff --git a/system/include/jansson.h b/system/include/jansson.h index 04c345e9..53715fcc 100644 --- a/system/include/jansson.h +++ b/system/include/jansson.h @@ -82,7 +82,7 @@ typedef long long json_int_t; typedef long json_int_t; #endif /* JSON_INTEGER_IS_LONG_LONG */ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ extern "C" bool json_typeof(const void *object); extern "C" bool json_is_object(const void *object); extern "C" bool json_is_array(const void *object); diff --git a/system/lib/compiler-rt/int_endianness.h b/system/lib/compiler-rt/int_endianness.h index 17905355..fa294c49 100644 --- a/system/lib/compiler-rt/int_endianness.h +++ b/system/lib/compiler-rt/int_endianness.h @@ -100,7 +100,7 @@ #endif /* Windows */ -#if defined(EMSCRIPTEN) +#if defined(__EMSCRIPTEN__) #define _YUGA_LITTLE_ENDIAN 1 #define _YUGA_BIG_ENDIAN 0 diff --git a/system/lib/dlmalloc.c b/system/lib/dlmalloc.c index ce2c25f1..04e9e47b 100644 --- a/system/lib/dlmalloc.c +++ b/system/lib/dlmalloc.c @@ -1,6 +1,6 @@ /* XXX Emscripten XXX */ -#if EMSCRIPTEN +#if __EMSCRIPTEN__ #define DLMALLOC_EXPORT __attribute__((__weak__, __visibility__("default"))) /* mmap uses malloc, so malloc can't use mmap */ #define HAVE_MMAP 0 diff --git a/tests/799.cpp b/tests/799.cpp index 6c4c9b18..aa3213af 100644 --- a/tests/799.cpp +++ b/tests/799.cpp @@ -6,7 +6,7 @@ #include <sys/socket.h> #include <netinet/in.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <arpa/inet.h> #endif diff --git a/tests/aniso.c b/tests/aniso.c index 443e50aa..b925149d 100644 --- a/tests/aniso.c +++ b/tests/aniso.c @@ -208,7 +208,7 @@ int main(int argc, char *argv[]) */ SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(2000); #endif diff --git a/tests/asmjs-unknown-emscripten.c b/tests/asmjs-unknown-emscripten.c new file mode 100644 index 00000000..36071964 --- /dev/null +++ b/tests/asmjs-unknown-emscripten.c @@ -0,0 +1,98 @@ +#ifndef __EMSCRIPTEN__ +#error __EMSCRIPTEN__ is not defined +#endif +#ifndef __asmjs__ +#error __asmjs__ is not defined +#endif +#ifdef __cplusplus +#ifndef _GNU_SOURCE +#error _GNU_SOURCE is not defined in C++ +#endif +#endif +#ifndef __unix__ +#error __unix__ is not defined +#endif +#ifndef __LITTLE_ENDIAN__ +#error __LITTLE_ENDIAN__ is not defined +#endif + +#ifdef __clang__ +#if __has_feature(pnacl) +#error has feature pnacl +#endif +#endif + +#ifdef __native_client__ +#error __native_client__ is defined +#endif +#ifdef __pnacl__ +#error __pnacl__ is defined +#endif +#ifdef __ELF__ +#error __ELF__ is defined +#endif +#ifdef __i386__ +#error __i386__ is defined +#endif +#ifdef __i386 +#error __i386 is defined +#endif +#ifdef i386 +#error i386 is defined +#endif +#ifdef __SSE__ +#error __SSE__ is defined +#endif +#ifdef __SSE2__ +#error __SSE2__ is defined +#endif +#ifdef __SSE_MATH__ +#error __SSE_MATH__ is defined +#endif +#ifdef __SSE2_MATH__ +#error __SSE2_MATH__ is defined +#endif +#ifdef __MMX__ +#error __MMX__ is defined +#endif +#ifdef __APPLE__ +#error __APPLE__ is defined +#endif +#ifdef __linux__ +#error __linux__ is defined +#endif +#ifdef __BIG_ENDIAN__ +#error __BIG_ENDIAN__ is defined +#endif +#ifdef __LP64__ +#error __LP64__ is defined +#endif + +// We prefer to use __EMSCRIPTEN__, but for compatibility, we define +// EMSCRIPTEN too. +#ifndef EMSCRIPTEN +#error EMSCRIPTEN is not defined +#endif + +#include <stdint.h> +#include <stddef.h> +#include <string.h> +#include <assert.h> + +#define STRINGIZE_HELPER(x) #x +#define STRINGIZE(x) STRINGIZE_HELPER(x) + +int main() { + assert(sizeof(void*) == 4); + assert(sizeof(long) == 4); + assert(sizeof(intmax_t) == 8); + assert(__alignof(double) == 8); + assert(sizeof(long double) == 8); + assert(__alignof(long double) == 8); + assert(sizeof(intptr_t) == 4); + assert(sizeof(size_t) == 4); + assert(sizeof(ptrdiff_t) == 4); + assert(__FLT_EVAL_METHOD__ == 0); + assert(strcmp(STRINGIZE(__USER_LABEL_PREFIX__), "") == 0); + return 0; +} diff --git a/tests/box2d/Benchmark.cpp b/tests/box2d/Benchmark.cpp index 4fd79651..6c9b3c5b 100644 --- a/tests/box2d/Benchmark.cpp +++ b/tests/box2d/Benchmark.cpp @@ -25,7 +25,7 @@ typedef struct { #include <time.h> #include <math.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -131,7 +131,7 @@ int main(int argc, char **argv) { world->Step(1.0f/60.0f, 3, 3); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ responsive_main_loop = argc > 2 ? argv[2][0] - '0' : 0; if (responsive_main_loop) { printf("responsive main loop\n"); @@ -141,7 +141,7 @@ int main(int argc, char **argv) { do { iter(); } while (frameCounter <= FRAMES); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ } #endif @@ -173,7 +173,7 @@ void iter() { printf("frame averages: %.3f +- %.3f, range: %.3f to %.3f \n", result.mean, result.stddev, float(minn)/CLOCKS_PER_SEC * 1000, float(maxx)/CLOCKS_PER_SEC * 1000); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_run_script("if (Module.reportCompletion) Module.reportCompletion()"); if (responsive_main_loop) emscripten_cancel_main_loop(); #endif diff --git a/tests/cases/2xi40.ll b/tests/cases/2xi40.ll index 592f1ba4..03c918c8 100644 --- a/tests/cases/2xi40.ll +++ b/tests/cases/2xi40.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpe4Pk1F/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.pair = type { [5 x i8], [5 x i8] } diff --git a/tests/cases/514_ta2.ll b/tests/cases/514_ta2.ll index ab363242..d435cac1 100644 --- a/tests/cases/514_ta2.ll +++ b/tests/cases/514_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpxFUbAg/test_emcc1.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.c_s = type { i8, float, i32 } diff --git a/tests/cases/aliasbitcast.ll b/tests/cases/aliasbitcast.ll index 5e5f13aa..de46cdd4 100644 --- a/tests/cases/aliasbitcast.ll +++ b/tests/cases/aliasbitcast.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] diff --git a/tests/cases/atomicrmw.ll b/tests/cases/atomicrmw.ll index 31529250..abbcc7a6 100644 --- a/tests/cases/atomicrmw.ll +++ b/tests/cases/atomicrmw.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, %d,%d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/atomicrmw_dec.ll b/tests/cases/atomicrmw_dec.ll index 0ff08a5d..edb5bd8f 100644 --- a/tests/cases/atomicrmw_dec.ll +++ b/tests/cases/atomicrmw_dec.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, %d,%d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/atomicrmw_unaligned.ll b/tests/cases/atomicrmw_unaligned.ll index 31529250..abbcc7a6 100644 --- a/tests/cases/atomicrmw_unaligned.ll +++ b/tests/cases/atomicrmw_unaligned.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, %d,%d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/bigdouble.ll b/tests/cases/bigdouble.ll index cd58c08b..e96b10af 100644 --- a/tests/cases/bigdouble.ll +++ b/tests/cases/bigdouble.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpijH2sB/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [4 x i8] c"%f\0A\00", align 1 diff --git a/tests/cases/boolret_fastcomp.ll b/tests/cases/boolret_fastcomp.ll index a20cd001..1b968778 100644 --- a/tests/cases/boolret_fastcomp.ll +++ b/tests/cases/boolret_fastcomp.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"helloworld%d.\0A\00", align 1 diff --git a/tests/cases/breakinthemiddle.ll b/tests/cases/breakinthemiddle.ll index 6e05b853..4c43bbd0 100644 --- a/tests/cases/breakinthemiddle.ll +++ b/tests/cases/breakinthemiddle.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1] diff --git a/tests/cases/breakinthemiddle2.ll b/tests/cases/breakinthemiddle2.ll index 2f8c1c91..301b62c3 100644 --- a/tests/cases/breakinthemiddle2.ll +++ b/tests/cases/breakinthemiddle2.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1] diff --git a/tests/cases/caall.ll b/tests/cases/caall.ll index 2cc231ec..ffbf29d8 100644 --- a/tests/cases/caall.ll +++ b/tests/cases/caall.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/callwithstructural64_ta2.ll b/tests/cases/callwithstructural64_ta2.ll index d16b0e87..56b0442c 100644 --- a/tests/cases/callwithstructural64_ta2.ll +++ b/tests/cases/callwithstructural64_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'foo.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %ac = type { i8*, i64 } diff --git a/tests/cases/callwithstructural_ta2.ll b/tests/cases/callwithstructural_ta2.ll index bc6f852a..88a3d755 100644 --- a/tests/cases/callwithstructural_ta2.ll +++ b/tests/cases/callwithstructural_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'foo.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %ac = type { i8*, i32 } diff --git a/tests/cases/complexphi.ll b/tests/cases/complexphi.ll index e79e6f1b..0d1677f3 100644 --- a/tests/cases/complexphi.ll +++ b/tests/cases/complexphi.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] @_dispatchTable = internal global i64 0 diff --git a/tests/cases/ctors_cast.ll b/tests/cases/ctors_cast.ll index d94b1d63..707b5528 100644 --- a/tests/cases/ctors_cast.ll +++ b/tests/cases/ctors_cast.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpHcVUBJ/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.Other = type { i8 } diff --git a/tests/cases/dash.ll b/tests/cases/dash.ll index 6833a42e..6f727820 100644 --- a/tests/cases/dash.ll +++ b/tests/cases/dash.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpqfApGD/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @other-name = alias i32 ()* @main diff --git a/tests/cases/dollar.ll b/tests/cases/dollar.ll index 7d730d6a..8f0c1dd7 100644 --- a/tests/cases/dollar.ll +++ b/tests/cases/dollar.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/emptyalloca.ll b/tests/cases/emptyalloca.ll index f12a4161..0c03c645 100644 --- a/tests/cases/emptyalloca.ll +++ b/tests/cases/emptyalloca.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpjSNiky/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [30 x i8] c"Module.print('hello, world!')\00", align 1 diff --git a/tests/cases/emptyasm_le32.ll b/tests/cases/emptyasm_aue.ll index 8f6b606e..65d9e213 100644 --- a/tests/cases/emptyasm_le32.ll +++ b/tests/cases/emptyasm_aue.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" ; ModuleID = 'tests/hello_world.bc' diff --git a/tests/cases/entry3.ll b/tests/cases/entry3.ll index 6888d0a8..7e154e2c 100644 --- a/tests/cases/entry3.ll +++ b/tests/cases/entry3.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpKnA2D3/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [11 x i8] c"getgid=%d\0A\00", align 1 @.str1 = private unnamed_addr constant [6 x i8] c"f=%d\0A\00", align 1 diff --git a/tests/cases/fptosi.ll b/tests/cases/fptosi.ll index 71bc6af8..caf9b754 100644 --- a/tests/cases/fptosi.ll +++ b/tests/cases/fptosi.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [8 x i8] c"*%.3f*\0A\00", align 1 ; [#uses=1 type=[8 x i8]*] @.str2 = private unnamed_addr constant [6 x i8] c"*%d*\0A\00", align 1 ; [#uses=1 type=[6 x i8]*] diff --git a/tests/cases/funcptr.ll b/tests/cases/funcptr.ll index ef869c33..ffc1ad1d 100644 --- a/tests/cases/funcptr.ll +++ b/tests/cases/funcptr.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [17 x i8] c"hello %d world!\0A\00", align 1 ; [#uses=1 type=[17 x i8]*] diff --git a/tests/cases/fuzz6_ta2.ll b/tests/cases/fuzz6_ta2.ll index dea3a21d..225493f9 100644 --- a/tests/cases/fuzz6_ta2.ll +++ b/tests/cases/fuzz6_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'emcc-0-basebc.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.S3 = type { i32, i32 } %struct.S1 = type { i32, i32, i8, i16 } diff --git a/tests/cases/gepaddoverflow.ll b/tests/cases/gepaddoverflow.ll index 11246c1d..258e2cc5 100644 --- a/tests/cases/gepaddoverflow.ll +++ b/tests/cases/gepaddoverflow.ll @@ -1,6 +1,6 @@ ; ModuleID = 'new.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" declare i32 @printf(i8* noalias, ...) nounwind diff --git a/tests/cases/i24_mem_ta2.ll b/tests/cases/i24_mem_ta2.ll index 550389fe..995c9f8b 100644 --- a/tests/cases/i24_mem_ta2.ll +++ b/tests/cases/i24_mem_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [6 x i8] c".%x.\0A\00", align 1 ; [#uses=1 type=[5 x i8]*] diff --git a/tests/cases/i96_ashr_ta2.ll b/tests/cases/i96_ashr_ta2.ll index 83966168..da6410f9 100644 --- a/tests/cases/i96_ashr_ta2.ll +++ b/tests/cases/i96_ashr_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [23 x i8] c"hello..world!%x,%x,%x\0A\00", align 1 diff --git a/tests/cases/i96shiftnon32_ta2.ll b/tests/cases/i96shiftnon32_ta2.ll index 55e84575..815d71ea 100644 --- a/tests/cases/i96shiftnon32_ta2.ll +++ b/tests/cases/i96shiftnon32_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpxFUbAg/test_emcc1.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.c_s = type { i8, float, i32 } diff --git a/tests/cases/inttoptr.ll b/tests/cases/inttoptr.ll index c1b40a74..e225336c 100644 --- a/tests/cases/inttoptr.ll +++ b/tests/cases/inttoptr.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] diff --git a/tests/cases/invokebitcast.ll b/tests/cases/invokebitcast.ll index ec090b0d..63239a7b 100644 --- a/tests/cases/invokebitcast.ll +++ b/tests/cases/invokebitcast.ll @@ -1,7 +1,7 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' ; Just test for compilation here -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.CPU_Regs = type { [8 x %union.GenReg32] } %union.GenReg32 = type { [1 x i32] } diff --git a/tests/cases/invokeundef.ll b/tests/cases/invokeundef.ll index 2f13e7ab..17b14a3f 100644 --- a/tests/cases/invokeundef.ll +++ b/tests/cases/invokeundef.ll @@ -1,7 +1,7 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' ; Just test for compilation here -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.CPU_Regs = type { [8 x %union.GenReg32] } %union.GenReg32 = type { [1 x i32] } diff --git a/tests/cases/legalizer_b_ta2.ll b/tests/cases/legalizer_b_ta2.ll index a6214100..fcbfda20 100644 --- a/tests/cases/legalizer_b_ta2.ll +++ b/tests/cases/legalizer_b_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @globaliz = global [300 x i8] zeroinitializer diff --git a/tests/cases/legalizer_ta2.ll b/tests/cases/legalizer_ta2.ll index 6f153ad2..e7f71f15 100644 --- a/tests/cases/legalizer_ta2.ll +++ b/tests/cases/legalizer_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @globaliz = global [300 x i8] zeroinitializer diff --git a/tests/cases/loadbitcastgep.ll b/tests/cases/loadbitcastgep.ll index cfb88a0d..daba67c4 100644 --- a/tests/cases/loadbitcastgep.ll +++ b/tests/cases/loadbitcastgep.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.CPU_Regs = type { [8 x %union.GenReg32] } %union.GenReg32 = type { [1 x i32] } diff --git a/tests/cases/muli33_ta2.ll b/tests/cases/muli33_ta2.ll index b33b04f7..7a427731 100644 --- a/tests/cases/muli33_ta2.ll +++ b/tests/cases/muli33_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpt0JpDh/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [7 x i8] c"20\0A91\0A\00", align 1 @.str1 = private unnamed_addr constant [6 x i8] c"%u %u\00", align 1 diff --git a/tests/cases/oob_ta2.ll b/tests/cases/oob_ta2.ll index b95d28da..51b622b5 100644 --- a/tests/cases/oob_ta2.ll +++ b/tests/cases/oob_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %structy = type { [2 x [10 x i8]] } diff --git a/tests/cases/phi24_ta2.ll b/tests/cases/phi24_ta2.ll index 18577fee..17edb228 100644 --- a/tests/cases/phi24_ta2.ll +++ b/tests/cases/phi24_ta2.ll @@ -1,6 +1,6 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %union.U4 = type { i32 } %union.U3 = type { i8* } diff --git a/tests/cases/phicubed.ll b/tests/cases/phicubed.ll index 5fc3208b..7079dc63 100644 --- a/tests/cases/phicubed.ll +++ b/tests/cases/phicubed.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.worker_args = type { i32, %struct.worker_args* } diff --git a/tests/cases/phientryimplicit.ll b/tests/cases/phientryimplicit.ll index c237457c..3249bb8d 100644 --- a/tests/cases/phientryimplicit.ll +++ b/tests/cases/phientryimplicit.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" ; Phi nodes can refer to the entry. And the entry might be unnamed, and doesn't even have a consistent implicit name! diff --git a/tests/cases/phientryimplicitmix.ll b/tests/cases/phientryimplicitmix.ll index 527c761f..7696f5a9 100644 --- a/tests/cases/phientryimplicitmix.ll +++ b/tests/cases/phientryimplicitmix.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" ; Phi nodes can refer to the entry. And the entry might be unnamed, and doesn't even have a consistent implicit name! diff --git a/tests/cases/phientryimplicitmoar.ll b/tests/cases/phientryimplicitmoar.ll index 0f07cc44..eca7276e 100644 --- a/tests/cases/phientryimplicitmoar.ll +++ b/tests/cases/phientryimplicitmoar.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] @.str2 = private unnamed_addr constant [15 x i8] c"hello!!world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/philoop_ta2.ll b/tests/cases/philoop_ta2.ll index 5036c7ba..1afec610 100644 --- a/tests/cases/philoop_ta2.ll +++ b/tests/cases/philoop_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/tmpVIBz29/a.out.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [13 x i8] c"99\0A70\0A26\0A97\0A\00", align 1 @.str1 = private unnamed_addr constant [12 x i8] c"%u %u %u %u\00", align 1 diff --git a/tests/cases/phiptrtoint.ll b/tests/cases/phiptrtoint.ll index d682dc06..617ada49 100644 --- a/tests/cases/phiptrtoint.ll +++ b/tests/cases/phiptrtoint.ll @@ -1,7 +1,7 @@ ; ModuleID = '/tmp/tmpJctwj0/bug.bc' ; just an asm validation check, no output -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %"class.test::Processor" = type { i32, %"class.test::StateMachine" } %"class.test::StateMachine" = type { { i32, i32 } } diff --git a/tests/cases/phiself.ll b/tests/cases/phiself.ll index 0a06fcca..b61b970f 100644 --- a/tests/cases/phiself.ll +++ b/tests/cases/phiself.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/emscripten_temp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [7 x i8] c"cheez\0A\00", align 1 @.str1 = private unnamed_addr constant [6 x i8] c"*%d*\0A\00", align 1 diff --git a/tests/cases/ptrtoi64.ll b/tests/cases/ptrtoi64.ll index 5898f529..09929742 100644 --- a/tests/cases/ptrtoi64.ll +++ b/tests/cases/ptrtoi64.ll @@ -1,8 +1,8 @@ ; pointer to i64, then to i32 ; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str2 = private constant [9 x i8] c"*%d,%d*\0A\00", align 1 ; [#uses=1] diff --git a/tests/cases/ptrtoint_blockaddr.ll b/tests/cases/ptrtoint_blockaddr.ll index 6adc2c5b..08370650 100644 --- a/tests/cases/ptrtoint_blockaddr.ll +++ b/tests/cases/ptrtoint_blockaddr.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1] diff --git a/tests/cases/sillybitcast.ll b/tests/cases/sillybitcast.ll index 50a54da9..020a6e84 100644 --- a/tests/cases/sillybitcast.ll +++ b/tests/cases/sillybitcast.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] diff --git a/tests/cases/sillybitcast2.ll b/tests/cases/sillybitcast2.ll index 02cf8615..275760c5 100644 --- a/tests/cases/sillybitcast2.ll +++ b/tests/cases/sillybitcast2.ll @@ -1,6 +1,6 @@ ; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] diff --git a/tests/cases/sillyfuncast.ll b/tests/cases/sillyfuncast.ll index 33598104..2f2f7fe6 100644 --- a/tests/cases/sillyfuncast.ll +++ b/tests/cases/sillyfuncast.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/storebigfloat.ll b/tests/cases/storebigfloat.ll index b940f5ca..a7c6c2da 100644 --- a/tests/cases/storebigfloat.ll +++ b/tests/cases/storebigfloat.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/storestruct.ll b/tests/cases/storestruct.ll index 3e996195..1bc0bffb 100644 --- a/tests/cases/storestruct.ll +++ b/tests/cases/storestruct.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" ; Load and store an entire structure as a whole (and also load as a whole, extract values and save separately, etc.) diff --git a/tests/cases/structinparam.ll b/tests/cases/structinparam.ll index d81f5e67..93f486a0 100644 --- a/tests/cases/structinparam.ll +++ b/tests/cases/structinparam.ll @@ -1,6 +1,6 @@ ; ModuleID = 'min.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %ac = type { i8*, i32 } diff --git a/tests/cases/structphiparam.ll b/tests/cases/structphiparam.ll index fadf4d29..b5d05c17 100644 --- a/tests/cases/structphiparam.ll +++ b/tests/cases/structphiparam.ll @@ -1,6 +1,6 @@ ; ModuleID = '/dev/shm/tmp/src.cpp.o' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, %d %d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] @_dispatchTable = internal global i64 0 diff --git a/tests/cases/sub_11_0.ll b/tests/cases/sub_11_0.ll index d4094556..59f70c7f 100644 --- a/tests/cases/sub_11_0.ll +++ b/tests/cases/sub_11_0.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cases/switch64_ta2.ll b/tests/cases/switch64_ta2.ll index 1a6d52f3..f30c078f 100644 --- a/tests/cases/switch64_ta2.ll +++ b/tests/cases/switch64_ta2.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [18 x i8] c"hello, world: %d\0A\00", align 1 diff --git a/tests/cases/switch64b_ta2.ll b/tests/cases/switch64b_ta2.ll index 4364725f..beb644e0 100644 --- a/tests/cases/switch64b_ta2.ll +++ b/tests/cases/switch64b_ta2.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private constant [18 x i8] c"hello, world: %d\0A\00", align 1 diff --git a/tests/cases/uadd_overflow_ta2.ll b/tests/cases/uadd_overflow_ta2.ll index e827cb38..19c2908b 100644 --- a/tests/cases/uadd_overflow_ta2.ll +++ b/tests/cases/uadd_overflow_ta2.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str2 = private constant [9 x i8] c"*%d,%d*\0A\00", align 1 ; [#uses=1] diff --git a/tests/cases/zeroembedded.ll b/tests/cases/zeroembedded.ll index 167fe278..b1394893 100644 --- a/tests/cases/zeroembedded.ll +++ b/tests/cases/zeroembedded.ll @@ -1,5 +1,5 @@ -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" %struct.pypy_str = type { i32, [0 x i8] } %struct.pypy_strval = type { i32, [13 x i8] } diff --git a/tests/cases/zeroextarg.ll b/tests/cases/zeroextarg.ll index a3caa74c..ff42741b 100644 --- a/tests/cases/zeroextarg.ll +++ b/tests/cases/zeroextarg.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' -target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/cube_explosion.c b/tests/cube_explosion.c index 0c6eb674..a899f068 100644 --- a/tests/cube_explosion.c +++ b/tests/cube_explosion.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -216,7 +216,7 @@ int main(int argc, char *argv[]) glDeleteTextures(1, &texture); assert(!glIsTexture(texture)); // but not anymore -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom.c b/tests/cubegeom.c index e749045b..950439ec 100644 --- a/tests/cubegeom.c +++ b/tests/cubegeom.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -316,7 +316,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_color.c b/tests/cubegeom_color.c index ff30e1a9..0d2b6ecb 100644 --- a/tests/cubegeom_color.c +++ b/tests/cubegeom_color.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -38,7 +38,7 @@ void verify() { for (int x = 0; x < width*height*4; x++) { if (x % 4 != 3) sum += x * data[x]; } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = sum; REPORT_RESULT(); #endif @@ -286,7 +286,7 @@ int main(int argc, char *argv[]) verify(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_color2.c b/tests/cubegeom_color2.c index 76d71d00..76bbb119 100644 --- a/tests/cubegeom_color2.c +++ b/tests/cubegeom_color2.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -273,7 +273,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_fog.c b/tests/cubegeom_fog.c index cae6ca2d..50d2843b 100644 --- a/tests/cubegeom_fog.c +++ b/tests/cubegeom_fog.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -281,7 +281,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_glew.c b/tests/cubegeom_glew.c index 210e1c60..96f401c6 100644 --- a/tests/cubegeom_glew.c +++ b/tests/cubegeom_glew.c @@ -287,7 +287,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_mt.c b/tests/cubegeom_mt.c index b4ad28a7..cbfcbfdf 100644 --- a/tests/cubegeom_mt.c +++ b/tests/cubegeom_mt.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -274,7 +274,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal.c b/tests/cubegeom_normal.c index 02655edf..e56286fb 100644 --- a/tests/cubegeom_normal.c +++ b/tests/cubegeom_normal.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -269,7 +269,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal_dap.c b/tests/cubegeom_normal_dap.c index 752911a8..594aec05 100644 --- a/tests/cubegeom_normal_dap.c +++ b/tests/cubegeom_normal_dap.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -266,7 +266,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal_dap_far.c b/tests/cubegeom_normal_dap_far.c index 35a068d9..da28f775 100644 --- a/tests/cubegeom_normal_dap_far.c +++ b/tests/cubegeom_normal_dap_far.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#if !defined(__EMSCRIPTEN__) #define USE_GLEW 1 #endif @@ -263,7 +263,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#if !defined(__EMSCRIPTEN__) SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal_dap_far_glda.c b/tests/cubegeom_normal_dap_far_glda.c index 849245b8..ee381458 100644 --- a/tests/cubegeom_normal_dap_far_glda.c +++ b/tests/cubegeom_normal_dap_far_glda.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -254,7 +254,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal_dap_far_glda_quad.c b/tests/cubegeom_normal_dap_far_glda_quad.c index 93c157a4..91f60031 100644 --- a/tests/cubegeom_normal_dap_far_glda_quad.c +++ b/tests/cubegeom_normal_dap_far_glda_quad.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -254,7 +254,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_normal_dap_far_range.c b/tests/cubegeom_normal_dap_far_range.c index 17691ce9..3f041668 100644 --- a/tests/cubegeom_normal_dap_far_range.c +++ b/tests/cubegeom_normal_dap_far_range.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -263,7 +263,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre.c b/tests/cubegeom_pre.c index 40b03cf7..70e3435f 100644 --- a/tests/cubegeom_pre.c +++ b/tests/cubegeom_pre.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -283,7 +283,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre2.c b/tests/cubegeom_pre2.c index df04ae31..88c82541 100644 --- a/tests/cubegeom_pre2.c +++ b/tests/cubegeom_pre2.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -322,7 +322,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre2_vao.c b/tests/cubegeom_pre2_vao.c index 733c8fc6..5abe1868 100644 --- a/tests/cubegeom_pre2_vao.c +++ b/tests/cubegeom_pre2_vao.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -354,7 +354,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre2_vao2.c b/tests/cubegeom_pre2_vao2.c index 69096833..d2d55597 100644 --- a/tests/cubegeom_pre2_vao2.c +++ b/tests/cubegeom_pre2_vao2.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -355,7 +355,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre3.c b/tests/cubegeom_pre3.c index ceaa757e..81c87589 100644 --- a/tests/cubegeom_pre3.c +++ b/tests/cubegeom_pre3.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -322,7 +322,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_pre_vao.c b/tests/cubegeom_pre_vao.c index 8c598143..4f7adf9e 100644 --- a/tests/cubegeom_pre_vao.c +++ b/tests/cubegeom_pre_vao.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -308,7 +308,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_proc.c b/tests/cubegeom_proc.c index e80b9b31..2dfe85ae 100644 --- a/tests/cubegeom_proc.c +++ b/tests/cubegeom_proc.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -321,7 +321,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/cubegeom_texturematrix.c b/tests/cubegeom_texturematrix.c index abb667eb..21824344 100644 --- a/tests/cubegeom_texturematrix.c +++ b/tests/cubegeom_texturematrix.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -287,7 +287,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/embind/build_benchmark b/tests/embind/build_benchmark index 3d5d816b..74239406 100644 --- a/tests/embind/build_benchmark +++ b/tests/embind/build_benchmark @@ -1,2 +1,2 @@ #!/bin/bash -EMCC_LLVM_TARGET=le32-unknown-nacl ../../emcc --minify 0 --bind --post-js embind.benchmark.js -O2 --shell-file shell.html -o embind_benchmark.html embind_benchmark.cpp +EMCC_LLVM_TARGET=asmjs-unknown-emscripten ../../emcc --minify 0 --bind --post-js embind.benchmark.js -O2 --shell-file shell.html -o embind_benchmark.html embind_benchmark.cpp diff --git a/tests/fuzz/11.c b/tests/fuzz/11.c new file mode 100644 index 00000000..5d5644fe --- /dev/null +++ b/tests/fuzz/11.c @@ -0,0 +1,1570 @@ +/* + * This is a RANDOMLY GENERATED PROGRAM. + * + * Generator: csmith 2.2.0 + * Git version: bf42ffd + * Options: --no-volatiles --no-packed-struct --no-math64 + * Seed: 3982457068 + */ + +#include "csmith.h" + + +static long __undefined; + +/* --- Struct/Union Declarations --- */ +struct S0 { + const int16_t f0; + uint16_t f1; + const uint16_t f2; + uint16_t f3; + const uint8_t f4; +}; + +struct S1 { + int8_t f0; + int32_t f1; + uint16_t f2; + struct S0 f3; + signed : 0; + uint16_t f4; +}; + +union U2 { + int32_t f0; + int8_t * f1; + uint16_t f2; +}; + +/* --- GLOBAL VARIABLES --- */ +static int8_t g_9 = 0L; +static int8_t *g_10 = &g_9; +static union U2 g_23 = {5L}; +static uint32_t g_27 = 0x763523E2L; +static int32_t g_29 = (-10L); +static int32_t *g_28[8] = {&g_29,&g_29,&g_29,&g_29,&g_29,&g_29,&g_29,&g_29}; +static int32_t g_33 = (-7L); +static int32_t g_82 = 0x6BCC6B82L; +static int16_t g_92 = 0x986BL; +static uint8_t g_94 = 0x71L; +static uint8_t g_96 = 9UL; +static const int32_t g_130[8][6] = {{0xBB608825L,0x2773D60BL,(-4L),(-1L),0x16DB7C97L,(-4L)},{0xB3C507C2L,0L,0x16DB7C97L,0x013F98BFL,0x16DB7C97L,0L},{(-1L),0x2773D60BL,1L,0x013F98BFL,0x2773D60BL,0x16DB7C97L},{0xB3C507C2L,0x16DB7C97L,1L,(-1L),0L,0L},{0xBB608825L,0x16DB7C97L,0x16DB7C97L,0xBB608825L,0x2773D60BL,(-4L)},{0xBB608825L,0x2773D60BL,(-4L),(-1L),0x16DB7C97L,(-4L)},{0xB3C507C2L,0L,8L,0x2773D60BL,8L,0x73286A6EL},{(-4L),1L,8L,0x2773D60BL,1L,8L}}; +static const int32_t g_132 = 0xBF8BA2E1L; +static const int32_t *g_131 = &g_132; +static const int32_t *g_133[1] = {&g_82}; +static int32_t g_140 = 1L; +static uint8_t g_141[6][7] = {{0x59L,0x4EL,0x2EL,0xA7L,0xDAL,247UL,0x90L},{246UL,1UL,0x97L,0x54L,247UL,0x54L,0x97L},{247UL,247UL,0xF6L,0xC5L,247UL,0x54L,0x38L},{0x0EL,0xF6L,0x38L,255UL,246UL,247UL,0x4EL},{0x54L,0x6EL,247UL,0x38L,247UL,0x6EL,0x54L},{0xDAL,0x54L,0x59L,0x38L,247UL,0x4EL,255UL}}; +static uint16_t *g_146 = &g_23.f2; +static struct S0 g_193 = {0L,0UL,65535UL,0x6792L,0xD8L}; +static struct S1 g_203 = {8L,-1L,65531UL,{-8L,0xE92DL,0x7043L,0x3039L,253UL},0xF5C3L}; +static struct S1 *g_202[5][10] = {{&g_203,(void*)0,&g_203,&g_203,&g_203,(void*)0,&g_203,&g_203,(void*)0,(void*)0},{&g_203,(void*)0,(void*)0,&g_203,&g_203,(void*)0,(void*)0,&g_203,(void*)0,&g_203},{(void*)0,(void*)0,&g_203,(void*)0,&g_203,(void*)0,&g_203,(void*)0,(void*)0,&g_203},{&g_203,(void*)0,&g_203,&g_203,(void*)0,(void*)0,&g_203,&g_203,(void*)0,&g_203},{(void*)0,(void*)0,(void*)0,&g_203,(void*)0,&g_203,(void*)0,&g_203,(void*)0,(void*)0}}; +static uint32_t g_275[6][3] = {{0xB93AAF63L,0xB93AAF63L,0xB93AAF63L},{0x949218ACL,0x949218ACL,0x949218ACL},{0xB93AAF63L,0xB93AAF63L,0xB93AAF63L},{0x949218ACL,0x949218ACL,0x949218ACL},{0xB93AAF63L,0xB93AAF63L,0xB93AAF63L},{0x949218ACL,0x949218ACL,0x949218ACL}}; +static int32_t *g_364 = &g_23.f0; +static int32_t **g_363 = &g_364; +static int32_t ***g_362[4][6] = {{(void*)0,&g_363,&g_363,&g_363,(void*)0,&g_363},{&g_363,(void*)0,&g_363,&g_363,(void*)0,&g_363},{(void*)0,&g_363,&g_363,(void*)0,&g_363,&g_363},{&g_363,(void*)0,&g_363,&g_363,&g_363,&g_363}}; +static int16_t g_367 = 0x405BL; +static int8_t g_368[9][8][3] = {{{0x36L,(-4L),0x84L},{3L,(-1L),0L},{0xADL,0x36L,0x84L},{(-1L),0x20L,3L},{8L,(-1L),8L},{1L,0x30L,(-6L)},{0L,0xE3L,0x5BL},{0x30L,0L,0xF6L}},{{(-1L),0x5BL,0xF7L},{0x30L,(-8L),1L},{0L,1L,1L},{1L,0xF6L,(-1L)},{8L,(-1L),0x6DL},{(-1L),0xE6L,0x8CL},{0xADL,(-9L),0x47L},{3L,1L,(-1L)}},{{(-1L),1L,8L},{0x8BL,0x8BL,1L},{0xADL,0x47L,0L},{0xC2L,1L,0x30L},{0L,(-8L),(-1L)},{0xFBL,0xC2L,0x30L},{0xF7L,(-9L),0L},{1L,(-1L),1L}},{{(-4L),0x5BL,8L},{0xE6L,0x0AL,(-1L)},{0x5BL,(-1L),0xADL},{(-1L),(-1L),3L},{0x5BL,0x6DL,0x36L},{0xE6L,0xF6L,0xF6L},{(-4L),0xADL,0x47L},{1L,(-1L),0L}},{{0xF7L,0xBDL,(-2L)},{0xFBL,0xCAL,0x8BL},{0L,0xBDL,(-8L)},{0xC2L,(-1L),0xE6L},{0xADL,0xADL,0xBDL},{0x8BL,0xF6L,(-6L)},{(-1L),0x6DL,(-1L)},{(-6L),(-1L),0xC2L}},{{0L,(-1L),(-1L)},{0x8CL,0x0AL,(-6L)},{0xBDL,0x5BL,0xBDL},{(-8L),(-1L),0xE6L},{8L,(-9L),(-8L)},{(-1L),0xC2L,0x8BL},{1L,(-8L),(-2L)},{(-1L),1L,0L}},{{8L,0x47L,0x47L},{(-8L),0x8BL,0xF6L},{0xBDL,1L,0x36L},{0x8CL,1L,3L},{0L,0x84L,0xADL},{(-6L),1L,(-1L)},{(-1L),1L,8L},{0x8BL,0x8BL,1L}},{{0xADL,0x47L,0L},{0xC2L,1L,0x30L},{0L,(-8L),(-1L)},{0xFBL,0xC2L,0x30L},{0xF7L,(-9L),0L},{1L,(-1L),1L},{(-4L),0x5BL,8L},{0xE6L,0x0AL,(-1L)}},{{0x5BL,(-1L),0xADL},{(-1L),(-1L),3L},{0x5BL,0x6DL,0x36L},{0xE6L,0xF6L,0xF6L},{(-4L),0xADL,0x47L},{1L,(-1L),0L},{0xF7L,0xBDL,(-2L)},{0xFBL,0xCAL,0x8BL}}}; +static struct S1 g_429[4][6][6] = {{{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}}},{{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}}},{{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}}},{{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{7L,9L,0xCB7DL,{1L,0UL,0x1D7BL,0x4424L,0xF9L},0xC9D4L}},{{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x0CL,0xF59095C9L,0x632BL,{1L,65528UL,0xAC68L,0UL,1UL},0UL}},{{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{-8L,0xEF94E310L,0xE17EL,{0xF561L,0xE7EFL,65535UL,0xF583L,255UL},0xF36CL},{0x3CL,0xDFB0633DL,65527UL,{8L,1UL,65530UL,0UL,2UL},0x7E5AL},{0x8AL,9L,65535UL,{0x291EL,1UL,0UL,65530UL,0x41L},0xB256L}}}}; +static int8_t g_448 = (-3L); +static uint32_t g_491 = 9UL; +static uint16_t *g_522 = &g_203.f3.f1; +static struct S0 g_663 = {0xB058L,0xD411L,0UL,0x1BCDL,4UL}; +static int32_t *g_688 = &g_82; +static uint32_t g_709[9][3] = {{0xF128B38DL,0xF128B38DL,0xF128B38DL},{1UL,1UL,1UL},{0xF128B38DL,0xF128B38DL,0xF128B38DL},{1UL,1UL,1UL},{0xF128B38DL,0xF128B38DL,0xF128B38DL},{1UL,1UL,1UL},{0xF128B38DL,0xF128B38DL,0xF128B38DL},{1UL,1UL,1UL},{0xF128B38DL,0xF128B38DL,0xF128B38DL}}; +static uint8_t * const g_713 = &g_94; +static uint8_t * const * const g_712 = &g_713; +static uint32_t **g_737 = (void*)0; +static struct S0 *g_803 = (void*)0; +static struct S0 **g_802 = &g_803; +static int8_t g_870 = 0xBAL; +static int32_t g_902 = 0L; +static uint32_t g_1001 = 0xCE9223C1L; +static const union U2 g_1007 = {-1L}; +static const union U2 *g_1006 = &g_1007; +static int8_t *g_1010 = &g_429[3][2][4].f0; +static union U2 *g_1059 = (void*)0; +static union U2 **g_1058 = &g_1059; +static uint8_t *g_1153 = &g_96; +static const int8_t ***g_1346 = (void*)0; +static uint32_t g_1359 = 6UL; +static uint32_t g_1361 = 0UL; +static uint8_t **g_1455 = &g_1153; +static int8_t g_1473[9] = {0x70L,0x70L,0x70L,0x70L,0x70L,0x70L,0x70L,0x70L,0x70L}; +static uint32_t g_1474 = 0x2827E164L; +static uint32_t g_1492 = 0x98C6FA4DL; +static uint32_t *g_1707 = (void*)0; +static uint32_t * const *g_1706 = &g_1707; +static const int32_t g_1725 = 0xA265A2AFL; +static uint32_t ****g_1766 = (void*)0; +static int16_t g_1798 = 0xD17FL; +static struct S1 ** const g_1899 = (void*)0; +static const uint32_t *g_1931[2] = {(void*)0,(void*)0}; +static const uint32_t **g_1930 = &g_1931[0]; +static const int32_t *g_1949 = &g_132; +static int32_t ****g_2039 = &g_362[0][3]; +static uint32_t g_2122 = 18446744073709551612UL; +static int16_t *g_2213[9][3][4] = {{{&g_92,&g_1798,&g_92,(void*)0},{(void*)0,&g_367,(void*)0,&g_92},{&g_92,&g_367,&g_1798,&g_1798}},{{&g_1798,&g_1798,&g_367,&g_367},{(void*)0,&g_92,&g_367,&g_92},{&g_1798,(void*)0,&g_1798,(void*)0}},{{&g_92,&g_1798,(void*)0,(void*)0},{(void*)0,&g_1798,&g_367,(void*)0},{&g_92,&g_1798,&g_1798,&g_367}},{{&g_1798,&g_1798,&g_1798,(void*)0},{&g_92,&g_367,&g_1798,&g_1798},{&g_1798,&g_1798,&g_92,&g_92}},{{(void*)0,(void*)0,(void*)0,&g_1798},{&g_92,&g_92,&g_1798,(void*)0},{&g_1798,&g_367,&g_1798,&g_1798}},{{&g_367,&g_367,&g_1798,(void*)0},{&g_367,&g_92,(void*)0,&g_1798},{&g_92,(void*)0,(void*)0,&g_92}},{{&g_367,&g_1798,&g_1798,&g_1798},{(void*)0,&g_367,&g_1798,(void*)0},{&g_1798,&g_1798,&g_92,&g_367}},{{(void*)0,&g_1798,(void*)0,(void*)0},{&g_1798,&g_1798,(void*)0,&g_1798},{&g_92,(void*)0,&g_92,&g_1798}},{{(void*)0,&g_1798,&g_92,(void*)0},{&g_1798,&g_92,&g_367,(void*)0},{&g_1798,&g_367,&g_92,&g_92}}}; +static int16_t * const *g_2212 = &g_2213[8][2][2]; +static int16_t g_2341 = 0x2E6AL; +static union U2 ***g_2562 = &g_1058; +static union U2 ****g_2561 = &g_2562; +static uint32_t g_2575 = 0xBF53EBB2L; +static struct S0 g_2686 = {1L,0UL,1UL,65529UL,0UL}; +static struct S0 *g_2718[3][2] = {{(void*)0,(void*)0},{(void*)0,(void*)0},{(void*)0,(void*)0}}; +static uint8_t ***g_2741 = &g_1455; +static const int32_t *g_2749 = &g_1007.f0; +static const int32_t **g_2748 = &g_2749; +static const int32_t ***g_2747 = &g_2748; +static uint32_t g_2898 = 18446744073709551615UL; + + +/* --- FORWARD DECLARATIONS --- */ +static uint16_t func_1(void); +static int32_t * func_2(int8_t * p_3); +static int8_t * func_4(uint32_t p_5, int8_t * p_6, int8_t * p_7); +static int8_t * func_11(uint8_t p_12, int32_t * p_13, struct S0 p_14, int32_t * p_15); +static int32_t * func_16(struct S1 p_17, uint32_t p_18, int8_t * p_19, union U2 p_20); +static int32_t func_34(int8_t * p_35, int8_t * p_36, uint16_t p_37); +static int8_t * func_38(int32_t * p_39); +static union U2 func_40(int32_t * p_41, int8_t * p_42, struct S0 p_43, int32_t p_44); +static int32_t * func_45(int8_t * const p_46, int32_t * p_47, int8_t * p_48); +static int32_t * func_50(uint32_t p_51, int8_t p_52, int8_t p_53, int8_t * p_54, const int32_t p_55); + + +/* --- FUNCTIONS --- */ +/* ------------------------------------------ */ +/* + * reads : g_10 g_23 g_27 g_28 g_29 g_33 g_688 g_82 g_1006 g_522 g_203.f3.f1 g_713 g_146 g_23.f2 g_9 g_448 g_23.f0 g_193 g_130 g_96 g_202 g_94 g_140 g_132 g_141 g_275 g_203.f3.f0 g_203.f3.f4 g_362 g_367 g_203.f1 g_368 g_802 g_803 g_491 g_1725 g_712 g_203.f3.f3 g_902 g_1359 g_1058 g_2341 g_1153 g_1059 g_663.f1 g_1455 g_1492 g_2561 g_1949 g_203.f4 g_2575 g_1010 g_429.f0 g_131 g_2562 g_870 g_92 g_2741 g_2898 g_709 + * writes: g_27 g_28 g_29 g_33 g_82 g_23 g_94 g_1010 g_202 g_203.f1 g_92 g_275 g_448 g_203.f0 g_96 g_141 g_193.f3 g_9 g_663.f1 g_803 g_491 g_367 g_2212 g_203.f3.f1 g_2039 g_203.f3.f3 g_902 g_2213 g_1359 g_1059 g_688 g_1492 g_131 g_203.f4 g_2575 g_737 g_2562 g_10 g_870 g_2898 g_429.f0 + */ +static uint16_t func_1(void) +{ /* block id: 0 */ + int8_t *l_8[3]; + struct S1 l_21 = {0xF7L,-1L,0x9D9EL,{1L,0x422DL,0xFBA2L,0UL,0xBFL},0xC2F5L}; + int32_t l_22 = 0xB6930509L; + int32_t *l_30 = &l_22; + int32_t *l_31 = &g_29; + int8_t **l_2633[1][9][5] = {{{(void*)0,(void*)0,&g_10,&g_10,&g_10},{&l_8[0],&l_8[0],&l_8[0],&l_8[2],&g_1010},{&g_10,(void*)0,(void*)0,&l_8[2],&l_8[1]},{&l_8[0],&l_8[0],&l_8[0],&l_8[0],&l_8[0]},{&l_8[0],&l_8[0],(void*)0,&l_8[1],(void*)0},{&l_8[0],&g_10,&l_8[0],&g_10,&l_8[0]},{&l_8[0],&l_8[2],&g_10,&l_8[1],&l_8[1]},{(void*)0,&g_10,&l_8[0],&l_8[0],&g_10},{&g_10,(void*)0,&l_8[0],&l_8[2],&l_8[1]}}}; + int8_t *l_2634 = &g_203.f0; + int32_t **l_2857 = &l_30; + int16_t l_2858[2][2]; + int32_t l_2861 = 0x6E8C1F75L; + int32_t l_2862 = (-1L); + int32_t l_2863 = 0x3B8928E0L; + int32_t l_2864 = 0L; + int8_t l_2865[8][9] = {{0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L},{0x92L,0L,0x92L,0L,0x92L,0L,0x92L,0L,0x92L},{0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L},{0x92L,0L,0x92L,0L,0x92L,0L,0x92L,0L,0x92L},{0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L},{0x92L,0L,0x92L,0L,0x92L,0L,0x92L,0L,0x92L},{0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L,0x42L},{0x92L,0L,0x92L,0L,0x92L,0L,0x92L,0L,0x92L}}; + int32_t l_2866[7][5] = {{1L,3L,(-8L),(-1L),3L},{0L,3L,(-7L),(-7L),3L},{1L,0L,(-7L),(-1L),0L},{1L,3L,(-8L),(-1L),3L},{0L,3L,(-7L),(-7L),3L},{1L,0L,(-7L),(-1L),0L},{1L,3L,(-8L),(-1L),3L}}; + uint32_t l_2868 = 6UL; + uint32_t **l_2888[1][6][4] = {{{(void*)0,&g_1707,(void*)0,&g_1707},{&g_1707,(void*)0,&g_1707,&g_1707},{(void*)0,(void*)0,&g_1707,&g_1707},{&g_1707,&g_1707,(void*)0,(void*)0},{(void*)0,(void*)0,&g_1707,(void*)0},{&g_1707,(void*)0,(void*)0,(void*)0}}}; + int32_t l_2889 = (-8L); + int16_t l_2890 = 0x4B0FL; + uint32_t l_2893 = 0x1C1D9EF6L; + struct S0 **l_2894[8][7][1] = {{{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]}},{{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803}},{{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]}},{{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]}},{{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803}},{{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]}},{{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803}},{{&g_803},{&g_2718[2][0]},{&g_2718[2][0]},{&g_2718[2][0]},{&g_803},{&g_803},{&g_2718[2][0]}}}; + const int32_t **l_2916 = &g_131; + int32_t l_2917 = 0x0EA97E1BL; + int i, j, k; + for (i = 0; i < 3; i++) + l_8[i] = &g_9; + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + l_2858[i][j] = 0xD331L; + } + (*l_2857) = func_2((l_2634 = (g_10 = func_4(((l_8[0] == &g_9) & 0L), g_10, func_11((((g_28[4] = func_16(l_21, l_22, l_8[0], g_23)) != l_30) , 246UL), &g_29, l_21.f3, l_31))))); + for (g_92 = 0; (g_92 <= 2); g_92 += 1) + { /* block id: 1369 */ + int32_t *l_2859 = &g_33; + int32_t *l_2860[7]; + int8_t l_2867 = 1L; + int32_t l_2891 = 0x72B71305L; + const int32_t l_2892 = 0x51C3213CL; + struct S0 ***l_2895 = &l_2894[7][4][0]; + struct S0 l_2907 = {9L,0xF377L,0x63B9L,0x3BAFL,0UL}; + uint32_t l_2910[1][4]; + uint16_t l_2914[10] = {3UL,3UL,3UL,3UL,3UL,3UL,3UL,3UL,3UL,3UL}; + int i, j; + for (i = 0; i < 7; i++) + l_2860[i] = &g_33; + for (i = 0; i < 1; i++) + { + for (j = 0; j < 4; j++) + l_2910[i][j] = 0x60BEB07CL; + } + --l_2868; + if ((**l_2857)) + break; + l_2864 &= (safe_lshift_func_int16_t_s_s((safe_div_func_uint16_t_u_u(((l_2890 |= ((((***g_2741) ^ (((safe_rshift_func_uint8_t_u_s(((((safe_lshift_func_int8_t_s_s(0xB5L, ((safe_lshift_func_uint8_t_u_s((safe_unary_minus_func_uint8_t_u(0UL)), (safe_add_func_uint16_t_u_u((0x77B217B0L >= (*l_30)), (safe_lshift_func_uint8_t_u_s(7UL, 0)))))) > (!(*l_31))))) != (((safe_rshift_func_uint8_t_u_u(((((*l_2859) & (((*l_2859) > 0x42ED6365L) == 1L)) , &g_1707) != l_2888[0][3][2]), (*g_1153))) > (-1L)) == 0x52L)) < (*g_1153)) < (*l_2859)), 0)) == 0L) | l_2889)) , (void*)0) == l_31)) , l_2891), l_2892)), l_2893)); + (*l_2895) = l_2894[7][4][0]; + for (g_1359 = 0; (g_1359 <= 2); g_1359 += 1) + { /* block id: 1377 */ + int32_t l_2896 = 0x735C2B59L; + int32_t l_2897[2][1][5] = {{{0x220C6B73L,0x220C6B73L,0x220C6B73L,0x220C6B73L,0x220C6B73L}},{{7L,7L,7L,7L,7L}}}; + int16_t *l_2911 = &g_367; + int32_t l_2915 = 0xA181D5A4L; + int i, j, k; + g_2898--; + (*l_2859) ^= (safe_add_func_uint16_t_u_u(((g_709[(g_1359 + 4)][g_1359] < g_203.f4) >= ((safe_add_func_uint32_t_u_u(((*g_146) == (&g_1707 == (l_2907 , l_2888[0][3][2]))), (((*g_1010) = ((safe_sub_func_int16_t_s_s(((*l_2911) ^= (l_2910[0][2] != g_709[(g_1359 + 4)][g_1359])), (l_2914[5] = (safe_mod_func_int32_t_s_s(((l_2897[0][0][3] | l_2897[1][0][1]) , (*g_1949)), (-1L)))))) < 7L)) ^ l_2915))) >= 4294967293UL)), 0x562AL)); + } + } + (*l_2916) = &g_130[3][5]; + return l_2917; +} + + +/* ------------------------------------------ */ +/* + * reads : g_203.f4 g_368 g_2561 g_2562 g_1058 g_902 g_522 g_203.f3.f1 g_96 g_29 g_870 g_193.f3 + * writes: g_203.f4 g_902 g_96 g_29 g_870 g_193.f3 + */ +static int32_t * func_2(int8_t * p_3) +{ /* block id: 1266 */ + uint16_t l_2646 = 0UL; + union U2 * const *l_2680[10]; + union U2 * const **l_2679 = &l_2680[2]; + int32_t l_2717 = 0x771D7A8EL; + uint32_t ***** const l_2724 = &g_1766; + int32_t l_2787[8][5][6] = {{{(-10L),0xF9A7B154L,(-5L),0x9BBB8C36L,(-1L),0x08AF0ED7L},{(-6L),0x86CA5DE9L,1L,3L,3L,1L},{0x86CA5DE9L,0x86CA5DE9L,0x491AC390L,(-6L),(-1L),(-1L)},{1L,0xF9A7B154L,1L,0x3E0CF12FL,(-5L),0x491AC390L},{0x9BBB8C36L,1L,1L,7L,0x86CA5DE9L,(-1L)}},{{2L,7L,0x491AC390L,3L,(-10L),1L},{3L,(-10L),1L,3L,0x3E0CF12FL,0x08AF0ED7L},{2L,3L,(-5L),0x91A2E884L,0x30B718DFL,(-6L)},{0x30B718DFL,0xF241A0ADL,2L,0xF241A0ADL,0x30B718DFL,(-1L)},{0x743F44F9L,0xD802313DL,(-5L),0L,0xF241A0ADL,0x3E0CF12FL}},{{0x8A63E951L,(-7L),(-10L),0xD802313DL,(-7L),0x3E0CF12FL},{0L,0x91A2E884L,(-5L),0x30B718DFL,0x8A63E951L,(-1L)},{(-7L),0x743F44F9L,2L,0x8A63E951L,0x0F0E2B35L,(-6L)},{(-7L),(-1L),0x3E0CF12FL,0x30B718DFL,(-5L),0xF9A7B154L},{0L,0x8A63E951L,3L,0xD802313DL,0xD802313DL,3L}},{{0x8A63E951L,0x8A63E951L,1L,0L,(-5L),(-10L)},{0x743F44F9L,(-1L),3L,0xF241A0ADL,0x0F0E2B35L,1L},{0x30B718DFL,0x743F44F9L,3L,0x91A2E884L,0x8A63E951L,(-10L)},{0x1D6DE8D3L,0x91A2E884L,1L,0L,(-7L),3L},{0L,(-7L),3L,0L,0xF241A0ADL,0xF9A7B154L}},{{0x1D6DE8D3L,0xD802313DL,0x3E0CF12FL,0x91A2E884L,0x30B718DFL,(-6L)},{0x30B718DFL,0xF241A0ADL,2L,0xF241A0ADL,0x30B718DFL,(-1L)},{0x743F44F9L,0xD802313DL,(-5L),0L,0xF241A0ADL,0x3E0CF12FL},{0x8A63E951L,(-7L),(-10L),0xD802313DL,(-7L),0x3E0CF12FL},{0L,0x91A2E884L,(-5L),0x30B718DFL,0x8A63E951L,(-1L)}},{{(-7L),0x743F44F9L,2L,0x8A63E951L,0x0F0E2B35L,(-6L)},{(-7L),(-1L),0x3E0CF12FL,0x30B718DFL,(-5L),0xF9A7B154L},{0L,0x8A63E951L,3L,0xD802313DL,0xD802313DL,3L},{0x8A63E951L,0x8A63E951L,1L,0L,(-5L),(-10L)},{0x743F44F9L,(-1L),3L,0xF241A0ADL,0x0F0E2B35L,1L}},{{0x30B718DFL,0x743F44F9L,3L,0x91A2E884L,0x8A63E951L,(-10L)},{0x1D6DE8D3L,0x91A2E884L,1L,0L,(-7L),3L},{0L,(-7L),3L,0L,0xF241A0ADL,0xF9A7B154L},{0x1D6DE8D3L,0xD802313DL,0x3E0CF12FL,0x91A2E884L,0x30B718DFL,(-6L)},{0x30B718DFL,0xF241A0ADL,2L,0xF241A0ADL,0x30B718DFL,(-1L)}},{{0x743F44F9L,0xD802313DL,(-5L),0L,0xF241A0ADL,0x3E0CF12FL},{0x8A63E951L,(-7L),(-10L),0xD802313DL,(-7L),0x3E0CF12FL},{0L,0x91A2E884L,(-5L),0x30B718DFL,0x8A63E951L,(-1L)},{(-7L),0x743F44F9L,2L,0x8A63E951L,0x0F0E2B35L,(-6L)},{(-7L),0x05AD1AD2L,0xF241A0ADL,1L,(-4L),(-1L)}}}; + int16_t l_2789 = 0x673BL; + int32_t l_2841 = 0x2CD58772L; + int8_t l_2852 = 0L; + int i, j, k; + for (i = 0; i < 10; i++) + l_2680[i] = &g_1059; + for (g_203.f4 = 0; (g_203.f4 != 20); g_203.f4++) + { /* block id: 1269 */ + int32_t l_2643 = 1L; + int32_t * const l_2644 = &g_902; + union U2 l_2645 = {0x1AA6AB60L}; + (*l_2644) = (g_368[5][5][0] ^ (safe_lshift_func_uint16_t_u_u(((safe_lshift_func_uint16_t_u_s((safe_mod_func_uint8_t_u_u(((l_2643 , l_2644) != &g_130[0][5]), 0x95L)), 9)) ^ (+(((l_2645 , (**g_2561)) != (*g_2562)) != (*l_2644)))), (*g_522)))); + } + l_2646 &= 0xAF285910L; + for (g_96 = (-5); (g_96 > 36); g_96 = safe_add_func_int32_t_s_s(g_96, 3)) + { /* block id: 1275 */ + int32_t *l_2649 = &g_29; + uint32_t *l_2658 = &g_1474; + struct S0 l_2659 = {0x69D3L,0x6483L,65534UL,65535UL,0xDBL}; + union U2 l_2660[6][6] = {{{0x33AAE0C5L},{1L},{-1L},{-1L},{1L},{0x33AAE0C5L}},{{1L},{0x33AAE0C5L},{0x8D8CFE7FL},{1L},{0x8D8CFE7FL},{0x33AAE0C5L}},{{0x8D8CFE7FL},{1L},{-1L},{0xFE9A6640L},{0xFE9A6640L},{-1L}},{{0x8D8CFE7FL},{0x8D8CFE7FL},{0xFE9A6640L},{1L},{0x044F48E9L},{1L}},{{1L},{0x8D8CFE7FL},{1L},{-1L},{0xFE9A6640L},{0xFE9A6640L}},{{0x33AAE0C5L},{1L},{1L},{0x33AAE0C5L},{0x8D8CFE7FL},{1L}}}; + struct S0 *l_2685 = &g_2686; + uint8_t ** const *l_2765 = (void*)0; + uint8_t l_2822 = 0x03L; + int32_t l_2847 = 0x610288B5L; + int32_t l_2848 = 0x0907996FL; + int8_t l_2849 = 6L; + int32_t l_2850 = 0xE1502438L; + uint8_t l_2856 = 0x00L; + int i, j; + (*l_2649) ^= (l_2660[4][5] , (-2L)); + for (g_870 = 0; (g_870 >= 1); g_870 = safe_add_func_int8_t_s_s(g_870, 3)) + { /* block id: 1280 */ + union U2 ***l_2681[4]; + uint16_t l_2684 = 65534UL; + int32_t l_2733 = 0x838200D5L; + uint8_t l_2812 = 0xADL; + int32_t *l_2842 = &l_2733; + int32_t *l_2843 = &g_902; + int32_t *l_2844 = &l_2733; + int32_t *l_2845 = &l_2787[4][1][3]; + int32_t *l_2846[9]; + int16_t l_2851 = 0x13C2L; + uint32_t l_2853[1]; + int i; + for (i = 0; i < 4; i++) + l_2681[i] = &g_1058; + for (i = 0; i < 9; i++) + l_2846[i] = &l_2717; + for (i = 0; i < 1; i++) + l_2853[i] = 0xA045A241L; + for (g_193.f3 = 0; (g_193.f3 <= 0); g_193.f3 += 1) + { /* block id: 1283 */ + struct S0 *l_2664[7][10] = {{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0},{&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0,&g_193,(void*)0}}; + union U2 l_2687 = {6L}; + const union U2 **l_2699 = &g_1006; + int32_t l_2704 = (-1L); + uint32_t *** const **l_2725 = (void*)0; + int8_t *l_2755 = (void*)0; + uint8_t *l_2788 = &g_141[2][3]; + int16_t l_2790 = 0L; + int32_t l_2820 = (-8L); + int i, j; + } + ++l_2853[0]; + } + if (l_2852) + break; + l_2856 ^= l_2787[1][4][0]; + } + l_2717 ^= l_2787[1][4][0]; + return &g_902; +} + + +/* ------------------------------------------ */ +/* + * reads : + * writes: + */ +static int8_t * func_4(uint32_t p_5, int8_t * p_6, int8_t * p_7) +{ /* block id: 1262 */ + return &g_448; +} + + +/* ------------------------------------------ */ +/* + * reads : g_29 g_33 g_688 g_82 g_23 g_1006 g_522 g_203.f3.f1 g_713 g_146 g_23.f2 g_10 g_9 g_448 g_23.f0 g_193 g_27 g_130 g_96 g_202 g_94 g_140 g_132 g_141 g_275 g_203.f3.f0 g_203.f3.f4 g_362 g_367 g_203.f1 g_368 g_802 g_803 g_491 g_1725 g_712 g_203.f3.f3 g_902 g_1359 g_1058 g_2341 g_1153 g_1059 g_28 g_663.f1 g_1455 g_1492 g_2561 g_1949 g_203.f4 g_2575 g_1010 g_429.f0 g_131 + * writes: g_29 g_33 g_82 g_23 g_94 g_1010 g_202 g_203.f1 g_92 g_275 g_448 g_28 g_203.f0 g_96 g_141 g_193.f3 g_9 g_663.f1 g_803 g_491 g_367 g_2212 g_203.f3.f1 g_2039 g_203.f3.f3 g_902 g_2213 g_1359 g_1059 g_27 g_688 g_1492 g_131 g_203.f4 g_2575 g_737 g_2562 + */ +static int8_t * func_11(uint8_t p_12, int32_t * p_13, struct S0 p_14, int32_t * p_15) +{ /* block id: 9 */ + int32_t *l_32 = &g_33; + int8_t * const l_49 = (void*)0; + struct S1 l_62 = {0xA5L,0xA880E1B4L,2UL,{0xC5A9L,0x5881L,1UL,1UL,0xD0L},0xD52FL}; + struct S1 l_73 = {0xF3L,-1L,0UL,{0L,65535UL,4UL,65534UL,0x08L},0x1B1EL}; + int8_t *l_74 = &g_9; + union U2 l_980 = {1L}; + int8_t **l_1316 = &l_74; + const int32_t * const l_2258[1][3] = {{&l_62.f1,&l_62.f1,&l_62.f1}}; + const int32_t * const *l_2257[6] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; + int16_t *l_2262 = &g_92; + int32_t l_2301 = 8L; + int32_t l_2303 = (-3L); + int32_t l_2306 = 0xEA8C3DEFL; + int32_t l_2307 = 0xEA47795FL; + int32_t l_2310 = 0x333383BBL; + int32_t l_2311 = 1L; + uint32_t l_2312 = 0x999F81ACL; + int32_t l_2386[5][8][6] = {{{0xEE22978CL,(-3L),0x7AF8184EL,0x0F0D664EL,1L,0x0C8FFBCAL},{(-1L),(-1L),0L,0x0F0D664EL,0x9FE7ED45L,0L},{0xEE22978CL,(-1L),2L,0L,0L,0x09D63F88L},{(-1L),(-1L),0xF204F565L,5L,0x3873AA4BL,0x2D1F59DCL},{0xA34C36F6L,0x724D8378L,(-1L),(-1L),0x8F1CC965L,0x8F1CC965L},{0x47C53492L,0x306D3644L,0x306D3644L,0x47C53492L,(-1L),0x0F0D664EL},{0x724D8378L,1L,0x62D68D50L,0L,0xAD839B02L,0xF204F565L},{0x9FE7ED45L,0x47C53492L,1L,0xEE22978CL,0xAD839B02L,0xA512C38CL}},{{0x8F1CC965L,1L,0x3873AA4BL,(-1L),(-1L),0x8B705FA7L},{1L,0x306D3644L,0xA34C36F6L,0xDDD7E864L,0x8F1CC965L,0L},{0xA512C38CL,0x724D8378L,5L,0x8F1CC965L,0x3873AA4BL,0x306D3644L},{0L,(-1L),0x8B705FA7L,(-1L),0L,0x18B14613L},{1L,1L,0xEE22978CL,0xF79A781AL,0xAD839B02L,1L},{2L,0x0C8FFBCAL,(-1L),1L,0x3873AA4BL,1L},{(-3L),0L,0xEE22978CL,(-1L),(-1L),0x18B14613L},{0x3873AA4BL,0x09D63F88L,(-1L),(-3L),1L,1L}},{{(-1L),0x2D1F59DCL,0xA34C36F6L,1L,1L,0x0F0D664EL},{(-1L),0x8F1CC965L,0x47C53492L,0x47C53492L,0x8F1CC965L,(-1L)},{(-1L),0x0F0D664EL,0x724D8378L,0x09D63F88L,0x8B705FA7L,0x7AF8184EL},{0L,0xF204F565L,0x9FE7ED45L,0x8F1CC965L,1L,0L},{0L,0xA512C38CL,0x8F1CC965L,0x09D63F88L,(-1L),2L},{(-1L),0x8B705FA7L,1L,0x47C53492L,0xEE22978CL,0xF204F565L},{(-1L),0L,0xA512C38CL,1L,0xDDD7E864L,(-1L)},{(-1L),0x306D3644L,0L,(-3L),0L,0x306D3644L}},{{0x3873AA4BL,0x47C53492L,(-1L),(-1L),0x18B14613L,0x62D68D50L},{(-3L),0x7AF8184EL,0x0F0D664EL,1L,0x0C8FFBCAL,1L},{2L,0x7AF8184EL,1L,0xF79A781AL,0x18B14613L,0x3873AA4BL},{1L,0x47C53492L,1L,5L,0L,0xA34C36F6L},{0x0F0D664EL,0x306D3644L,2L,0xF204F565L,0xDDD7E864L,5L},{0x7AF8184EL,0L,0x8B705FA7L,0xEE22978CL,0xEE22978CL,0x8B705FA7L},{0x8B705FA7L,0x8B705FA7L,0x2D1F59DCL,0x0C8FFBCAL,(-1L),0xDDD7E864L},{0xF204F565L,0xA512C38CL,(-3L),(-1L),1L,0x2D1F59DCL}},{{0xAD839B02L,0xF204F565L,(-3L),0x0F0D664EL,0x8B705FA7L,0xDDD7E864L},{(-1L),0x0F0D664EL,0x2D1F59DCL,0x18B14613L,0x8F1CC965L,0x8B705FA7L},{0x18B14613L,0x8F1CC965L,0x8B705FA7L,(-1L),1L,5L},{0x47C53492L,0x2D1F59DCL,2L,0xA34C36F6L,1L,0xA34C36F6L},{1L,0x09D63F88L,1L,0x62D68D50L,(-1L),0x3873AA4BL},{(-1L),0L,1L,2L,0x3873AA4BL,1L},{0xA512C38CL,0x0C8FFBCAL,0x0F0D664EL,2L,0xAD839B02L,0x62D68D50L},{(-1L),1L,(-1L),0x62D68D50L,0x0F0D664EL,0x306D3644L}}}; + int32_t l_2465 = (-2L); + int32_t l_2488 = 1L; + uint32_t **l_2543 = &g_1707; + int8_t l_2545 = 0L; + uint32_t *****l_2548[2][6][5] = {{{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}},{{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}}}; + const int32_t ***l_2557 = (void*)0; + union U2 **** const l_2563 = &g_2562; + uint8_t ** const l_2629 = (void*)0; + int i, j, k; + (*l_32) = ((*p_13) = (*p_13)); + (*p_13) = func_34(((*l_1316) = func_38(&g_33)), &g_368[0][7][2], p_14.f2); +lbl_2351: + (*g_688) = (*p_15); + for (g_902 = 3; (g_902 >= 0); g_902 -= 1) + { /* block id: 1101 */ + struct S1 **l_2255 = (void*)0; + struct S1 **l_2256[4]; + int32_t l_2259[9] = {0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL,0x516D507AL}; + int16_t **l_2263 = &g_2213[8][2][2]; + uint16_t l_2289 = 65529UL; + union U2 *l_2315 = &l_980; + uint32_t l_2330[9][8][1] = {{{0x6A3C0208L},{0x610F5ECBL},{0xE9A408D8L},{1UL},{2UL},{1UL},{0xE9A408D8L},{0x610F5ECBL}},{{0x6A3C0208L},{0xEE99DD9DL},{2UL},{1UL},{1UL},{0x610F5ECBL},{1UL},{1UL}},{{2UL},{0xEE99DD9DL},{0x6A3C0208L},{0x610F5ECBL},{0xE9A408D8L},{1UL},{2UL},{1UL}},{{0xE9A408D8L},{0x610F5ECBL},{0x6A3C0208L},{0xEE99DD9DL},{2UL},{1UL},{1UL},{0x610F5ECBL}},{{1UL},{1UL},{2UL},{0xEE99DD9DL},{0x6A3C0208L},{0x610F5ECBL},{0xE9A408D8L},{1UL}},{{2UL},{1UL},{0xE9A408D8L},{0x610F5ECBL},{0x6A3C0208L},{0xEE99DD9DL},{2UL},{1UL}},{{1UL},{0x610F5ECBL},{1UL},{1UL},{2UL},{0xEE99DD9DL},{0x6A3C0208L},{0x610F5ECBL}},{{0xE9A408D8L},{1UL},{2UL},{1UL},{0xE9A408D8L},{0x610F5ECBL},{0x6A3C0208L},{0xEE99DD9DL}},{{2UL},{1UL},{1UL},{0x610F5ECBL},{1UL},{1UL},{2UL},{0xEE99DD9DL}}}; + uint16_t **l_2378 = (void*)0; + uint32_t l_2423 = 4294967293UL; + int32_t l_2489 = 0x7F7BAA7EL; + int16_t l_2494 = (-2L); + uint32_t l_2522 = 0x57A978C3L; + int8_t *l_2524 = (void*)0; + int32_t *l_2527[9][10] = {{&l_62.f1,&g_203.f1,&g_429[3][2][4].f1,&g_429[3][2][4].f1,&g_203.f1,&l_62.f1,&g_203.f1,&g_140,(void*)0,&g_203.f1},{(void*)0,&g_203.f1,&l_73.f1,&l_980.f0,&g_140,&l_980.f0,&l_73.f1,&g_203.f1,(void*)0,&l_62.f1},{(void*)0,&g_429[3][2][4].f1,&l_2489,&g_203.f1,&l_980.f0,&l_62.f1,&l_62.f1,&l_980.f0,&g_203.f1,&l_2489},{&l_62.f1,&l_62.f1,&l_980.f0,&g_203.f1,&l_2489,&g_429[3][2][4].f1,(void*)0,&g_140,(void*)0,&g_429[3][2][4].f1},{&l_73.f1,&l_980.f0,&g_140,&l_980.f0,&l_73.f1,&g_203.f1,(void*)0,&l_62.f1,(void*)0,(void*)0},{&g_203.f1,&l_62.f1,&g_203.f1,&g_429[3][2][4].f1,&g_429[3][2][4].f1,&g_203.f1,&l_62.f1,&g_203.f1,&g_140,(void*)0},{&g_140,&g_429[3][2][4].f1,&l_62.f1,(void*)0,&l_73.f1,(void*)0,&l_73.f1,(void*)0,&l_62.f1,&g_429[3][2][4].f1},{&g_203.f1,&l_2489,&l_980.f0,&g_429[3][2][4].f1,&g_140,&g_203.f1,(void*)0,(void*)0,&g_203.f1,&g_140},{&l_62.f1,(void*)0,(void*)0,&l_62.f1,(void*)0,&g_203.f1,&l_73.f1,&l_980.f0,&g_140,&l_980.f0}}; + struct S0 ** const l_2546[4] = {&g_803,&g_803,&g_803,&g_803}; + uint32_t ** const l_2587 = &g_1707; + uint32_t *l_2596 = &l_2312; + uint32_t **l_2595 = &l_2596; + int8_t *l_2632[2]; + int i, j, k; + for (i = 0; i < 4; i++) + l_2256[i] = &g_202[2][4]; + for (i = 0; i < 2; i++) + l_2632[i] = &g_448; + g_202[4][9] = &l_62; + (*g_688) &= ((*p_15) = ((((l_2257[0] == &l_2258[0][0]) , l_2259[7]) , ((**g_712) = (((l_2259[3] = 0x447DL) ^ ((((void*)0 == &l_32) | (((*l_2263) = l_2262) == l_2262)) || ((void*)0 == &l_73))) , 0x29L))) >= (*l_32))); + for (l_62.f2 = 1; (l_62.f2 <= 5); l_62.f2 += 1) + { /* block id: 1110 */ + int32_t l_2264 = 1L; + int8_t *l_2280 = (void*)0; + int32_t l_2302[5]; + int32_t l_2408 = 0x81C9B156L; + union U2 l_2415 = {0L}; + uint16_t l_2448 = 0xBC8EL; + int16_t l_2466 = 0xFD66L; + const int32_t l_2521 = 0x4B7359ADL; + union U2 ***l_2624 = &g_1058; + int i, j; + for (i = 0; i < 5; i++) + l_2302[i] = 0xFE7F3AB0L; + if (g_141[g_902][l_62.f2]) + { /* block id: 1111 */ + for (g_1359 = 0; (g_1359 <= 2); g_1359 += 1) + { /* block id: 1114 */ + return &g_9; + } + } + else + { /* block id: 1117 */ + uint8_t l_2277 = 0xA1L; + int32_t l_2279 = 0xC2AC5853L; + int32_t l_2294 = 9L; + int32_t l_2308 = 0x91F0493EL; + int32_t l_2309 = (-7L); + struct S1 l_2379 = {-1L,-10L,0x3B90L,{0x3487L,8UL,1UL,65535UL,1UL},65535UL}; + uint32_t l_2380 = 1UL; + int32_t l_2384 = 0x5899C3A7L; + int32_t l_2385[10][4][6] = {{{(-1L),0x9819E421L,0x16FE54D0L,0x344D9AE6L,(-1L),0L},{0L,1L,(-1L),0L,0x4B3A9EFEL,0xE7D02930L},{0L,(-1L),0x1040F8BCL,0x344D9AE6L,0x768803A5L,0xA63F859BL},{(-1L),(-9L),0L,0x344D9AE6L,9L,0xE9596E70L}},{{0L,0xF96B3B99L,0x130F37B5L,0L,0x6EB652C0L,0L},{0L,1L,0x88DA25D8L,0x344D9AE6L,(-7L),0x78B3DEB0L},{(-1L),(-1L),0x62ACFAC9L,0x344D9AE6L,0xFAC4ED1CL,0x344D9AE6L},{0L,0L,0L,0L,(-5L),(-8L)}},{{0L,0xB281438FL,2L,0x344D9AE6L,0x38BED929L,0xA980789AL},{(-1L),0x9819E421L,0x16FE54D0L,0x344D9AE6L,(-1L),0L},{0L,1L,(-1L),0L,0x4B3A9EFEL,0xE7D02930L},{0L,(-1L),0x1040F8BCL,0x344D9AE6L,0x768803A5L,0xA63F859BL}},{{(-1L),(-9L),0L,0x344D9AE6L,9L,0xE9596E70L},{0L,0xF96B3B99L,0x130F37B5L,0L,0x6EB652C0L,0L},{0L,1L,0x88DA25D8L,0x344D9AE6L,(-7L),0x78B3DEB0L},{(-1L),(-1L),0x62ACFAC9L,0x344D9AE6L,0xFAC4ED1CL,0x344D9AE6L}},{{0L,0L,0L,0L,(-5L),(-8L)},{0L,0xB281438FL,2L,0x344D9AE6L,0x38BED929L,0xA980789AL},{(-1L),0x9819E421L,0x16FE54D0L,0x344D9AE6L,(-1L),0L},{0L,1L,(-1L),0L,0x4B3A9EFEL,0xE7D02930L}},{{0L,(-1L),0x1040F8BCL,0x344D9AE6L,0x768803A5L,0xA63F859BL},{(-1L),(-9L),0L,0x344D9AE6L,9L,0xE9596E70L},{0L,0xF96B3B99L,0x130F37B5L,0L,0x6EB652C0L,0L},{0L,1L,0x88DA25D8L,0x344D9AE6L,(-7L),0x78B3DEB0L}},{{(-1L),(-1L),0x62ACFAC9L,0x344D9AE6L,0xFAC4ED1CL,0x344D9AE6L},{0L,0L,0L,0L,(-5L),(-8L)},{0L,0xB281438FL,2L,0x344D9AE6L,0x38BED929L,0xA980789AL},{(-1L),0x9819E421L,0x16FE54D0L,0x344D9AE6L,(-1L),0L}},{{1L,0L,(-7L),(-1L),0L,0x0594ECFCL},{1L,0xE9596E70L,7L,0xB5891EFAL,2L,0x290904F0L},{(-7L),0xA63F859BL,(-1L),0xB5891EFAL,0x130F37B5L,0x06C85D14L},{1L,0xE7D02930L,(-5L),(-1L),0x16FE54D0L,0xD3FD5C8DL}},{{1L,0L,1L,0xB5891EFAL,0x88DA25D8L,1L},{(-7L),0xA980789AL,0x2A735ED7L,0xB5891EFAL,(-1L),0xB5891EFAL},{1L,(-8L),1L,(-1L),0x62ACFAC9L,0x5A705F23L},{1L,0x344D9AE6L,(-4L),0xB5891EFAL,0x1040F8BCL,0xAFA1E74CL}},{{(-7L),0x78B3DEB0L,(-4L),0xB5891EFAL,0L,(-1L)},{1L,0L,(-7L),(-1L),0L,0x0594ECFCL},{1L,0xE9596E70L,7L,0xB5891EFAL,2L,0x290904F0L},{(-7L),0xA63F859BL,(-1L),0xB5891EFAL,0x130F37B5L,0x06C85D14L}}}; + uint16_t l_2387[8][8][2] = {{{0x1F77L,0x8916L},{0x5EB1L,1UL},{0xD941L,0xD941L},{0xB4D7L,1UL},{0x156AL,0xF827L},{1UL,0UL},{0xF674L,1UL},{0xB773L,0x4CDCL}},{{0xB773L,1UL},{0xF674L,0UL},{1UL,0xF827L},{0x156AL,1UL},{0xB4D7L,0xD941L},{0xD941L,1UL},{0x5EB1L,0x8916L},{0x1F77L,0xF827L}},{{0UL,8UL},{0xDCD7L,0x9ED6L},{0xB773L,0xFBAAL},{65531UL,0xE04EL},{1UL,0UL},{0UL,0xEEC3L},{0UL,0xA55FL},{0xB4D7L,1UL}},{{0xB9FBL,0x9C21L},{8UL,0x8916L},{0x156AL,0xEEC3L},{0x9ED6L,0xB4D7L},{0xDCD7L,1UL},{65531UL,0xE953L},{0UL,0xE04EL},{0xF674L,8UL}},{{0x9ED6L,0x45EEL},{0UL,1UL},{0x5EB1L,0x9C21L},{1UL,0x9C21L},{0x5EB1L,1UL},{0UL,0x45EEL},{0x9ED6L,8UL},{0xF674L,0xE04EL}},{{0UL,0xE953L},{65531UL,1UL},{0xDCD7L,0xB4D7L},{0x9ED6L,0xEEC3L},{0x156AL,0x8916L},{8UL,0x9C21L},{0xB9FBL,1UL},{0xB4D7L,0xA55FL}},{{0UL,0xEEC3L},{0UL,0UL},{1UL,0xE04EL},{65531UL,0xFBAAL},{0xB773L,0x9ED6L},{0xDCD7L,8UL},{0UL,0xF827L},{0x1F77L,0x8916L}},{{0x5EB1L,1UL},{0xD941L,0xD941L},{0xB4D7L,1UL},{0x156AL,0xDCD7L},{65535UL,0xD941L},{0xE4A2L,65535UL},{1UL,0x77A6L},{1UL,65535UL}}}; + int i, j, k; + if ((*l_32)) + break; + if (((0x32L >= (((l_2264 = p_14.f2) , (-5L)) & (safe_lshift_func_int8_t_s_u(p_14.f1, 5)))) < p_12)) + { /* block id: 1120 */ + struct S0 *l_2278 = &l_62.f3; + if (l_2259[3]) + break; + l_2279 |= (~((*p_15) = (((*p_15) || ((*l_32) != (l_2259[7] || 9L))) > (((safe_lshift_func_int8_t_s_s(((((((safe_sub_func_int32_t_s_s(((*p_13) & 0xD5DB01E4L), (l_2277 = ((l_980 , (((*g_688) = (safe_mod_func_int32_t_s_s((safe_div_func_int8_t_s_s(0L, 8L)), 0xEA115DFCL))) < 5L)) & 0xD3L)))) > (-1L)) && (*l_32)) != p_14.f0) || l_2259[7]) <= p_14.f1), 1)) , l_2278) != &p_14)))); + return l_2280; + } + else + { /* block id: 1127 */ + int16_t *l_2295 = &g_1798; + int32_t l_2300 = 0L; + int32_t l_2304 = 0xE4A6017EL; + int32_t l_2305 = 0xBB491C39L; + for (g_94 = 0; (g_94 <= 3); g_94 += 1) + { /* block id: 1130 */ + int i, j; + (*g_688) = (((safe_add_func_uint16_t_u_u((1UL < (0xCD44D46BL != (safe_add_func_uint8_t_u_u((((p_12 , (safe_lshift_func_uint8_t_u_s((safe_mul_func_int16_t_s_s(l_2289, (safe_lshift_func_int8_t_s_u((0UL != (~((safe_add_func_uint8_t_u_u((g_141[g_94][(g_94 + 3)] = ((3UL == 0x8855L) , (0x099BL ^ l_2279))), 0x5DL)) & l_2259[5]))), l_2294)))), 7))) , 0x6B32L) >= 0x40A0L), 0x1BL)))), 65530UL)) >= 0x84L) < (*p_15)); + } + l_2264 = (*p_13); + for (g_29 = 0; (g_29 <= 3); g_29 += 1) + { /* block id: 1137 */ + const int16_t *l_2296 = &g_193.f0; + int32_t *l_2297 = (void*)0; + int32_t *l_2298 = &l_2259[2]; + int32_t *l_2299[2][7][6] = {{{&l_2259[7],&g_33,&l_2259[7],&l_2279,&l_2264,&g_82},{&g_82,(void*)0,&g_33,&g_33,(void*)0,&g_82},{&l_2279,&l_2264,&l_2259[7],&g_902,&g_82,&g_29},{(void*)0,&l_2259[7],&g_82,&g_82,&g_82,&l_2259[7]},{(void*)0,&g_29,&g_82,&g_902,&l_2259[7],&l_2264},{&l_2279,&g_82,(void*)0,&g_33,&g_33,(void*)0},{&g_82,&g_82,&l_2264,&l_2279,&l_2259[7],&g_33}},{{&l_2259[7],&g_29,&g_902,&l_2264,&g_82,&l_2264},{&g_902,&l_2259[7],&g_902,&l_2264,&g_82,&g_33},{&l_2259[7],&l_2264,&l_2264,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,&l_2264,&l_2264},{&l_2259[7],&g_33,&g_82,&l_2264,&g_902,&l_2259[7]},{&g_902,&l_2264,&g_82,&l_2264,&g_902,&g_29},{&l_2259[7],&g_33,&l_2259[7],&l_2279,&l_2264,&g_82}}}; + int i, j, k; + (*l_32) = (l_2295 != l_2296); + --l_2312; + } + } + if (l_2308) + { /* block id: 1142 */ + int8_t l_2321 = 1L; + uint32_t l_2326 = 6UL; + int32_t l_2329[4]; + struct S1 l_2350 = {-1L,1L,0xD5C0L,{0x8AE0L,65528UL,1UL,1UL,255UL},65535UL}; + int i; + for (i = 0; i < 4; i++) + l_2329[i] = 3L; + (*g_1058) = l_2315; + (*p_13) = (*g_688); + if ((safe_lshift_func_uint16_t_u_s(p_14.f3, 15))) + { /* block id: 1145 */ + int32_t *l_2318 = &l_2294; + int32_t *l_2319 = &l_2259[4]; + int32_t *l_2320 = (void*)0; + int32_t *l_2322 = (void*)0; + int32_t *l_2323 = &l_2307; + int32_t *l_2324 = &l_2302[0]; + int32_t *l_2325[5]; + int i; + for (i = 0; i < 5; i++) + l_2325[i] = &l_2294; + (*l_32) = 8L; + --l_2326; + l_2330[1][2][0]++; + (*l_2318) = ((*p_15) = ((((0x7027L <= 3UL) , (safe_add_func_uint16_t_u_u((l_2262 != (void*)0), p_14.f2))) ^ (safe_rshift_func_uint16_t_u_u(p_14.f1, ((safe_mod_func_uint16_t_u_u((safe_div_func_uint8_t_u_u(((((g_2341 , ((safe_rshift_func_uint16_t_u_s((safe_add_func_uint16_t_u_u(((*p_15) | (*p_13)), 1L)), 15)) || p_12)) & (*p_13)) | p_12) < l_2277), (*g_713))), 0x4026L)) || (-6L))))) ^ (*l_32))); + } + else + { /* block id: 1151 */ + if ((*p_13)) + break; + } + (*p_13) = ((*g_1153) & (((0UL >= l_2330[7][3][0]) | (((*l_32) |= (safe_div_func_uint16_t_u_u((l_2264 >= (l_2259[4] || (safe_sub_func_int32_t_s_s(((!((p_15 == (g_688 = func_16(l_2350, l_2326, &l_2321, (*g_1059)))) < 0xC144L)) | p_14.f2), g_663.f1)))), p_14.f2))) < p_14.f4)) && 65532UL)); + } + else + { /* block id: 1157 */ + int8_t l_2373 = (-1L); + int32_t *l_2381 = &l_2302[3]; + int32_t *l_2382[3][1]; + int32_t l_2383 = 0xD4D53D12L; + int i, j; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 1; j++) + l_2382[i][j] = &l_2309; + } + if (p_12) + goto lbl_2351; + for (g_663.f1 = 0; (g_663.f1 <= 5); g_663.f1 += 1) + { /* block id: 1161 */ + uint32_t *l_2372 = &g_1492; + int i, j; + (*g_688) = (((safe_lshift_func_uint8_t_u_s((g_141[g_663.f1][l_62.f2] = 0xA0L), 5)) , l_62) , ((safe_div_func_uint32_t_u_u((safe_rshift_func_uint16_t_u_u((p_14.f4 ^ ((((safe_div_func_int16_t_s_s(g_141[g_663.f1][l_62.f2], 0xF306L)) & ((*g_146) = p_14.f1)) == ((safe_mod_func_uint16_t_u_u((safe_mul_func_uint8_t_u_u((p_14 , (safe_sub_func_uint32_t_u_u(p_14.f1, ((*l_2372) &= ((((safe_mul_func_int16_t_s_s(((*l_2262) = (safe_mul_func_int8_t_s_s((safe_mul_func_uint8_t_u_u(((**g_1455) = (p_14.f3 != (*l_32))), 6UL)), p_12))), p_12)) > (-1L)) < (*p_13)) , p_14.f1))))), 0xC5L)), l_2309)) , 0x0BB3L)) ^ (*p_13))), l_2373)), (*p_15))) <= p_14.f4)); + (*p_13) |= (!(safe_add_func_uint8_t_u_u((p_14.f0 != (*g_1153)), 0xB4L))); + return &g_870; + } + if ((safe_rshift_func_int16_t_s_s(((void*)0 == l_2378), (l_2379 , p_14.f1)))) + { /* block id: 1171 */ + g_131 = &g_33; + return &g_1473[8]; + } + else + { /* block id: 1174 */ + if (l_2380) + break; + } + l_2387[3][1][1]++; + } + } + if ((safe_rshift_func_int8_t_s_u((*l_32), 1))) + { /* block id: 1180 */ + uint16_t l_2413 = 1UL; + union U2 l_2414[6] = {{0L},{0L},{0L},{0L},{0L},{0L}}; + int32_t **l_2440 = &g_364; + int32_t **l_2441 = &g_364; + int i; + if ((*p_13)) + break; + for (g_94 = 0; (g_94 <= 3); g_94 += 1) + { /* block id: 1184 */ + union U2 * const *l_2419 = &g_1059; + union U2 * const **l_2418 = &l_2419; + int32_t l_2420[9][1] = {{0x051709FCL},{1L},{0x051709FCL},{0x051709FCL},{1L},{0x051709FCL},{0x051709FCL},{1L},{0x051709FCL}}; + int32_t *l_2478 = &g_429[3][2][4].f1; + struct S1 l_2520 = {-2L,0L,0x57AFL,{0x21C3L,0x3511L,0x0B52L,65528UL,0xE3L},0x76F0L}; + int i, j; + } + return l_2524; + } + else + { /* block id: 1222 */ + const struct S1 l_2528 = {0x71L,0L,0UL,{0x3E7BL,2UL,0xA362L,0x52B0L,1UL},0x1C93L}; + uint32_t *l_2544 = &g_27; + struct S0 * const *l_2547[6] = {&g_803,&g_803,&g_803,&g_803,&g_803,&g_803}; + int8_t *l_2549 = (void*)0; + int32_t *l_2550 = &g_429[3][2][4].f1; + int32_t ***l_2556 = (void*)0; + const int32_t ****l_2558 = &l_2557; + uint16_t **l_2568 = &g_146; + int32_t l_2574[4] = {(-1L),(-1L),(-1L),(-1L)}; + int8_t l_2588 = 0L; + uint32_t l_2600 = 0x9044E83EL; + int i; + l_2302[3] = (safe_lshift_func_uint16_t_u_s(5UL, ((4L >= p_14.f4) & l_2302[3]))); + (*p_15) = ((((l_2527[5][4] != (l_2550 = func_16((l_2528 , l_73), (safe_mul_func_uint16_t_u_u((safe_rshift_func_int16_t_s_s(0L, ((safe_rshift_func_int8_t_s_s((p_14.f3 & 0xAEFE28DBL), 3)) & (safe_mod_func_int8_t_s_s((safe_mod_func_uint16_t_u_u((((((((l_2528 , (((safe_lshift_func_int8_t_s_s(((safe_div_func_uint8_t_u_u((((*l_2544) = (&g_1931[0] == l_2543)) != l_2545), 0x12L)) , l_2302[3]), 3)) && (*p_13)) , l_2546[0])) != l_2547[1]) || p_14.f4) == (*p_13)) , p_14.f3) , l_2548[1][3][0]) != &g_1766), (*g_522))), l_2330[1][2][0]))))), l_2415.f0)), l_2549, (*l_2315)))) < 0UL) < (*g_146)) >= 0UL); + (*l_32) = (safe_unary_minus_func_int32_t_s(((l_2528.f1 , (((p_14.f0 | ((safe_sub_func_int16_t_s_s((safe_rshift_func_int16_t_s_u(p_14.f0, 10)), (((l_2556 == ((*l_2558) = l_2557)) != (((((safe_mod_func_int16_t_s_s((g_2561 == l_2563), (((((safe_div_func_uint16_t_u_u(((safe_lshift_func_int8_t_s_s((0UL & 9UL), 7)) || p_14.f0), l_2289)) < 0x58L) >= (**g_1455)) < 0L) | 0x365904B0L))) > p_14.f2) , l_2568) != l_2378) < p_14.f2)) ^ l_2423))) != 0xE69B00F3L)) ^ (*g_1949)) || 0x2E1B5BAFL)) > p_14.f3))); + for (g_203.f4 = (-21); (g_203.f4 < 26); g_203.f4++) + { /* block id: 1231 */ + int8_t l_2594 = 9L; + int32_t * const *l_2599[2]; + union U2 ***l_2623 = (void*)0; + int32_t *l_2630 = &l_2574[3]; + int32_t *l_2631 = &l_2259[7]; + int i; + for (i = 0; i < 2; i++) + l_2599[i] = (void*)0; + for (g_1359 = 3; (g_1359 == 40); g_1359 = safe_add_func_int32_t_s_s(g_1359, 8)) + { /* block id: 1234 */ + int32_t *l_2573[6][7][6] = {{{&l_2386[3][6][3],&l_2302[4],&l_2259[4],&l_2302[4],&l_2386[3][6][3],&l_2264},{&g_82,&l_2302[3],&g_29,&l_2306,&l_2302[3],(void*)0},{&l_2259[4],&l_2264,&l_2465,&l_2302[3],&g_29,(void*)0},{&l_2259[6],(void*)0,&g_29,&l_2465,&l_2264,&l_2264},{&g_29,&l_2259[4],&l_2259[4],&g_29,&l_2259[6],&l_2307},{&l_2465,&g_29,(void*)0,&l_2259[6],&g_29,&g_29},{&l_2302[3],&l_2465,&l_2264,&l_2259[4],&g_29,&l_2465}},{{&l_2306,&g_29,&l_2302[3],&g_82,&l_2259[6],&g_82},{&l_2302[4],&l_2259[4],&l_2302[4],&l_2386[3][6][3],&l_2264,&g_29},{&g_29,(void*)0,&g_29,&l_2302[3],&g_29,&g_29},{(void*)0,&l_2264,&l_2306,&l_2302[3],&l_2302[3],&l_2386[3][6][3]},{&g_29,&l_2302[3],&l_2259[6],&l_2386[3][6][3],&l_2386[3][6][3],&l_2259[6]},{&l_2311,&l_2311,&l_2465,&l_2302[4],&g_82,&g_29},{&g_29,&l_2306,&g_82,&l_2301,&l_2259[6],&l_2465}},{{&l_2386[3][6][3],&g_29,&g_82,&l_2259[4],&l_2311,&g_29},{&g_29,&l_2259[4],&l_2465,(void*)0,&l_2465,&l_2259[4]},{(void*)0,&l_2465,&l_2259[4],&g_29,&l_2307,(void*)0},{&l_2259[4],&g_82,&g_29,&l_2386[3][6][3],&l_2301,&l_2264},{&l_2301,&g_82,&l_2306,&g_29,&l_2307,&l_2302[3]},{&l_2302[4],&l_2465,&l_2311,&l_2311,&l_2465,&l_2302[4]},{(void*)0,&l_2259[4],&l_2386[3][6][3],&l_2302[3],&l_2311,&g_29}},{{&l_2302[3],&g_29,&l_2488,&g_29,&l_2259[6],&l_2306},{&l_2302[3],&l_2306,&g_29,&l_2302[3],&g_82,&l_2259[6]},{(void*)0,&l_2311,&l_2301,&l_2311,(void*)0,&l_2488},{&l_2302[4],&l_2386[3][6][3],&l_2264,&g_29,&g_29,&g_29},{&l_2301,&l_2488,&l_2302[3],&l_2386[3][6][3],(void*)0,&g_29},{&l_2259[4],&g_29,&l_2264,&g_29,&l_2488,&l_2488},{(void*)0,&l_2301,&l_2301,(void*)0,&l_2259[4],&l_2259[6]}},{{&g_29,&l_2264,&g_29,&l_2259[4],&l_2302[3],&l_2306},{&l_2386[3][6][3],&l_2302[3],&l_2488,&l_2301,&l_2302[3],&g_29},{&g_29,&l_2264,&l_2386[3][6][3],&l_2302[4],&l_2259[4],&l_2302[4]},{&l_2311,&l_2301,&l_2311,(void*)0,&l_2488,&l_2302[3]},{&l_2302[3],&g_29,&l_2306,&l_2302[3],(void*)0,&l_2264},{&g_29,&l_2488,&g_29,&l_2302[3],&g_29,(void*)0},{&l_2302[3],&l_2386[3][6][3],&l_2259[4],(void*)0,(void*)0,&l_2259[4]}},{{&l_2311,&l_2311,&l_2465,&l_2302[4],&g_82,&g_29},{&g_29,&l_2306,&g_82,&l_2301,&l_2259[6],&l_2465},{&l_2386[3][6][3],&g_29,&g_82,&l_2259[4],&l_2311,&g_29},{&g_29,&l_2259[4],&l_2465,(void*)0,&l_2465,&l_2259[4]},{(void*)0,&l_2465,&l_2259[4],&g_29,&l_2307,(void*)0},{&l_2259[4],&g_82,&g_29,&l_2386[3][6][3],&l_2301,&l_2264},{&l_2301,&g_82,&l_2306,&g_29,&l_2307,&l_2302[3]}}}; + uint32_t **l_2586[7][2] = {{(void*)0,&g_1707},{&g_1707,(void*)0},{&g_1707,&g_1707},{(void*)0,&g_1707},{&g_1707,(void*)0},{&g_1707,(void*)0},{&g_1707,(void*)0}}; + uint32_t ***l_2597 = &g_737; + int32_t **l_2598 = &l_2550; + int i, j, k; + (*g_802) = (*g_802); + --g_2575; + (*p_15) = (l_2574[3] , (p_14.f1 , (safe_lshift_func_uint16_t_u_s((((p_14.f3 | ((-3L) < l_2528.f1)) ^ ((safe_unary_minus_func_uint8_t_u((((*g_146) ^= (~((*p_15) == p_14.f4))) != (((safe_unary_minus_func_int8_t_s(p_14.f4)) <= (((!((safe_lshift_func_int16_t_s_u((0x8ED8L > p_14.f0), 1)) , (*l_32))) , l_2586[2][0]) != l_2587)) <= (*l_32))))) != 1UL)) ^ p_12), l_2588)))); + l_2408 &= (((*l_32) <= (((safe_unary_minus_func_int16_t_s((safe_mul_func_int16_t_s_s(((*l_2262) = (((((*p_13) |= (~(p_14.f3 >= (((l_2594 = (g_193.f2 , (*g_146))) || (((*l_2597) = ((*g_522) , l_2595)) != &l_2596)) == 0x3CF58CB7L)))) || (l_2600 = ((l_2598 != l_2599[0]) , 4294967295UL))) == l_2522) | p_14.f2)), 0UL)))) != p_14.f2) & l_2521)) == l_2415.f0); + } + (*l_2631) = ((safe_sub_func_uint32_t_u_u(l_2588, ((*l_2544) |= (+(safe_add_func_uint16_t_u_u((safe_sub_func_int32_t_s_s(((*l_2630) &= ((*l_32) = (safe_unary_minus_func_int32_t_s(((*p_13) = (!((safe_rshift_func_int8_t_s_s((safe_mod_func_uint8_t_u_u((safe_unary_minus_func_uint8_t_u(((*g_1153) ^= (safe_sub_func_int8_t_s_s((((safe_div_func_uint8_t_u_u((p_14.f1 <= (safe_mul_func_uint16_t_u_u(((g_193 , (((safe_mul_func_int8_t_s_s((safe_sub_func_uint8_t_u_u(((l_2623 != ((*l_2563) = l_2624)) && ((((safe_div_func_int16_t_s_s((p_14.f0 != ((*g_713) = ((safe_rshift_func_int8_t_s_u(((((l_2629 != (void*)0) || ((0UL != (*g_1949)) , p_14.f0)) <= (*g_1010)) > l_2588), 1)) , 0UL))), 0xFB22L)) | 0xD46AL) && p_12) >= 0xF070L)), l_2594)), l_2594)) || l_2448) ^ 0UL)) ^ p_14.f4), l_2594))), l_2289)) < l_2594) , (*g_10)), 0L))))), l_2448)), 4)) >= 0x577BL))))))), p_14.f3)), p_12)))))) | p_14.f2); + if ((*g_131)) + continue; + } + } + return &g_1473[4]; + } + return l_2632[1]; + } + return &g_870; +} + + +/* ------------------------------------------ */ +/* + * reads : g_27 g_28 + * writes: g_27 + */ +static int32_t * func_16(struct S1 p_17, uint32_t p_18, int8_t * p_19, union U2 p_20) +{ /* block id: 1 */ + int32_t l_26[8][6] = {{1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L,0xAF1E2CD8L},{1L,1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L},{1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L,0xAF1E2CD8L},{1L,1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L},{1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L,0xAF1E2CD8L},{1L,1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L},{1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L,0xAF1E2CD8L},{1L,1L,0xAF1E2CD8L,0xAF1E2CD8L,1L,1L}}; + int i, j; + for (p_17.f4 = 0; (p_17.f4 <= 11); p_17.f4 = safe_add_func_uint16_t_u_u(p_17.f4, 6)) + { /* block id: 4 */ + g_27 ^= l_26[5][1]; + } + return g_28[4]; +} + + +/* ------------------------------------------ */ +/* + * reads : g_1725 g_368 g_367 g_522 g_203.f3.f1 g_688 g_82 g_491 g_712 g_713 g_94 g_146 g_23.f2 g_203.f3.f3 g_33 + * writes: g_491 g_33 g_203.f0 g_367 g_82 g_2212 g_203.f3.f1 g_94 g_2039 g_203.f3.f3 + */ +static int32_t func_34(int8_t * p_35, int8_t * p_36, uint16_t p_37) +{ /* block id: 670 */ + struct S0 l_1321[7][5] = {{{-3L,0UL,0x0D39L,0x7666L,9UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{-3L,0UL,0x0D39L,0x7666L,9UL},{-3L,0UL,0x0D39L,0x7666L,9UL}},{{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L},{-1L,1UL,8UL,65530UL,2UL},{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L},{-1L,1UL,8UL,65530UL,2UL},{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L}},{{-3L,0UL,0x0D39L,0x7666L,9UL},{-3L,0UL,0x0D39L,0x7666L,9UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{-3L,0UL,0x0D39L,0x7666L,9UL}},{{-4L,1UL,0x33E9L,65532UL,248UL},{-1L,1UL,8UL,65530UL,2UL},{-4L,1UL,0x33E9L,65532UL,248UL},{-1L,1UL,8UL,65530UL,2UL},{-4L,1UL,0x33E9L,65532UL,248UL}},{{-3L,0UL,0x0D39L,0x7666L,9UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{-3L,0UL,0x0D39L,0x7666L,9UL},{-3L,0UL,0x0D39L,0x7666L,9UL}},{{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L},{-1L,1UL,8UL,65530UL,2UL},{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L},{-1L,1UL,8UL,65530UL,2UL},{0xBD94L,0xF8F5L,0x5D41L,0x2316L,0xF3L}},{{-3L,0UL,0x0D39L,0x7666L,9UL},{-3L,0UL,0x0D39L,0x7666L,9UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{0x7E5BL,0UL,65535UL,65534UL,255UL},{-3L,0UL,0x0D39L,0x7666L,9UL}}}; + int16_t l_1379 = 4L; + uint32_t *l_1406 = (void*)0; + union U2 l_1407 = {0x4EADE60BL}; + int32_t l_1421 = 0x102DBB17L; + int32_t l_1424 = 0x2B1BCA3FL; + int32_t l_1428 = 0xEA818C76L; + uint8_t **l_1453 = &g_1153; + uint32_t **l_1709 = (void*)0; + uint16_t *l_1711 = &g_203.f3.f3; + struct S1 l_1720 = {0x40L,0x6FFD7AF9L,8UL,{0x2D4DL,0xA206L,65535UL,0x7873L,5UL},0xD12CL}; + int32_t ****l_1721 = &g_362[0][2]; + const int32_t *l_1724 = &g_1725; + uint32_t ***l_1768 = (void*)0; + uint32_t ****l_1767 = &l_1768; + int8_t *l_1795 = &g_203.f0; + const int32_t *l_1817 = &g_203.f1; + const int32_t **l_1816 = &l_1817; + union U2 *** const l_1840 = &g_1058; + int32_t l_1879 = 1L; + uint16_t l_1880[3][4][4] = {{{0xEBB3L,0x28F1L,0x5A36L,0x28F1L},{0xEBB3L,0x9C2CL,1UL,0x28F1L},{1UL,0x28F1L,1UL,0x9C2CL},{0xEBB3L,0x28F1L,0x5A36L,0x28F1L}},{{0xEBB3L,0x9C2CL,1UL,0x28F1L},{1UL,0x28F1L,1UL,0x9C2CL},{0xEBB3L,0x28F1L,0x5A36L,0x28F1L},{0xEBB3L,0x9C2CL,1UL,0x28F1L}},{{1UL,0x28F1L,1UL,0x9C2CL},{0xEBB3L,0x28F1L,0x5A36L,0x28F1L},{0xEBB3L,0x9C2CL,1UL,0x28F1L},{1UL,0x28F1L,1UL,0x9C2CL}}}; + struct S0 **l_1910 = &g_803; + int16_t l_1918 = (-9L); + uint32_t l_1946[7] = {0xEE53957CL,0xEE53957CL,0x80BFCBB2L,0xEE53957CL,0xEE53957CL,0x80BFCBB2L,0xEE53957CL}; + const int8_t *l_2008 = &g_1473[4]; + const int8_t **l_2007[1][3]; + int32_t l_2058 = (-1L); + int32_t l_2060 = 1L; + int32_t l_2062 = 0L; + int32_t l_2063 = 2L; + int32_t l_2064 = 0x983A5C25L; + int32_t l_2066 = (-4L); + int32_t l_2068[10] = {0L,(-4L),(-4L),0L,(-4L),(-4L),0L,(-4L),(-4L),0L}; + int32_t l_2107 = 0xA817EE1CL; + uint16_t l_2110 = 5UL; + int32_t l_2187[2][1][6] = {{{0xDE7BFC06L,1L,0xDE7BFC06L,0xDE7BFC06L,1L,0xDE7BFC06L}},{{0xDE7BFC06L,1L,0xDE7BFC06L,0xDE7BFC06L,1L,0xDE7BFC06L}}}; + int16_t * const l_2211 = (void*)0; + int16_t * const *l_2210 = &l_2211; + uint32_t l_2251 = 1UL; + int i, j, k; + for (i = 0; i < 1; i++) + { + for (j = 0; j < 3; j++) + l_2007[i][j] = &l_2008; + } +lbl_2200: + for (g_491 = 0; (g_491 <= 2); g_491 += 1) + { /* block id: 673 */ + union U2 *** const l_1324 = &g_1058; + int32_t l_1338 = 0x5C08166EL; + struct S0 l_1356 = {-6L,0x5D1AL,2UL,4UL,255UL}; + struct S1 l_1369 = {7L,0x11B39F74L,0UL,{0x463DL,1UL,0x5561L,0UL,255UL},0UL}; + uint16_t *l_1374[2]; + int32_t l_1422 = 0x6B8C6F9AL; + int32_t l_1426[9][1] = {{0x9BCC42A8L},{1L},{0x9BCC42A8L},{1L},{0x9BCC42A8L},{1L},{0x9BCC42A8L},{1L},{0x9BCC42A8L}}; + uint32_t l_1461 = 1UL; + int8_t *l_1605 = &g_368[5][2][0]; + int32_t *l_1607 = &l_1421; + int32_t l_1684 = (-3L); + int32_t **** const l_1691 = &g_362[1][1]; + uint32_t *l_1715 = &g_1474; + uint32_t ***l_1733 = &l_1709; + uint32_t l_1760 = 0xCBADAB3CL; + int32_t **l_1761 = (void*)0; + uint8_t l_1804 = 0UL; + int16_t *l_1841 = &g_367; + int32_t l_1854[2][5] = {{0x57B5A700L,9L,0x57B5A700L,0x57B5A700L,9L},{9L,0x57B5A700L,0x57B5A700L,9L,0x57B5A700L}}; + int32_t **l_1855 = &l_1607; + const union U2 **l_1904 = &g_1006; + const union U2 ***l_1903 = &l_1904; + int16_t l_1948 = 0xC682L; + uint32_t l_2035 = 18446744073709551612UL; + int8_t l_2059 = 0x14L; + int16_t l_2072 = (-1L); + int32_t l_2099 = 1L; + struct S1 l_2115 = {0xA4L,0xBD652974L,0x549FL,{0xE04CL,65535UL,0x13F6L,2UL,0xCCL},65531UL}; + struct S1 **l_2135[6][2]; + struct S1 **l_2136 = &g_202[4][6]; + int i, j; + for (i = 0; i < 2; i++) + l_1374[i] = &g_429[3][2][4].f4; + for (i = 0; i < 6; i++) + { + for (j = 0; j < 2; j++) + l_2135[i][j] = (void*)0; + } + } + for (g_33 = (-20); (g_33 == 8); g_33++) + { /* block id: 1056 */ + const uint8_t l_2192 = 0xB9L; + int16_t *l_2197 = &g_367; + int32_t l_2206 = 0xFE778CABL; + int32_t l_2218 = (-1L); + int32_t l_2219 = (-6L); + int32_t l_2221 = 0x90AE588BL; + int32_t l_2222 = 0L; + int32_t l_2223 = 1L; + int32_t l_2225[1][3]; + int16_t l_2249[4] = {0xAF2AL,0xAF2AL,0xAF2AL,0xAF2AL}; + uint32_t l_2250[7] = {0xC3BA4CE7L,0xC3BA4CE7L,0xC3BA4CE7L,0xC3BA4CE7L,0xC3BA4CE7L,0xC3BA4CE7L,0xC3BA4CE7L}; + int32_t * const **l_2253 = (void*)0; + int32_t * const ***l_2252 = &l_2253; + int32_t *l_2254 = &l_2068[2]; + int i, j; + for (i = 0; i < 1; i++) + { + for (j = 0; j < 3; j++) + l_2225[i][j] = 0x74BA6E8EL; + } + if (l_2187[1][0][2]) + break; + if (((safe_add_func_int8_t_s_s(((((((((safe_rshift_func_int8_t_s_s(((*l_1795) = (l_2192 >= ((0xB0C3E753L || p_37) > (*l_1724)))), 6)) , ((p_37 , 4UL) < (((safe_add_func_uint16_t_u_u(2UL, ((*l_2197) |= ((*l_1724) & ((safe_sub_func_int8_t_s_s(((((l_2058 = (l_2192 , l_2192)) & (*l_1724)) > (*l_1724)) , (-9L)), 1UL)) , (*p_36)))))) , l_2192) , p_37))) != (*p_36)) , (*g_522)) & (*l_1724)) , 4294967295UL) | p_37) | p_37), (*p_35))) || p_37)) + { /* block id: 1061 */ + if (p_37) + break; + } + else + { /* block id: 1063 */ + int32_t l_2201 = 5L; + int32_t l_2205[8] = {2L,2L,2L,2L,2L,2L,2L,2L}; + int i; + (*g_688) |= p_37; + for (l_1720.f4 = 0; (l_1720.f4 != 17); ++l_1720.f4) + { /* block id: 1067 */ + uint32_t l_2207 = 4294967294UL; + int32_t l_2217 = 0x44EE3AA8L; + int32_t l_2220[6][9] = {{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L},{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L},{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L},{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L},{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L},{0xB18AA35AL,0L,0L,0xB18AA35AL,0L,(-1L),0xB18AA35AL,(-1L),0L}}; + int8_t l_2224 = 0xF2L; + int8_t l_2229 = 8L; + int32_t l_2231[8][6][5] = {{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}},{{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)},{0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L,0x90F04890L},{(-1L),(-1L),(-1L),(-1L),(-1L)}}}; + int i, j, k; + if (g_491) + goto lbl_2200; + if (l_2201) + break; + for (l_1720.f0 = 0; (l_1720.f0 <= 5); l_1720.f0 += 1) + { /* block id: 1072 */ + int32_t *l_2202 = &g_902; + int32_t *l_2203 = &l_2060; + int32_t *l_2204[9][10][2] = {{{&g_33,&l_2187[1][0][0]},{(void*)0,&l_2060},{&l_2068[6],&l_2066},{&l_2187[0][0][3],&l_1879},{(void*)0,&g_82},{&l_2066,&g_902},{&l_2068[2],&l_1424},{&l_2066,&g_902},{&l_1879,&l_2060},{&l_2187[1][0][0],(void*)0}},{{&g_902,&l_2064},{&g_29,&l_2062},{&l_2062,&l_2062},{&g_29,&l_2068[2]},{&l_2060,&g_29},{&l_2064,&g_902},{&l_2060,&l_2064},{&l_2062,&g_29},{&l_2062,&l_2064},{&l_2060,&g_902}},{{&l_2064,&g_29},{&l_2060,&l_2068[2]},{&g_29,&l_2062},{&l_2062,&l_2062},{&g_29,&l_2064},{&g_902,(void*)0},{&l_2187[1][0][0],&l_2060},{&l_1879,&g_902},{&l_2066,&l_1424},{&l_2068[2],&g_902}},{{&l_2066,&g_82},{(void*)0,&l_1879},{&l_2187[0][0][3],&l_2066},{&l_2068[6],&l_2060},{(void*)0,&l_2187[1][0][0]},{&g_33,&l_2201},{&g_902,&l_2201},{&g_33,&l_2187[1][0][0]},{(void*)0,&l_2062},{&l_2201,(void*)0}},{{&g_29,&g_29},{&l_2063,&l_1424},{(void*)0,&l_2187[1][0][3]},{&g_33,&l_2062},{&l_2187[0][0][3],&g_29},{&g_29,&g_902},{&g_82,&l_2068[2]},{&l_2066,&l_2064},{&g_902,&l_2062},{&g_902,&g_902}},{{&g_902,&g_33},{&g_902,&l_2187[0][0][1]},{(void*)0,&l_2187[1][0][0]},{&l_2062,(void*)0},{&g_82,&g_902},{&g_82,(void*)0},{&l_2062,&l_2187[1][0][0]},{(void*)0,&l_2187[0][0][1]},{&g_902,&g_33},{&g_902,&g_902}},{{&g_902,&l_2062},{&g_902,&l_2064},{&l_2066,&l_2068[2]},{&g_82,&g_902},{&g_29,&g_29},{&l_2187[0][0][3],&l_2062},{&g_33,&l_2187[1][0][3]},{(void*)0,&l_1424},{&l_2063,&g_29},{&g_29,(void*)0}},{{&l_2201,&l_2062},{&l_2060,&g_82},{&l_2066,&l_2060},{&l_2187[1][0][0],&l_2060},{&l_2066,&g_82},{&l_2060,&l_2062},{&l_2201,(void*)0},{&g_29,&g_29},{&l_2063,&l_1424},{(void*)0,&l_2187[1][0][3]}},{{&g_33,&l_2062},{&l_2187[0][0][3],&g_29},{&g_29,&g_902},{&g_82,&l_2068[2]},{&l_2066,&l_2064},{&g_902,&l_2062},{&g_902,&g_902},{&g_902,&g_33},{&g_902,&l_2187[0][0][1]},{(void*)0,&l_2187[1][0][0]}}}; + int16_t l_2230 = 0xA55CL; + uint32_t l_2232 = 0xE71201CAL; + int i, j, k; + for (l_2107 = 0; (l_2107 <= 5); l_2107 += 1) + { /* block id: 1075 */ + return p_37; + } + ++l_2207; + for (l_2062 = 0; (l_2062 <= 3); l_2062 += 1) + { /* block id: 1081 */ + int8_t l_2214[9][2][1] = {{{1L},{(-1L)}},{{1L},{1L}},{{0xCDL},{1L}},{{1L},{(-1L)}},{{1L},{1L}},{{0xCDL},{1L}},{{1L},{(-1L)}},{{1L},{1L}},{{0xCDL},{1L}}}; + int32_t l_2215 = (-1L); + int32_t l_2216[8][5][6] = {{{0xFD5A2C04L,0L,5L,0x228BFD3AL,(-1L),8L},{0L,0xE3760A9BL,0x89E7159DL,0xA48B00B6L,0x89E7159DL,0xE3760A9BL},{0L,8L,(-1L),0x228BFD3AL,5L,0L},{0xFD5A2C04L,(-1L),0x533CC7D1L,0x4AD7B503L,(-1L),0x533CC7D1L},{0xA48B00B6L,(-1L),0xB16858CAL,0xFD5A2C04L,5L,(-1L)}},{{0x9AB37E89L,8L,0xE1CFE88EL,0xF47BBD48L,0x89E7159DL,0xB16858CAL},{0x228BFD3AL,0xE3760A9BL,0xE1CFE88EL,0x075C4389L,(-1L),(-1L)},{7L,0L,0xB16858CAL,(-3L),0x533CC7D1L,0x533CC7D1L},{(-3L),0x533CC7D1L,0x533CC7D1L,(-3L),0xB16858CAL,0L},{7L,(-1L),(-1L),0x075C4389L,0xE1CFE88EL,0xE3760A9BL}},{{0x228BFD3AL,0xB16858CAL,0x89E7159DL,0xF47BBD48L,0xE1CFE88EL,8L},{0x9AB37E89L,(-1L),5L,0xFD5A2C04L,0x70EF0CBEL,(-1L)},{0xB16858CAL,0xEADC0E19L,(-10L),0x533CC7D1L,0xEADC0E19L,(-1L)},{0L,(-7L),0x115524F0L,(-1L),(-1L),0L},{0L,0x8D68B320L,2L,0xB16858CAL,2L,0x8D68B320L}},{{0L,0L,(-1L),(-1L),0x115524F0L,(-7L)},{0L,(-1L),0xEADC0E19L,0x533CC7D1L,(-10L),0xEADC0E19L},{0xB16858CAL,(-1L),0x70EF0CBEL,0L,0x115524F0L,(-10L)},{0x7BCB3C11L,0L,(-1L),0xE3760A9BL,2L,0x70EF0CBEL},{(-1L),0x8D68B320L,(-1L),8L,(-1L),(-10L)}},{{0xE1CFE88EL,(-7L),0x70EF0CBEL,(-1L),0xEADC0E19L,0xEADC0E19L},{(-1L),0xEADC0E19L,0xEADC0E19L,(-1L),0x70EF0CBEL,(-7L)},{0xE1CFE88EL,(-10L),(-1L),8L,(-1L),0x8D68B320L},{(-1L),0x70EF0CBEL,2L,0xE3760A9BL,(-1L),0L},{0x7BCB3C11L,(-10L),0x115524F0L,0L,0x70EF0CBEL,(-1L)}},{{0xB16858CAL,0xEADC0E19L,(-10L),0x533CC7D1L,0xEADC0E19L,(-1L)},{0L,(-7L),0x115524F0L,(-1L),(-1L),0L},{0L,0x8D68B320L,2L,0xB16858CAL,2L,0x8D68B320L},{0L,0L,(-1L),(-1L),0x115524F0L,(-7L)},{0L,(-1L),0xEADC0E19L,0x533CC7D1L,(-10L),0xEADC0E19L}},{{0xB16858CAL,(-1L),0x70EF0CBEL,0L,0x115524F0L,(-10L)},{0x7BCB3C11L,0L,(-1L),0xE3760A9BL,2L,0x70EF0CBEL},{(-1L),0x8D68B320L,(-1L),8L,(-1L),(-10L)},{0xE1CFE88EL,(-7L),0x70EF0CBEL,(-1L),0xEADC0E19L,0xEADC0E19L},{(-1L),0xEADC0E19L,0xEADC0E19L,(-1L),0x70EF0CBEL,(-7L)}},{{0xE1CFE88EL,(-10L),(-1L),8L,(-1L),0x8D68B320L},{(-1L),0x70EF0CBEL,2L,0xE3760A9BL,(-1L),0L},{0x7BCB3C11L,(-10L),0x115524F0L,0L,0x70EF0CBEL,(-1L)},{0xB16858CAL,0xEADC0E19L,(-10L),0x533CC7D1L,0xEADC0E19L,(-1L)},{0L,(-7L),0x115524F0L,(-1L),(-1L),0L}}}; + uint16_t l_2226 = 0xF37BL; + int i, j, k; + g_2212 = l_2210; + l_2226--; + } + ++l_2232; + } + } + } + (*l_2254) &= ((((((*g_522) ^= l_2222) != (~l_2218)) & ((*l_1711) ^= (((!((**g_712)--)) < ((g_2039 = l_1721) != ((safe_mod_func_uint16_t_u_u((((safe_rshift_func_uint8_t_u_u(((safe_mod_func_int8_t_s_s((*p_35), p_37)) || (((safe_div_func_int32_t_s_s((!((*g_688) = 0L)), (safe_mul_func_uint8_t_u_u((p_37 > ((safe_sub_func_int16_t_s_s(((void*)0 == l_1453), 0x3F36L)) == p_37)), l_2206)))) && (*l_1724)) > l_2249[1])), p_37)) | l_2250[3]) & l_2251), (*g_146))) , l_2252))) & 0x16L))) & 0xDEL) , (-10L)); + } + return p_37; +} + + +/* ------------------------------------------ */ +/* + * reads : g_33 g_688 g_82 g_23 g_1006 g_522 g_203.f3.f1 g_713 g_146 g_29 g_23.f2 g_10 g_9 g_448 g_23.f0 g_193 g_27 g_130 g_96 g_202 g_94 g_140 g_132 g_141 g_275 g_203.f3.f0 g_203.f3.f4 g_362 g_367 g_203.f1 g_368 g_802 g_803 + * writes: g_82 g_23 g_94 g_1010 g_202 g_29 g_203.f1 g_92 g_275 g_448 g_28 g_203.f0 g_96 g_141 g_193.f3 g_9 g_663.f1 g_803 + */ +static int8_t * func_38(int32_t * p_39) +{ /* block id: 461 */ + union U2 l_983 = {0xA18EBFA4L}; + uint32_t *l_993[4][4][5] = {{{&g_27,&g_27,&g_491,&g_491,&g_27},{&g_491,&g_27,(void*)0,&g_27,&g_491},{&g_27,&g_491,&g_491,&g_27,&g_27},{&g_491,&g_27,&g_491,&g_491,&g_491}},{{&g_27,&g_27,&g_27,&g_491,&g_27},{&g_491,&g_491,(void*)0,&g_491,&g_491},{&g_27,&g_491,&g_27,&g_27,&g_27},{&g_491,&g_491,&g_491,&g_27,&g_491}},{{&g_27,&g_27,&g_491,&g_491,&g_27},{&g_491,&g_27,(void*)0,&g_27,&g_491},{&g_27,&g_491,&g_491,&g_27,&g_27},{&g_491,&g_27,&g_491,&g_491,&g_491}},{{&g_27,&g_27,&g_27,&g_491,&g_27},{&g_491,&g_491,(void*)0,&g_491,&g_491},{&g_27,&g_491,&g_27,&g_27,&g_27},{&g_491,&g_491,&g_491,&g_27,&g_491}}}; + uint32_t **l_992 = &l_993[1][2][2]; + uint32_t *l_994 = &g_275[5][2]; + int8_t *l_999 = &g_448; + int8_t **l_1000 = &l_999; + struct S1 l_1002 = {0x00L,1L,0x1C11L,{-1L,0xDCFBL,0UL,0x327FL,0x73L},0x0032L}; + int32_t l_1003 = 0x037EDC74L; + int8_t *l_1004 = &g_9; + union U2 *l_1005 = &g_23; + uint8_t *l_1008[3]; + uint32_t l_1020[10][5][5] = {{{0xF2AA9CB4L,0xF2AA9CB4L,0xB9798130L,1UL,0x84C3A2C5L},{9UL,6UL,0xDB4B8351L,0x79CDF276L,18446744073709551612UL},{2UL,1UL,4UL,0xCFC16537L,1UL},{0xED3C58A6L,6UL,18446744073709551615UL,0x05959D90L,0UL},{0x1FE60990L,0xF2AA9CB4L,18446744073709551611UL,2UL,1UL}},{{1UL,0xCE69CB81L,2UL,18446744073709551610UL,7UL},{0xBDDE72C4L,1UL,8UL,0x3AB83C40L,1UL},{6UL,1UL,0x412240A3L,0x38E14851L,0x56FAA21DL},{0xF174B866L,0xCFC16537L,18446744073709551613UL,0UL,0xB9798130L},{0x46E8FA96L,18446744073709551615UL,0x0979A739L,0xDB4B8351L,0x38E14851L}},{{0x23A25F20L,18446744073709551615UL,18446744073709551608UL,18446744073709551615UL,0x23A25F20L},{0xA159F13BL,0x56FAA21DL,18446744073709551610UL,0x255BB07DL,0x0979A739L},{0xA884EFE1L,9UL,0x0C1255E5L,1UL,0xBDDE72C4L},{0UL,0x79CDF276L,6UL,0x56FAA21DL,0x0979A739L},{18446744073709551612UL,1UL,18446744073709551615UL,0UL,0x23A25F20L}},{{0x0979A739L,18446744073709551615UL,0UL,6UL,0x38E14851L},{0UL,4UL,1UL,18446744073709551611UL,0xB9798130L},{1UL,0xA159F13BL,0x46E8FA96L,0x7D73904FL,0x56FAA21DL},{6UL,8UL,0UL,1UL,1UL},{0xDB4B8351L,0x31587566L,18446744073709551615UL,18446744073709551615UL,7UL}},{{3UL,0xED235A89L,0xC4ACEBD6L,1UL,1UL},{0x31587566L,9UL,0x31587566L,18446744073709551608UL,0UL},{0x8530C162L,0xC4ACEBD6L,0xA884EFE1L,0x4D4F19E2L,1UL},{0UL,1UL,18446744073709551608UL,1UL,18446744073709551612UL},{1UL,0x23A25F20L,0xA884EFE1L,1UL,0x84C3A2C5L}},{{0xF30BAE18L,7UL,0x31587566L,0x412240A3L,0xA159F13BL},{0UL,0xA884EFE1L,0xF2AA9CB4L,0xAC889584L,18446744073709551615UL},{1UL,1UL,0x412240A3L,18446744073709551608UL,0x34DC149FL},{0UL,18446744073709551615UL,0UL,0xA4772EFEL,0x2E7448B6L},{6UL,0x79CDF276L,0UL,0xCE69CB81L,18446744073709551615UL}},{{6UL,0x4007BECEL,8UL,18446744073709551613UL,4UL},{1UL,0xED3C58A6L,0x05959D90L,0x05959D90L,0xED3C58A6L},{0xCB204103L,0xC82A66DFL,0x6DA78595L,0x3AB83C40L,0x23A25F20L},{9UL,1UL,0xF30BAE18L,0x412240A3L,0xEDF2696BL},{0x9ADF3501L,0UL,18446744073709551611UL,18446744073709551612UL,1UL}},{{9UL,0x0979A739L,0UL,0x31587566L,1UL},{0xCB204103L,18446744073709551615UL,6UL,0x23A25F20L,0xB970E888L},{1UL,0x28F68007L,0x0281312AL,2UL,18446744073709551608UL},{6UL,0x8530C162L,1UL,18446744073709551607UL,18446744073709551615UL},{6UL,0x71A1A02CL,1UL,0xED3C58A6L,18446744073709551612UL}},{{0UL,0x84C3A2C5L,0xB9798130L,18446744073709551615UL,0UL},{1UL,0x38E14851L,6UL,18446744073709551610UL,0x31587566L},{1UL,1UL,1UL,1UL,18446744073709551608UL},{1UL,0xA159F13BL,0x31587566L,0x255BB07DL,1UL},{0xCFC16537L,18446744073709551612UL,18446744073709551615UL,1UL,18446744073709551615UL}},{{0x0979A739L,18446744073709551610UL,18446744073709551615UL,0x255BB07DL,1UL},{0xC82A66DFL,0xBDDE72C4L,9UL,1UL,0xA884EFE1L},{7UL,1UL,0UL,18446744073709551610UL,0x43467938L},{0xCA5F646AL,0xB970E888L,4UL,18446744073709551615UL,0xAC889584L},{18446744073709551615UL,0x412240A3L,1UL,0xED3C58A6L,18446744073709551610UL}}}; + int32_t l_1035[1]; + uint16_t l_1075[7]; + int8_t l_1104[2][6][3] = {{{(-1L),(-1L),(-1L)},{3L,0xE2L,3L},{(-1L),(-1L),(-1L)},{3L,0xE2L,3L},{(-1L),(-1L),(-1L)},{3L,0xE2L,3L}},{{(-1L),(-1L),(-1L)},{3L,0xE2L,3L},{(-1L),(-1L),(-1L)},{3L,0xE2L,3L},{(-1L),(-1L),(-1L)},{3L,0xE2L,3L}}}; + union U2 *l_1162[3][1]; + uint32_t l_1163 = 0x33E342EBL; + int8_t l_1263[4][4][5]; + const struct S0 *l_1312 = &g_663; + const struct S0 **l_1311 = &l_1312; + int i, j, k; + for (i = 0; i < 3; i++) + l_1008[i] = &g_141[1][4]; + for (i = 0; i < 1; i++) + l_1035[i] = (-4L); + for (i = 0; i < 7; i++) + l_1075[i] = 0xB9F4L; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 1; j++) + l_1162[i][j] = &l_983; + } + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + for (k = 0; k < 5; k++) + l_1263[i][j][k] = 5L; + } + } + (*g_688) &= (*p_39); + if ((safe_rshift_func_uint8_t_u_u((l_983 , (l_1003 = ((*g_713) = ((((((*l_1005) = (l_983.f2 , g_23)) , &l_983) != g_1006) >= (*g_522)) , 0x0CL)))), 3))) + { /* block id: 469 */ + int8_t **l_1009[4][8][8] = {{{&g_10,&g_10,&l_1004,&l_999,&l_999,&g_10,&l_1004,&l_1004},{&l_999,&g_10,(void*)0,&g_10,&l_999,&g_10,&g_10,&l_1004},{&l_1004,&l_999,&g_10,&g_10,&l_1004,&l_999,&l_1004,(void*)0},{&g_10,&g_10,(void*)0,&l_1004,(void*)0,&l_1004,&l_999,&l_1004},{&l_999,&l_1004,(void*)0,&l_1004,&g_10,&g_10,&g_10,&l_999},{&l_999,(void*)0,&l_1004,&l_1004,&l_1004,(void*)0,&l_999,&l_999},{&g_10,(void*)0,&l_1004,&l_1004,&g_10,&l_999,&g_10,&l_1004},{&l_1004,&g_10,&l_1004,&l_999,(void*)0,&l_999,&g_10,&g_10}},{{(void*)0,&g_10,(void*)0,&l_1004,&g_10,(void*)0,&l_999,&g_10},{(void*)0,(void*)0,&l_1004,(void*)0,&l_999,&l_999,&l_1004,&l_999},{&l_1004,&g_10,&g_10,&g_10,(void*)0,&g_10,&l_1004,&l_999},{(void*)0,&l_999,&l_1004,&l_999,&l_1004,(void*)0,&g_10,(void*)0},{&l_999,&l_999,&l_999,&l_1004,&l_999,&g_10,&g_10,&l_1004},{&g_10,&g_10,&l_999,&g_10,&g_10,(void*)0,&l_1004,&g_10},{&l_999,&l_1004,&g_10,&g_10,&l_999,(void*)0,&l_1004,&g_10},{&l_999,(void*)0,&g_10,&l_999,&l_1004,(void*)0,(void*)0,(void*)0}},{{&g_10,&l_999,&l_1004,&l_999,&g_10,(void*)0,&l_1004,&l_1004},{(void*)0,&l_1004,&l_999,&l_999,&l_1004,(void*)0,&g_10,&l_1004},{&l_999,&l_1004,&l_999,&l_999,&g_10,(void*)0,&l_1004,(void*)0},{&l_1004,&l_1004,&g_10,&l_999,&l_999,&l_1004,&l_1004,&l_1004},{(void*)0,&l_999,&l_1004,&l_999,&g_10,&g_10,(void*)0,&l_1004},{&g_10,(void*)0,&l_1004,&l_999,&l_1004,(void*)0,&g_10,(void*)0},{&l_1004,&g_10,&l_999,&l_999,&g_10,&g_10,&g_10,&g_10},{&l_999,&g_10,(void*)0,&g_10,&l_1004,&l_999,&l_999,&g_10}},{{&l_1004,&g_10,&l_999,&g_10,(void*)0,&l_999,&g_10,&l_1004},{&g_10,&l_1004,&l_999,&l_1004,(void*)0,&g_10,&l_1004,(void*)0},{&l_999,&l_1004,&l_1004,&l_999,&g_10,(void*)0,(void*)0,&l_999},{&l_1004,&l_999,&l_999,&g_10,&g_10,&l_1004,&l_1004,&l_999},{&g_10,&g_10,(void*)0,(void*)0,&l_999,&g_10,&l_999,(void*)0},{&g_10,(void*)0,&g_10,&l_1004,(void*)0,&l_999,&l_1004,&l_1004},{&g_10,&l_1004,(void*)0,&l_1004,(void*)0,&l_1004,&g_10,&l_1004},{&l_999,(void*)0,&g_10,&g_10,(void*)0,&g_10,(void*)0,&l_999}}}; + int32_t **l_1011 = &g_28[0]; + int i, j, k; + (*l_1011) = func_45((g_1010 = &g_448), &g_29, &g_448); + } + else + { /* block id: 472 */ + const int16_t l_1021 = (-10L); + int32_t l_1032[10][2][6] = {{{1L,8L,3L,3L,8L,1L},{(-1L),1L,3L,1L,(-1L),(-1L)}},{{4L,1L,1L,4L,8L,4L},{4L,8L,4L,1L,1L,4L}},{{(-1L),(-1L),1L,3L,1L,(-1L)},{1L,8L,3L,3L,8L,1L}},{{(-1L),1L,3L,1L,(-1L),(-1L)},{4L,1L,1L,4L,8L,4L}},{{4L,8L,4L,1L,1L,4L},{(-1L),(-1L),1L,3L,1L,(-1L)}},{{1L,8L,3L,3L,8L,1L},{(-1L),1L,3L,1L,(-1L),(-1L)}},{{4L,1L,1L,4L,8L,4L},{4L,8L,4L,1L,1L,4L}},{{(-1L),(-1L),1L,3L,1L,(-1L)},{1L,8L,3L,3L,8L,1L}},{{(-1L),1L,3L,1L,(-1L),(-1L)},{4L,1L,1L,4L,8L,4L}},{{4L,8L,4L,1L,1L,4L},{(-1L),(-1L),1L,3L,1L,(-1L)}}}; + uint32_t l_1040 = 0x46C4402DL; + int32_t l_1048 = (-1L); + uint16_t l_1051 = 0xAEDFL; + int8_t ***l_1054 = &l_1000; + union U2 **l_1057[7]; + union U2 l_1091 = {0xD559D94EL}; + struct S1 l_1093 = {0x59L,-10L,0xE7A5L,{0x9AAAL,0x6F3EL,5UL,65533UL,1UL},0x1B19L}; + int32_t ***l_1137[4] = {(void*)0,(void*)0,(void*)0,(void*)0}; + int32_t ****l_1138[4]; + uint8_t **l_1144 = (void*)0; + uint8_t ***l_1143 = &l_1144; + uint32_t l_1178[3]; + const uint8_t *l_1224 = (void*)0; + const uint8_t **l_1223 = &l_1224; + uint32_t l_1264 = 18446744073709551615UL; + union U2 l_1304[5] = {{0xC351DB28L},{0xC351DB28L},{0xC351DB28L},{0xC351DB28L},{0xC351DB28L}}; + int i, j, k; + for (i = 0; i < 7; i++) + l_1057[i] = &l_1005; + for (i = 0; i < 4; i++) + l_1138[i] = &l_1137[0]; + for (i = 0; i < 3; i++) + l_1178[i] = 1UL; + for (g_193.f3 = 26; (g_193.f3 <= 11); g_193.f3 = safe_sub_func_uint8_t_u_u(g_193.f3, 1)) + { /* block id: 475 */ + int16_t l_1033 = 0L; + int32_t l_1036 = (-1L); + int32_t l_1037[8] = {2L,(-5L),2L,(-5L),2L,(-5L),2L,(-5L)}; + int i; + for (g_9 = 0; (g_9 == (-15)); g_9 = safe_sub_func_uint32_t_u_u(g_9, 4)) + { /* block id: 478 */ + int8_t l_1031 = 0x69L; + int32_t l_1034 = 0xDBC85C67L; + int32_t l_1038[1]; + int i; + for (i = 0; i < 1; i++) + l_1038[i] = 0x1432EEBAL; + if ((*p_39)) + break; + for (g_663.f1 = 0; (g_663.f1 == 24); g_663.f1 = safe_add_func_uint16_t_u_u(g_663.f1, 7)) + { /* block id: 482 */ + int8_t l_1022[10][10][2] = {{{0xA6L,0x74L},{(-3L),0x73L},{0xBAL,(-3L)},{0x73L,0x74L},{0x73L,(-3L)},{0xBAL,0x73L},{(-3L),0x74L},{0xA6L,0xA6L},{0xBAL,0xA6L},{0xA6L,0x74L}},{{(-3L),0x73L},{0xBAL,(-3L)},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L}},{{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L}},{{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L}},{{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L}},{{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L}},{{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L}},{{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL}},{{0x0AL,0xBAL},{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL}},{{0xBAL,1L},{0x74L,0x65L},{0x0AL,0x74L},{0x65L,1L},{0x65L,0x74L},{0x0AL,0x65L},{0x74L,1L},{0xBAL,0xBAL},{0x0AL,0xBAL},{0xBAL,1L}}}; + int32_t l_1029 = 0xD4525DBDL; + int32_t l_1039 = (-1L); + int i, j, k; + if ((((safe_rshift_func_uint8_t_u_s(l_1020[0][2][0], 2)) & l_1021) <= l_1022[5][2][1])) + { /* block id: 483 */ + int32_t *l_1023 = &g_82; + int32_t *l_1024 = &g_82; + int32_t *l_1025 = &g_33; + int32_t *l_1026 = &g_33; + int32_t *l_1027 = &g_33; + int32_t *l_1028 = &g_902; + int32_t *l_1030[3][9][6] = {{{(void*)0,(void*)0,&l_1029,&l_1029,&l_1029,(void*)0},{(void*)0,&l_1003,&l_1003,&l_1029,&l_1003,(void*)0},{&g_902,&g_29,&g_29,&g_29,&g_29,&l_1029},{(void*)0,(void*)0,&l_1003,&g_29,(void*)0,&l_1029},{(void*)0,&g_82,&l_1003,&g_29,(void*)0,&g_29},{(void*)0,&g_29,&g_82,&g_29,(void*)0,&l_1003},{&l_1029,(void*)0,&g_902,(void*)0,&g_902,(void*)0},{(void*)0,&l_1003,&l_1029,(void*)0,&g_902,(void*)0},{&g_82,&g_29,&g_902,&g_33,&l_1003,&l_1003}},{{&g_902,(void*)0,&g_82,&g_902,&g_82,&g_29},{&g_33,&g_33,&l_1003,&g_82,&g_29,&l_1029},{(void*)0,(void*)0,&l_1003,(void*)0,&g_29,&l_1029},{(void*)0,&g_33,&g_902,&l_1029,&g_82,&l_1029},{&g_29,(void*)0,&l_1029,(void*)0,&l_1003,&l_1003},{&g_29,&g_29,&l_1029,(void*)0,&g_902,&g_902},{&g_29,&l_1003,&l_1029,(void*)0,&g_902,&g_33},{&g_29,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{&g_29,&g_29,(void*)0,&l_1029,(void*)0,&l_1003}},{{(void*)0,&g_82,(void*)0,(void*)0,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,&g_82,&g_29,&l_1003},{&g_33,&g_82,(void*)0,&g_902,&l_1029,(void*)0},{&g_902,&l_1029,(void*)0,&g_33,&g_33,&g_33},{&g_82,(void*)0,&l_1029,(void*)0,(void*)0,&g_902},{(void*)0,(void*)0,&l_1029,(void*)0,&g_33,&l_1003},{&l_1029,&l_1029,&l_1029,&g_29,&l_1029,&l_1029},{(void*)0,&g_82,&g_902,&g_29,&g_29,&l_1029},{(void*)0,(void*)0,&l_1003,&g_29,(void*)0,&l_1029}}}; + int i, j, k; + ++l_1040; + (*l_1023) ^= 0x1C9C1B24L; + (*g_802) = (*g_802); + } + else + { /* block id: 487 */ + return &g_368[5][5][0]; + } + } + } + } + } + return &g_368[4][0][2]; +} + + +/* ------------------------------------------ */ +/* + * reads : g_712 g_713 g_94 g_146 g_23.f2 g_10 g_9 g_522 g_203.f3.f1 g_709 g_141 g_193.f3 g_33 g_82 g_29 g_663.f1 g_275 g_27 g_663.f0 g_870 g_368 g_688 g_802 g_663.f3 g_23 g_429.f3.f2 + * writes: g_33 g_82 g_29 g_709 g_94 g_193.f3 g_663.f1 g_27 g_23.f2 g_203.f3.f1 g_203.f1 g_203.f3.f3 g_28 g_131 g_9 g_803 g_663.f3 g_275 + */ +static union U2 func_40(int32_t * p_41, int8_t * p_42, struct S0 p_43, int32_t p_44) +{ /* block id: 368 */ + int16_t *l_813 = &g_367; + int32_t l_816[2]; + int32_t **l_829 = (void*)0; + int32_t **l_830 = (void*)0; + uint32_t *l_831 = &g_709[8][1]; + struct S1 *l_834 = (void*)0; + struct S0 l_841 = {-3L,0xA66BL,0x139EL,0x6331L,0x55L}; + int32_t l_923 = 0xBFDBBFDCL; + int32_t ** const l_926[1][9][9] = {{{&g_28[4],(void*)0,&g_28[2],&g_688,&g_688,&g_28[4],&g_28[1],&g_28[4],&g_28[4]},{&g_28[0],&g_688,&g_28[2],&g_688,&g_28[2],&g_688,&g_28[0],&g_688,&g_688},{&g_28[4],&g_28[4],&g_28[5],(void*)0,&g_28[4],&g_688,&g_28[1],(void*)0,&g_28[1]},{&g_688,(void*)0,&g_28[4],&g_28[4],(void*)0,&g_688,&g_688,&g_688,&g_28[0]},{(void*)0,&g_28[2],&g_688,&g_688,&g_28[4],&g_28[1],&g_28[4],&g_28[4],&g_28[4]},{&g_688,&g_28[2],&g_688,&g_28[2],&g_688,&g_28[0],&g_688,&g_688,&g_688},{&g_28[1],(void*)0,&g_28[5],&g_28[1],&g_28[4],&g_688,&g_28[4],&g_688,&g_28[4]},{&g_688,&g_688,&g_688,&g_688,(void*)0,&g_28[0],&g_688,&g_28[4],(void*)0},{&g_28[4],&g_28[2],&g_28[4],&g_28[5],&g_688,&g_28[4],&g_28[4],&g_688,&g_28[5]}}}; + int32_t l_967 = (-1L); + uint8_t *l_974 = &g_96; + uint8_t **l_973 = &l_974; + uint32_t l_977 = 0xBFD29E8DL; + int i, j, k; + for (i = 0; i < 2; i++) + l_816[i] = 1L; + (*p_41) = ((0xD2E1L || (safe_add_func_uint8_t_u_u(((&g_92 != l_813) & (**g_712)), ((((*g_146) > 0x6A77L) > (4294967295UL > ((*g_10) >= (safe_mod_func_uint32_t_u_u(((*g_10) < 0xCCL), 0x2EF7E0E9L))))) != l_816[1])))) & (*g_522)); + if ((((65535UL != (safe_div_func_int16_t_s_s((safe_sub_func_uint8_t_u_u((safe_add_func_uint8_t_u_u((safe_mod_func_int8_t_s_s((safe_add_func_uint32_t_u_u((((&p_41 == ((safe_sub_func_int16_t_s_s(p_44, ((((((!((((**g_712) = (((l_829 = l_829) != l_830) ^ (((*l_831) |= (l_816[1] | l_816[0])) , (~(~(safe_sub_func_int16_t_s_s(p_43.f0, (l_834 == (void*)0)))))))) || 0x4FL) & p_43.f0)) < p_43.f2) == l_816[0]) < 0UL) == 0x4FL) <= 0UL))) , (void*)0)) , p_44) , 0x00332CCCL), p_44)), p_43.f1)), g_141[5][6])), l_816[0])), l_816[1]))) <= (*g_10)) <= l_816[0])) + { /* block id: 373 */ + union U2 *l_835 = &g_23; + int32_t l_844 = 0L; + int32_t l_845 = 4L; + uint32_t *l_849 = &g_709[5][2]; + int32_t l_861 = 0x2D871063L; + int32_t l_874[6][4][7] = {{{0xEBD23C63L,0x86B45C9EL,0xDBC25A38L,9L,0x7306DC66L,0xE137DD82L,0x7306DC66L},{0L,0x708144BCL,0x7DC3FFEAL,(-1L),0xD4CDFA73L,4L,0x2AEFA674L},{(-4L),0xE137DD82L,0x04C8643BL,0x86B45C9EL,0x430DC65CL,1L,1L},{(-4L),0x3D08D363L,0x2AEFA674L,0x60F55FAEL,(-1L),0x60F55FAEL,0x2AEFA674L}},{{0xDBC25A38L,0xDBC25A38L,1L,0x8300C942L,1L,0x352C77AFL,0x7306DC66L},{4L,0x90ADCA77L,0x694C6AD6L,0x708144BCL,(-4L),0x2FF8803EL,0L},{0x352C77AFL,0xA85E05AAL,1L,0x7306DC66L,1L,0xA85E05AAL,0x352C77AFL},{1L,0x60F55FAEL,0L,(-1L),(-1L),(-6L),0x7DC3FFEAL}},{{1L,0x04C8643BL,0xE2858F44L,0x7C754C8AL,0x430DC65CL,0xEBD23C63L,0xEBD23C63L},{0xD4CDFA73L,(-4L),0L,(-4L),0xD4CDFA73L,0L,0x7DD96E50L},{1L,0x8300C942L,1L,0x352C77AFL,0x7306DC66L,0x58C09AECL,0x430DC65CL},{0x8CCDD4F0L,5L,0x694C6AD6L,0xF7130A0DL,0L,(-1L),0L}},{{1L,0x352C77AFL,1L,(-4L),0xE137DD82L,0x04C8643BL,0x86B45C9EL},{0xD4CDFA73L,4L,0x2AEFA674L,0L,0L,0x90ADCA77L,1L},{1L,1L,0x04C8643BL,0xA85E05AAL,0xA85E05AAL,0x04C8643BL,1L},{1L,(-1L),0x7DC3FFEAL,0x92B23D5EL,(-5L),(-1L),(-4L)}},{{0x352C77AFL,0xE2858F44L,0xDBC25A38L,1L,0x86B45C9EL,0x58C09AECL,0x7C754C8AL},{4L,(-6L),(-9L),0x92B23D5EL,0L,0L,(-1L)},{0xDBC25A38L,0x7C754C8AL,1L,0xA85E05AAL,(-4L),0xEBD23C63L,0xE137DD82L},{(-4L),0xF7130A0DL,(-1L),0L,0x694C6AD6L,(-6L),0x694C6AD6L}},{{(-4L),0x7C754C8AL,0x7C754C8AL,(-4L),0xE2858F44L,0xA85E05AAL,0x58C09AECL},{0L,(-6L),1L,0xF7130A0DL,1L,0x2FF8803EL,0L},{0xA8F0C9FCL,0x8300C942L,0x352C77AFL,0x04C8643BL,0xEBD23C63L,0x04C8643BL,0x352C77AFL},{(-4L),0xC335D284L,1L,0x708144BCL,0xD4CDFA73L,5L,(-9L)}}}; + int8_t l_892 = 0x14L; + uint32_t l_898 = 0UL; + uint8_t **l_972[2][5][1]; + int i, j, k; + for (i = 0; i < 2; i++) + { + for (j = 0; j < 5; j++) + { + for (k = 0; k < 1; k++) + l_972[i][j][k] = (void*)0; + } + } + for (g_193.f3 = 0; (g_193.f3 <= 2); g_193.f3 += 1) + { /* block id: 376 */ + union U2 **l_836 = &l_835; + int32_t l_871 = (-4L); + int32_t l_884 = (-5L); + int32_t l_888 = 0x753BF6FFL; + int32_t l_895 = (-1L); + int32_t l_896[8] = {9L,9L,0x5C7D4CE2L,9L,9L,0x5C7D4CE2L,9L,9L}; + int32_t l_901[4] = {2L,2L,2L,2L}; + struct S1 l_930[6] = {{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL},{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL},{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL},{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL},{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL},{0x79L,1L,1UL,{2L,65535UL,9UL,0x5A57L,255UL},0UL}}; + int i; + (*l_836) = l_835; + if ((*p_41)) + continue; + for (g_29 = 2; (g_29 >= 0); g_29 -= 1) + { /* block id: 381 */ + int8_t l_872 = 0xD6L; + int32_t l_881 = 0xC2359472L; + int32_t l_882 = 7L; + int32_t l_883 = (-1L); + int32_t l_885 = 0x0CE63601L; + int32_t l_887[6][3] = {{(-2L),(-2L),0xFF72B15AL},{0x336CEA91L,0x336CEA91L,(-10L)},{(-2L),(-2L),0xFF72B15AL},{0x336CEA91L,0x336CEA91L,(-10L)},{(-2L),(-2L),0xFF72B15AL},{0x336CEA91L,0x336CEA91L,(-10L)}}; + struct S0 *l_956 = (void*)0; + int i, j; + for (g_663.f1 = 0; (g_663.f1 <= 2); g_663.f1 += 1) + { /* block id: 384 */ + uint32_t *l_846 = &g_27; + uint32_t **l_850 = &l_831; + int32_t *l_862 = &g_203.f1; + uint32_t l_865 = 0UL; + uint32_t *l_873 = &l_865; + union U2 l_875 = {-6L}; + struct S1 *l_876[4][8] = {{(void*)0,(void*)0,&g_203,&g_429[3][2][4],(void*)0,&g_429[3][2][4],(void*)0,(void*)0},{&g_429[3][2][4],(void*)0,&g_203,&g_429[3][2][4],&g_429[0][4][4],&g_429[3][2][4],&g_203,(void*)0},{(void*)0,(void*)0,&g_429[3][2][4],&g_429[3][2][4],(void*)0,&g_203,&g_429[0][4][4],&g_429[3][2][4]},{&g_429[1][1][5],&g_429[0][4][4],&g_429[1][1][3],(void*)0,(void*)0,&g_429[1][1][3],&g_429[0][4][4],&g_429[1][1][5]}}; + int32_t l_886 = 0xC62C1A3DL; + int32_t l_889 = 1L; + int32_t l_890 = (-4L); + int32_t l_891 = 0xBBD98B66L; + int32_t l_894[6] = {9L,9L,9L,9L,9L,9L}; + int32_t l_897 = 0L; + int32_t *l_911 = &l_891; + int i, j; + if ((safe_mod_func_int32_t_s_s((safe_mul_func_int16_t_s_s((l_841 , 1L), ((((*l_873) = (((safe_lshift_func_int16_t_s_u(((l_844 ^= g_275[(g_663.f1 + 2)][g_29]) != ((*l_846)++)), (((l_849 = l_849) == ((*l_850) = &g_275[0][1])) , (safe_add_func_uint16_t_u_u((safe_rshift_func_uint16_t_u_u(((*g_146)--), ((((*g_522) = (*g_522)) <= (safe_rshift_func_uint16_t_u_u(((safe_mod_func_uint8_t_u_u((((*l_862) = (l_861 ^= l_845)) , ((safe_mul_func_int32_t_s_s(l_865, ((((safe_rshift_func_uint8_t_u_s((((((safe_lshift_func_uint8_t_u_u((p_43.f1 ^ (*g_10)), l_865)) , g_663.f0) , g_870) == p_43.f1) | (**g_712)), 6)) < l_871) | (*p_42)) != (*p_42)))) , p_43.f3)), (*g_713))) , 0x8497L), 0))) , (*g_522)))), (-6L)))))) >= 0xF1L) >= l_872)) < l_871) < p_43.f1))), l_874[4][3][3]))) + { /* block id: 394 */ + return l_875; + } + else + { /* block id: 396 */ + struct S1 **l_877 = &l_876[2][3]; + int32_t *l_878 = (void*)0; + int32_t *l_879 = (void*)0; + int32_t *l_880[5][6] = {{&l_874[2][2][5],&l_816[1],&l_845,&l_845,&l_816[1],&l_874[2][2][5]},{&l_874[2][2][5],(void*)0,&l_844,&l_845,(void*)0,&l_845},{&l_874[2][2][5],&l_871,&l_874[2][2][5],&l_845,&l_871,&l_844},{&l_874[2][2][5],&l_816[1],&l_845,&l_845,&l_816[1],&l_874[2][2][5]},{&l_874[2][2][5],(void*)0,&l_844,&l_845,(void*)0,&l_845}}; + int16_t l_893 = 0xC5C8L; + int i, j; + (*l_877) = l_876[2][5]; + l_898++; + l_816[1] |= (l_841.f3 != (l_888 = (*p_41))); + } + if (l_901[2]) + continue; + } + for (l_871 = 0; (l_871 <= 1); l_871 += 1) + { /* block id: 422 */ + uint16_t l_941[1]; + union U2 l_942[5][7] = {{{7L},{1L},{-3L},{7L},{0xD252D763L},{7L},{-3L}},{{-3L},{-3L},{-4L},{0x81C8047CL},{1L},{-7L},{-3L}},{{-3L},{-3L},{0x0CC969D1L},{1L},{-1L},{-1L},{1L}},{{7L},{0xD252D763L},{7L},{-3L},{1L},{7L},{0x1BEE06C4L}},{{1L},{0xD252D763L},{1L},{0x81C8047CL},{0xD252D763L},{-4L},{0xD252D763L}}}; + int32_t **l_951 = &g_364; + int i, j; + for (i = 0; i < 1; i++) + l_941[i] = 0x94B7L; + for (g_203.f3.f3 = 0; (g_203.f3.f3 <= 1); g_203.f3.f3 += 1) + { /* block id: 425 */ + int32_t **l_925 = (void*)0; + int8_t * const l_927 = &g_9; + int8_t *l_929 = &g_368[7][5][2]; + int8_t **l_928 = &l_929; + uint32_t *l_940 = &g_491; + int i; + (*g_688) = (l_925 != l_926[0][2][5]); + g_131 = (g_28[4] = &p_44); + if (l_881) + break; + } + p_44 = ((safe_div_func_int16_t_s_s(((((!l_883) != p_43.f3) <= ((((((*p_41) < (((*g_10) = (safe_lshift_func_int8_t_s_u((((**g_712)++) ^ (l_951 != (void*)0)), (0x1EDDL & ((safe_mod_func_int16_t_s_s(((l_884 = (safe_sub_func_uint32_t_u_u(l_861, (*p_41)))) > 4294967291UL), 0xD5B9L)) <= g_709[8][1]))))) <= 0UL)) , (*p_42)) || (*p_42)) || p_43.f2) , (*p_42))) < (*p_41)), 65535UL)) == 0L); + } + (*g_802) = l_956; + for (l_898 = 0; (l_898 <= 2); l_898 += 1) + { /* block id: 444 */ + for (g_663.f3 = 0; (g_663.f3 <= 3); g_663.f3 += 1) + { /* block id: 447 */ + int i, j; + (*g_688) &= (safe_add_func_uint16_t_u_u((1L == (-1L)), (safe_lshift_func_uint8_t_u_s(g_709[(g_29 + 4)][l_898], 1)))); + return g_23; + } + } + } + } + (*g_688) = ((g_275[3][1] = 18446744073709551612UL) , (safe_sub_func_uint16_t_u_u(p_43.f4, ((((**g_712) = (safe_mod_func_int32_t_s_s(((*g_522) && (((safe_lshift_func_int8_t_s_s(l_967, (*g_10))) & ((*l_835) , (safe_mul_func_int8_t_s_s(((void*)0 != &g_202[3][1]), (((safe_mul_func_int8_t_s_s(0xFDL, (*g_713))) , l_972[1][4][0]) == l_973))))) ^ (**g_712))), g_429[3][2][4].f3.f2))) || (*p_42)) , (*g_146))))); + } + else + { /* block id: 457 */ + int8_t l_975 = (-4L); + int32_t l_976[2]; + int i; + for (i = 0; i < 2; i++) + l_976[i] = 0xB56CD2F2L; + l_977++; + } + return g_23; +} + + +/* ------------------------------------------ */ +/* + * reads : g_146 g_33 g_82 g_23.f2 g_10 g_9 g_23.f0 g_193 g_23 g_27 g_130 g_96 g_202 g_94 g_203.f1 g_140 g_132 g_141 g_275 g_203.f3.f0 g_203.f3.f4 g_203.f0 g_362 g_367 g_368 g_29 g_448 + * writes: g_94 g_82 g_202 g_33 g_203.f1 g_92 g_275 g_9 g_23.f2 g_28 g_203.f0 g_96 g_141 g_29 g_448 + */ +static int32_t * func_45(int8_t * const p_46, int32_t * p_47, int8_t * p_48) +{ /* block id: 34 */ + int16_t l_149 = 0x2C69L; + int32_t l_158 = 1L; + uint8_t *l_159[6][2][6] = {{{(void*)0,&g_96,(void*)0,&g_96,&g_94,(void*)0},{&g_141[5][6],&g_96,&g_141[5][5],&g_141[3][4],&g_96,&g_141[5][6]}},{{(void*)0,&g_141[3][1],&g_141[0][2],&g_141[5][6],&g_141[5][6],&g_94},{&g_96,&g_141[5][5],(void*)0,(void*)0,(void*)0,(void*)0}},{{&g_96,&g_96,&g_141[3][4],&g_141[3][1],(void*)0,&g_141[0][1]},{&g_141[1][1],&g_141[0][1],&g_96,(void*)0,&g_141[5][6],&g_141[3][4]}},{{&g_141[3][4],(void*)0,&g_96,&g_141[5][6],&g_96,(void*)0},{&g_96,&g_141[5][6],&g_96,&g_96,&g_141[3][3],(void*)0}},{{&g_96,&g_141[3][3],(void*)0,(void*)0,&g_141[3][1],(void*)0},{(void*)0,&g_96,(void*)0,&g_96,&g_141[3][4],&g_94}},{{&g_141[3][4],(void*)0,&g_141[1][1],&g_141[5][6],&g_94,&g_141[5][5]},{&g_141[3][3],&g_96,&g_96,&g_141[5][6],&g_94,&g_96}}}; + int32_t l_162 = 0L; + int32_t l_163 = 0x368D4868L; + int32_t l_164 = (-1L); + int32_t l_165[5][8] = {{9L,1L,0xCF0CBDDEL,1L,9L,1L,0xCF0CBDDEL,1L},{9L,1L,0xCF0CBDDEL,1L,9L,1L,0xCF0CBDDEL,1L},{9L,1L,0xCF0CBDDEL,1L,9L,1L,0xCF0CBDDEL,1L},{9L,1L,0xCF0CBDDEL,1L,9L,1L,0xCF0CBDDEL,1L},{9L,1L,0xCF0CBDDEL,1L,9L,1L,0xCF0CBDDEL,1L}}; + uint16_t l_168 = 65531UL; + union U2 l_194 = {0x9F5D8235L}; + int8_t l_195 = (-8L); + uint32_t l_245 = 0x0D5D64FBL; + struct S1 l_261[4][9] = {{{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL}},{{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL}},{{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL}},{{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x15L,0xCBFC918AL,0xD33FL,{-10L,0x77D2L,65535UL,65530UL,0xBBL},65535UL},{0x3BL,9L,0xE902L,{0x2921L,1UL,0UL,0xE230L,0UL},0x52D0L},{0x41L,0L,65526UL,{0x72A8L,1UL,0x65E9L,0xAE67L,0x65L},0x7144L},{0x1AL,0xB8D20E8FL,0xAA2CL,{0x140FL,0UL,0UL,1UL,255UL},65535UL}}}; + int32_t **l_298 = (void*)0; + int8_t l_302 = 3L; + uint32_t l_384 = 8UL; + int32_t **l_615 = &g_364; + uint16_t **l_616 = &g_146; + int32_t l_659 = 0x16F391CCL; + struct S0 *l_660 = &l_261[3][8].f3; + uint16_t l_779[5] = {0xCE19L,0xCE19L,0xCE19L,0xCE19L,0xCE19L}; + uint8_t l_784 = 0xE9L; + int i, j, k; + if ((((safe_rshift_func_int8_t_s_s(((void*)0 != g_146), 4)) <= ((safe_add_func_uint32_t_u_u(l_149, 0xCFA7979AL)) , (l_149 && (g_94 = ((safe_rshift_func_uint16_t_u_u((safe_mod_func_int16_t_s_s(((*p_47) , ((g_23.f2 && 4294967286UL) & (safe_sub_func_int16_t_s_s((safe_rshift_func_uint16_t_u_u(((((((&l_149 == (void*)0) <= (*g_10)) > 0x5FL) & l_149) | (*p_48)) && l_158), 1)), (*g_146))))), l_149)), 13)) == l_158))))) >= g_23.f0)) + { /* block id: 36 */ + int32_t *l_160 = &g_82; + int32_t *l_161[5] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; + int32_t l_166 = (-1L); + int16_t l_167 = (-3L); + const struct S0 l_224 = {-1L,1UL,65535UL,1UL,0x64L}; + union U2 l_228 = {-1L}; + int32_t *l_340 = &l_164; + int32_t *l_349 = &g_140; + int32_t **l_348[5]; + struct S1 *l_353[1][8][2] = {{{&l_261[2][5],&l_261[2][5]},{&l_261[0][4],&l_261[2][5]},{&l_261[2][5],&l_261[0][4]},{&l_261[2][5],&l_261[2][5]},{&l_261[0][4],&l_261[2][5]},{&l_261[2][5],&l_261[0][4]},{&l_261[2][5],&l_261[2][5]},{&l_261[0][4],&l_261[2][5]}}}; + int i, j, k; + for (i = 0; i < 5; i++) + l_348[i] = &l_349; + --l_168; + if (l_163) + { /* block id: 38 */ + int32_t l_175 = 0x58B35087L; + int8_t *l_186 = &g_9; + int16_t *l_189[8][1][3] = {{{&l_149,&g_92,&g_92}},{{&g_92,&l_149,&l_149}},{{&l_149,&g_92,&g_92}},{{&g_92,&l_149,&l_149}},{{&l_149,&g_92,&g_92}},{{&g_92,&l_149,&l_149}},{{&l_149,&g_92,&g_92}},{{&g_92,&l_149,&l_149}}}; + int32_t l_190 = 4L; + uint8_t **l_198 = &l_159[5][1][1]; + uint8_t *l_201 = &g_94; + union U2 *l_207 = &g_23; + uint32_t *l_219[5] = {&g_27,&g_27,&g_27,&g_27,&g_27}; + uint32_t *l_263 = &g_27; + int i, j, k; + (*l_160) = (((safe_lshift_func_int16_t_s_u(l_165[1][2], (safe_lshift_func_int8_t_s_s(((l_175 == ((safe_lshift_func_uint16_t_u_s((safe_mod_func_int8_t_s_s((safe_lshift_func_int16_t_s_s(((((-2L) | (safe_sub_func_int16_t_s_s((safe_mod_func_uint16_t_u_u((l_186 == p_46), (l_190 = (4UL | ((safe_mul_func_int8_t_s_s((*l_160), 0xE7L)) != 4294967295UL))))), 1L))) < (*p_48)) | l_168), l_175)), 0x48L)), 10)) ^ (*g_10))) | (*p_48)), l_175)))) , (*g_146)) != 0x7572L); + if ((safe_mul_func_uint8_t_u_u(((((-9L) && ((((g_193 , (l_194 = g_23)) , (((l_195 ^ (safe_mod_func_int16_t_s_s(((((*l_198) = &g_96) == (l_194 , (void*)0)) & (((safe_mul_func_int8_t_s_s(((*p_48) | ((*l_201) = 1UL)), g_27)) ^ g_27) != g_130[0][5])), g_193.f3))) || 0xACL) , l_194)) , l_195) != l_175)) != g_96) < 4UL), (*p_48)))) + { /* block id: 44 */ + struct S1 **l_204 = &g_202[1][9]; + union U2 *l_208[5][1][10] = {{{&g_23,&g_23,&l_194,&g_23,(void*)0,&l_194,&g_23,&g_23,&l_194,(void*)0}},{{&l_194,&g_23,&g_23,&l_194,&l_194,&l_194,&g_23,&g_23,(void*)0,&g_23}},{{&l_194,&l_194,&g_23,&l_194,&g_23,&l_194,&g_23,&l_194,&g_23,&l_194}},{{&g_23,(void*)0,&g_23,&g_23,(void*)0,&g_23,&g_23,&l_194,&l_194,&l_194}},{{&l_194,&g_23,&l_194,&g_23,&l_194,(void*)0,(void*)0,&l_194,&g_23,&l_194}}}; + int32_t l_210 = 1L; + int32_t l_225 = 0x90807700L; + int i, j, k; + (*l_204) = g_202[4][9]; + for (g_82 = (-22); (g_82 < 17); g_82++) + { /* block id: 48 */ + uint32_t l_209 = 0x1A28751EL; + l_208[0][0][0] = l_207; + l_190 = (!(l_210 = l_209)); + } + (*l_160) &= 0xBCAB29ADL; + (*p_47) = ((l_165[1][6] &= (safe_add_func_uint32_t_u_u(((((safe_sub_func_uint8_t_u_u(((safe_div_func_int8_t_s_s((safe_lshift_func_uint8_t_u_s((*l_160), (*p_48))), g_94)) | (l_219[2] == &g_27)), (l_225 |= (((*p_47) > (safe_div_func_int8_t_s_s(l_210, l_164))) ^ (safe_mod_func_uint16_t_u_u(((l_224 , (*p_47)) | (*l_160)), g_94)))))) & g_27) == l_210) > 9UL), 0x54DDF528L))) > l_194.f0); + } + else + { /* block id: 57 */ + int16_t l_237 = 0x7730L; + uint8_t l_246 = 1UL; + int32_t l_247 = 1L; + uint16_t *l_252 = &g_203.f3.f1; + struct S1 l_264 = {-1L,0L,0UL,{0x4C04L,0UL,65535UL,0x3C41L,0x23L},1UL}; + uint32_t *l_273 = (void*)0; + uint32_t *l_274 = &g_275[5][2]; + for (g_203.f1 = 0; (g_203.f1 <= 0); g_203.f1 += 1) + { /* block id: 60 */ + return p_47; + } + if ((safe_mod_func_int8_t_s_s((l_228 , (safe_sub_func_uint8_t_u_u(((safe_lshift_func_uint8_t_u_u((safe_mul_func_int16_t_s_s((g_92 = (safe_div_func_uint8_t_u_u((&g_133[0] != ((l_237 && (l_190 && (l_247 ^= (l_246 = (!(0x5600L <= (((safe_unary_minus_func_uint32_t_u((safe_mod_func_uint16_t_u_u(((safe_lshift_func_uint8_t_u_u((safe_lshift_func_uint8_t_u_s(g_140, (*p_48))), ((*l_201) = (~(((void*)0 == &p_48) == (*p_47)))))) && 0x43L), l_245)))) > (*p_47)) >= l_237))))))) , &p_47)), (*l_160)))), 0L)), g_132)) & g_140), 0x38L))), 4UL))) + { /* block id: 67 */ + uint8_t l_262 = 0x79L; + (*p_47) = (l_262 &= (l_246 || ((safe_lshift_func_uint8_t_u_s((safe_mod_func_uint16_t_u_u(((void*)0 == l_252), (l_246 && (*g_146)))), (l_190 | (g_146 != ((safe_add_func_int8_t_s_s((safe_rshift_func_int16_t_s_s((safe_mod_func_int16_t_s_s((safe_mul_func_uint16_t_u_u((l_261[3][8] , l_149), 0x2EB2L)), (*l_160))), l_190)), l_246)) , (void*)0))))) >= g_132))); + } + else + { /* block id: 70 */ + return p_47; + } + (*l_160) = ((((l_165[1][6] = l_237) , (l_263 != (((!0xDFC7L) && ((((*l_274) = (l_264 , ((safe_add_func_int8_t_s_s(0x54L, (safe_lshift_func_uint16_t_u_u((safe_mul_func_int8_t_s_s((safe_add_func_int32_t_s_s((l_189[4][0][0] != ((l_165[1][6] , l_264.f3) , &g_92)), (*p_47))), 0L)), (*g_146))))) , 0xF01E3291L))) , (void*)0) == (void*)0)) , (void*)0))) != l_237) == (*p_47)); + } + } + else + { /* block id: 77 */ + uint32_t l_276 = 18446744073709551615UL; + int32_t **l_281 = &g_28[2]; + int8_t *l_292[9][7][4] = {{{(void*)0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0},{&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0},{(void*)0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0},{&g_203.f0,&l_261[3][8].f0,(void*)0,&g_203.f0},{&l_261[3][8].f0,&l_195,&g_203.f0,&l_195},{(void*)0,&l_261[3][8].f0,&l_195,&l_195},{&l_261[3][8].f0,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0}},{{&l_195,(void*)0,&g_203.f0,&g_203.f0},{&l_195,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0},{&l_261[3][8].f0,&g_203.f0,&l_195,(void*)0},{(void*)0,&g_203.f0,&g_203.f0,&g_203.f0},{&l_261[3][8].f0,&l_261[3][8].f0,(void*)0,&l_195},{&g_203.f0,&l_195,&g_203.f0,&l_261[3][8].f0},{(void*)0,(void*)0,&g_203.f0,&g_203.f0}},{{&l_261[3][8].f0,(void*)0,&g_203.f0,&l_261[3][8].f0},{(void*)0,&l_195,&l_195,&l_195},{&l_195,&l_261[3][8].f0,&l_195,&g_203.f0},{&g_203.f0,&g_203.f0,&g_203.f0,(void*)0},{&g_203.f0,&g_203.f0,&l_261[3][8].f0,&g_203.f0},{&g_203.f0,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0},{(void*)0,(void*)0,&l_261[3][8].f0,&g_203.f0}},{{&g_203.f0,&l_261[3][8].f0,&l_261[3][8].f0,&l_195},{&g_203.f0,&l_261[3][8].f0,&g_203.f0,&l_195},{&g_203.f0,&l_195,&l_195,&g_203.f0},{&l_195,&l_261[3][8].f0,&l_195,&l_261[3][8].f0},{(void*)0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0},{&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0},{(void*)0,&l_261[3][8].f0,&g_203.f0,&l_261[3][8].f0}},{{&g_203.f0,&l_261[3][8].f0,(void*)0,&g_203.f0},{&l_261[3][8].f0,&l_195,&g_203.f0,&l_195},{(void*)0,&l_261[3][8].f0,&l_195,&l_195},{&l_261[3][8].f0,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0},{&l_195,(void*)0,&g_203.f0,&g_203.f0},{&l_195,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0},{&l_261[3][8].f0,&g_203.f0,&l_195,(void*)0}},{{(void*)0,&g_203.f0,&g_203.f0,&g_203.f0},{&l_261[3][8].f0,&l_261[3][8].f0,(void*)0,&l_195},{&g_203.f0,&l_195,&g_203.f0,&l_261[3][8].f0},{(void*)0,(void*)0,&g_203.f0,&g_203.f0},{&l_261[3][8].f0,(void*)0,&g_203.f0,&l_261[3][8].f0},{(void*)0,&l_195,&l_195,&l_195},{&l_195,(void*)0,&g_203.f0,&g_203.f0}},{{&l_261[3][8].f0,&l_261[3][8].f0,&l_261[3][8].f0,&l_195},{&l_195,&g_203.f0,(void*)0,&l_261[3][8].f0},{&g_203.f0,(void*)0,&l_261[3][8].f0,&g_203.f0},{&l_195,&l_261[3][8].f0,&l_261[3][8].f0,&l_195},{&g_203.f0,(void*)0,(void*)0,(void*)0},{&l_195,&l_195,&l_261[3][8].f0,&g_203.f0},{&l_261[3][8].f0,&g_203.f0,&g_203.f0,&l_261[3][8].f0}},{{&l_261[3][8].f0,&g_203.f0,(void*)0,(void*)0},{&l_195,&g_203.f0,&l_195,&l_261[3][8].f0},{&l_261[3][8].f0,(void*)0,&g_203.f0,&l_261[3][8].f0},{&g_203.f0,&g_203.f0,&l_261[3][8].f0,(void*)0},{&g_203.f0,&g_203.f0,&l_195,&l_261[3][8].f0},{(void*)0,&g_203.f0,&g_203.f0,&g_203.f0},{&l_195,&l_195,&l_261[3][8].f0,(void*)0}},{{&l_195,(void*)0,&g_203.f0,&l_195},{&l_195,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0},{&l_195,(void*)0,&g_203.f0,&l_261[3][8].f0},{&l_195,&g_203.f0,&l_261[3][8].f0,&l_195},{&l_195,&l_261[3][8].f0,&g_203.f0,&g_203.f0},{(void*)0,(void*)0,&l_195,&l_261[3][8].f0},{&g_203.f0,&l_261[3][8].f0,&l_261[3][8].f0,&g_203.f0}}}; + int32_t l_293 = 0xAF17BE23L; + struct S1 l_339 = {3L,0xC6CD4D1FL,0x97B2L,{-1L,65534UL,0xDC6FL,0x8F73L,3UL},0x1D13L}; + int32_t ***l_350 = &l_348[0]; + int i, j, k; + if ((((l_293 = ((((l_276 &= (*g_146)) || (safe_sub_func_uint16_t_u_u((~(((*g_146) = ((safe_lshift_func_uint8_t_u_s(((((*p_48) = (l_281 == &p_47)) | (l_165[0][4] |= (g_96 || (safe_div_func_uint8_t_u_u(g_193.f0, (safe_sub_func_uint16_t_u_u(((safe_sub_func_int32_t_s_s((((((safe_add_func_uint32_t_u_u(((void*)0 != &g_27), (safe_div_func_int16_t_s_s(1L, (((0xFA23E02CL == l_164) >= g_141[3][0]) ^ g_275[5][2]))))) , &l_194) != &l_194) , &l_245) != p_47), (-9L))) ^ l_261[3][8].f1), g_203.f3.f0))))))) || l_158), 7)) != g_23.f2)) , 0x8DBAL)), l_261[3][8].f3.f4))) , &l_261[2][7]) == (void*)0)) , g_203.f3.f4) < l_261[3][8].f3.f2)) + { /* block id: 83 */ + union U2 l_299[9][3][7] = {{{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}},{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}},{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}}},{{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}},{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}},{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}}},{{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}},{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}},{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}}},{{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}},{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}},{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}}},{{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}},{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}},{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}}},{{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}},{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}},{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}}},{{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}},{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}},{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}}},{{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}},{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}},{{0L},{0x52F59610L},{0L},{0x52F59610L},{0L},{0x52F59610L},{0L}}},{{{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L},{0x7F560B45L}},{{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L},{0x52F59610L},{0x193143B8L}},{{-6L},{-6L},{0x7F560B45L},{0x7F560B45L},{-6L},{-6L},{0x7F560B45L}}}}; + int16_t *l_303[10][2][5] = {{{&l_167,&g_92,&l_149,&l_149,&g_92},{(void*)0,(void*)0,&l_149,&l_167,&l_149}},{{(void*)0,(void*)0,&l_167,(void*)0,&l_167},{&g_92,&g_92,&l_149,&l_167,&g_92}},{{(void*)0,&l_167,(void*)0,&g_92,(void*)0},{(void*)0,(void*)0,&g_92,&g_92,&l_149}},{{&l_167,(void*)0,(void*)0,&l_167,(void*)0},{&g_92,&g_92,&l_149,(void*)0,&g_92}},{{(void*)0,(void*)0,&l_167,&l_167,&l_167},{(void*)0,(void*)0,(void*)0,&l_149,&l_167}},{{&g_92,&l_167,&l_149,&g_92,&g_92},{(void*)0,&g_92,&g_92,&g_92,(void*)0}},{{(void*)0,(void*)0,&l_149,&g_92,&l_149},{&g_92,(void*)0,(void*)0,&g_92,(void*)0}},{{&g_92,&g_92,&l_167,(void*)0,&g_92},{(void*)0,(void*)0,&l_149,&l_149,&l_167}},{{(void*)0,(void*)0,(void*)0,(void*)0,&l_149},{&g_92,&g_92,&g_92,&g_92,&g_92}},{{(void*)0,&g_92,(void*)0,&g_92,(void*)0},{(void*)0,(void*)0,&l_149,&g_92,&l_167}}}; + int32_t l_304 = (-1L); + int i, j, k; + (*p_47) |= (l_162 < ((l_304 |= (((safe_mul_func_int8_t_s_s((*p_48), (safe_mod_func_int8_t_s_s((l_298 == &g_133[0]), ((l_228 , l_299[6][2][1]) , (safe_add_func_uint16_t_u_u(l_302, (((void*)0 != &p_47) && l_299[6][2][1].f2)))))))) != (*g_146)) , g_193.f2)) <= (*g_146))); + } + else + { /* block id: 86 */ + int32_t *l_309 = &g_203.f1; + int32_t l_318 = (-1L); + int16_t *l_319 = &g_92; + if (((safe_lshift_func_int16_t_s_u((l_318 = ((safe_sub_func_uint16_t_u_u((*g_146), (((*l_309) = (g_23 , g_94)) , g_193.f3))) == ((*l_319) = (safe_sub_func_uint16_t_u_u((*g_146), ((safe_lshift_func_int8_t_s_u(5L, 4)) == (safe_rshift_func_int8_t_s_s((safe_lshift_func_int8_t_s_s(((0x4268F694L ^ l_318) <= g_96), (*p_48))), 5)))))))), 2)) != 0x143FL)) + { /* block id: 90 */ + int16_t l_335 = 1L; + int32_t l_338 = 0L; + (*l_281) = &g_29; + for (g_203.f0 = 0; (g_203.f0 >= 22); ++g_203.f0) + { /* block id: 94 */ + uint8_t l_328[2]; + int i; + for (i = 0; i < 2; i++) + l_328[i] = 0x73L; + l_338 &= ((((*g_146)++) > (0xCFFAL > ((0xDCFD5DADL != (safe_mul_func_uint8_t_u_u((~(g_96 = g_132)), ((safe_lshift_func_uint16_t_u_s((g_275[5][1] < l_328[1]), 10)) | (~((safe_sub_func_int32_t_s_s((*p_47), ((safe_mod_func_int32_t_s_s(0x7B9BFE1BL, ((safe_rshift_func_uint16_t_u_s((l_335 <= ((safe_rshift_func_uint8_t_u_u((g_141[0][1] = g_203.f3.f4), g_27)) || g_140)), g_193.f4)) && (*p_47)))) ^ 0x9CL))) == 0x78C5L)))))) || (-8L)))) == g_203.f3.f4); + return &g_82; + } + } + else + { /* block id: 101 */ + uint32_t l_344[4][4][4] = {{{4294967295UL,0x20A336BFL,0x508F9594L,0x20A336BFL},{1UL,0x4B5B738DL,1UL,0xFAAC7D03L},{0x20A336BFL,1UL,0xC65866FCL,0xFD1D0127L},{1UL,0x1FDA686FL,4294967286UL,4294967295UL}},{{1UL,0UL,0xC65866FCL,4294967286UL},{0x20A336BFL,4294967295UL,1UL,0x005F1C4FL},{0x005F1C4FL,4294967295UL,4294967295UL,4294967295UL},{1UL,1UL,0x005F1C4FL,1UL}},{{4294967295UL,4294967294UL,4294967286UL,0xC65866FCL},{0x508F9594L,0x005F1C4FL,4294967295UL,4294967286UL},{0UL,0x005F1C4FL,0xFD1D0127L,0xC65866FCL},{0x005F1C4FL,4294967294UL,0xFAAC7D03L,1UL}},{{0x05C4B03AL,1UL,0xBED9113FL,4294967295UL},{4294967286UL,4294967295UL,4294967286UL,0x005F1C4FL},{0x4687D50BL,4294967295UL,0UL,4294967286UL},{6UL,0UL,0UL,4294967295UL}}}; + int i, j, k; + if (((l_339 , (&g_33 != l_340)) != ((*p_48) = (-5L)))) + { /* block id: 103 */ + uint16_t l_341 = 0xCD7FL; + ++l_341; + } + else + { /* block id: 105 */ + int8_t **l_347[4]; + int i; + for (i = 0; i < 4; i++) + l_347[i] = &l_292[7][5][0]; + l_344[1][0][2]++; + (*p_47) &= (l_344[0][1][3] , ((g_23 , g_275[4][1]) > (&g_9 == (p_48 = (void*)0)))); + (*l_281) = p_47; + } + return &g_33; + } + } + (*l_340) = (*p_47); + (*l_350) = l_348[0]; + for (l_164 = (-28); (l_164 < (-6)); l_164 = safe_add_func_uint32_t_u_u(l_164, 6)) + { /* block id: 118 */ + struct S1 **l_354 = &g_202[4][9]; + (*l_354) = l_353[0][4][1]; + } + } + } + else + { /* block id: 122 */ + uint32_t l_355[5][5] = {{1UL,0x1EFE6392L,0x1EFE6392L,1UL,0x1EFE6392L},{1UL,1UL,1UL,1UL,1UL},{0x1EFE6392L,1UL,0x1EFE6392L,0x1EFE6392L,1UL},{1UL,0x08136386L,0x08136386L,1UL,0x08136386L},{1UL,1UL,4294967294UL,1UL,1UL}}; + int32_t l_369 = 0L; + struct S1 l_370 = {0x0FL,0x1D359E28L,0x2098L,{-1L,0UL,65535UL,0x21B8L,0x91L},0UL}; + uint8_t l_371 = 5UL; + int32_t *l_372 = &l_164; + int32_t *l_373 = &l_369; + int16_t *l_385[4]; + int32_t l_386 = 0x87316FB4L; + int32_t l_387[9] = {0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L,0x4A002CF8L}; + int8_t **l_402 = &g_10; + int8_t l_408 = (-2L); + uint32_t *l_459[7] = {&l_384,&l_384,&l_384,&l_384,&l_384,&l_384,&l_384}; + union U2 l_506 = {-1L}; + uint32_t * const l_541 = (void*)0; + uint32_t * const *l_540 = &l_541; + int8_t l_551 = (-7L); + int32_t l_562 = 0x7B63C334L; + int16_t l_572[2]; + uint32_t l_609[1][2][6] = {{{4294967295UL,4294967295UL,4294967295UL,4294967295UL,4294967295UL,4294967295UL},{4294967295UL,4294967295UL,4294967295UL,4294967295UL,4294967295UL,4294967295UL}}}; + uint32_t l_610 = 0xA2210773L; + uint16_t **l_617[5][10][2] = {{{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522}},{{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522}},{{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522}},{{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522}},{{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522},{&g_522,&g_522}}}; + uint32_t l_622[8][10][3] = {{{4294967288UL,0xD980B936L,0UL},{0xCFF7DF80L,0xC6F50153L,4294967295UL},{4294967288UL,0x189C563AL,0xA0DDD608L},{0xB9019512L,5UL,1UL},{0UL,0xA209FE77L,0xF6C96FF1L},{0xF25DA586L,5UL,0xB9019512L},{0x55FB34F6L,9UL,0xA11D72F8L},{0x5C6871E7L,4294967290UL,0xB9019512L},{0UL,0xF6C96FF1L,0xF6C96FF1L},{0UL,0xE1B43826L,1UL}},{{4294967295UL,8UL,0xA0DDD608L},{0x35DA2F23L,1UL,4294967295UL},{0xA0DDD608L,0x55FB34F6L,0UL},{1UL,1UL,0x182BD3A5L},{0xD980B936L,8UL,0xD980B936L},{4294967287UL,0xE1B43826L,0xF25DA586L},{0xA209FE77L,0xF6C96FF1L,4294967288UL},{0x182BD3A5L,4294967290UL,4294967295UL},{0x29A9BD62L,9UL,0x15D08CC1L},{0x182BD3A5L,5UL,0x5C6871E7L}},{{0xA209FE77L,0xA209FE77L,8UL},{4294967287UL,5UL,1UL},{0xD980B936L,0x189C563AL,0xA209FE77L},{1UL,0xC6F50153L,0x48801177L},{0xA0DDD608L,0xD980B936L,0xA209FE77L},{0x35DA2F23L,0x2BCB943DL,1UL},{4294967295UL,0x29A9BD62L,8UL},{0UL,0xC6555B24L,0x5C6871E7L},{0UL,0UL,0x15D08CC1L},{0x5C6871E7L,7UL,4294967295UL}},{{0x55FB34F6L,0UL,4294967288UL},{0xF25DA586L,0xC6555B24L,0xF25DA586L},{0UL,0x29A9BD62L,0xD980B936L},{0xB9019512L,0x2BCB943DL,0x182BD3A5L},{4294967288UL,0xD980B936L,0UL},{0xCFF7DF80L,0xC6F50153L,4294967295UL},{4294967288UL,0x189C563AL,0xA0DDD608L},{0xB9019512L,5UL,1UL},{0UL,0xA209FE77L,0xF6C96FF1L},{0xF25DA586L,5UL,0xB9019512L}},{{0x55FB34F6L,9UL,0xA11D72F8L},{0x5C6871E7L,4294967290UL,0xB9019512L},{0UL,0xF6C96FF1L,0xF6C96FF1L},{0UL,0xE1B43826L,1UL},{4294967295UL,8UL,0xA0DDD608L},{0x35DA2F23L,1UL,4294967295UL},{0xA0DDD608L,0x55FB34F6L,0UL},{1UL,1UL,0x182BD3A5L},{0xD980B936L,8UL,0xD980B936L},{4294967287UL,0xE1B43826L,0xF25DA586L}},{{0xA209FE77L,0xF6C96FF1L,4294967288UL},{0x182BD3A5L,4294967290UL,4294967295UL},{0x29A9BD62L,9UL,0x15D08CC1L},{0x182BD3A5L,5UL,0x5C6871E7L},{0xA209FE77L,0xA209FE77L,8UL},{4294967287UL,5UL,1UL},{0xD980B936L,0x189C563AL,0xA0DDD608L},{0xDF803319L,7UL,0x182BD3A5L},{0x29A9BD62L,0x23F5EC66L,0xA0DDD608L},{0UL,6UL,4294967295UL}},{{0x15D08CC1L,0UL,9UL},{4294967295UL,0xC6F50153L,0xCFF7DF80L},{4294967295UL,0xF6C96FF1L,0UL},{0xCFF7DF80L,5UL,0x48801177L},{0x189C563AL,0xF6C96FF1L,0xD980B936L},{4294967290UL,0xC6F50153L,4294967290UL},{0xF6C96FF1L,0UL,0x23F5EC66L},{0x5C6871E7L,6UL,0xF25DA586L},{0xD980B936L,0x23F5EC66L,0xA11D72F8L},{0x35DA2F23L,7UL,4294967287UL}},{{0xD980B936L,0xA209FE77L,0x29A9BD62L},{0x5C6871E7L,4294967295UL,0x66955C2CL},{0xF6C96FF1L,0xA0DDD608L,0UL},{4294967290UL,5UL,0x5C6871E7L},{0x189C563AL,0x55FB34F6L,4294967288UL},{0xCFF7DF80L,0xC30C919DL,0x5C6871E7L},{4294967295UL,0UL,0UL},{4294967295UL,0xC0A101CBL,0x66955C2CL},{0x15D08CC1L,9UL,0x29A9BD62L},{0UL,0x2BCB943DL,4294967287UL}}}; + uint8_t l_625 = 1UL; + struct S0 **l_789 = &l_660; + int i, j, k; + for (i = 0; i < 4; i++) + l_385[i] = &l_149; + for (i = 0; i < 2; i++) + l_572[i] = 0xCE21L; + l_369 = (l_355[1][4] >= (safe_mod_func_int8_t_s_s((g_140 >= (((3UL & g_275[4][2]) | (safe_mod_func_uint32_t_u_u((safe_rshift_func_int16_t_s_u(((void*)0 == g_362[1][2]), (l_261[3][8].f3.f2 ^ ((*g_10) , ((((((*p_47) = (safe_mul_func_uint8_t_u_u((((0xA0C97CF4L < (*p_47)) >= 0xA05A7788L) < g_367), 1L))) && g_203.f1) < g_368[5][5][0]) >= l_355[2][0]) == l_355[1][4]))))), g_130[0][5]))) == l_355[3][0])), (*p_48)))); + (*l_373) &= ((l_370 , l_371) <= (((*p_47) = (*p_47)) <= ((*l_372) = (-3L)))); + } + return &g_29; +} + + +/* ------------------------------------------ */ +/* + * reads : g_9 g_82 g_33 g_92 g_23.f2 g_94 g_96 g_23 g_27 g_28 g_141 g_448 + * writes: g_82 g_92 g_96 g_9 g_27 g_131 g_133 g_141 g_448 + */ +static int32_t * func_50(uint32_t p_51, int8_t p_52, int8_t p_53, int8_t * p_54, const int32_t p_55) +{ /* block id: 13 */ + int8_t *l_81[10] = {&g_9,&g_9,&g_9,&g_9,&g_9,&g_9,&g_9,&g_9,&g_9,&g_9}; + int16_t *l_91 = &g_92; + int32_t l_93 = (-8L); + uint8_t *l_95 = &g_96; + union U2 l_107 = {0x2706CD28L}; + int32_t l_113 = (-3L); + struct S1 l_114 = {8L,0x07506916L,0x6519L,{0xCEA1L,0UL,65531UL,0x6711L,251UL},1UL}; + const uint16_t l_127 = 0UL; + int32_t *l_135 = &l_113; + int32_t *l_136 = (void*)0; + int32_t *l_137 = (void*)0; + int32_t *l_138 = &l_113; + int32_t *l_139[6] = {(void*)0,&g_82,(void*)0,(void*)0,&g_82,(void*)0}; + int i; + l_93 = (safe_add_func_uint16_t_u_u(p_52, ((((safe_lshift_func_int16_t_s_u(((safe_div_func_int8_t_s_s((g_82 &= (*p_54)), (*p_54))) >= ((safe_mod_func_int8_t_s_s(((void*)0 != &p_53), (safe_add_func_int32_t_s_s((-3L), 0x3BD055D5L)))) <= 0x5DL)), 14)) ^ ((*l_95) |= (safe_mul_func_int8_t_s_s(((safe_rshift_func_int8_t_s_u(((((((*l_91) ^= g_33) | 0xA63FL) , l_93) >= l_93) > l_93), g_23.f2)) , g_94), 0xC7L)))) != l_93) , g_96))); + if (p_51) + { /* block id: 18 */ + int8_t **l_108[6] = {&l_81[4],&l_81[9],&l_81[4],&l_81[4],&l_81[9],&l_81[4]}; + struct S1 l_109 = {-3L,0xD4E8C809L,0x47BFL,{2L,0x3CBAL,0UL,65535UL,255UL},0xD01BL}; + uint16_t *l_110 = &l_107.f2; + int32_t *l_111 = &l_93; + int32_t *l_112[8] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; + uint32_t *l_125 = &g_27; + uint8_t *l_126 = (void*)0; + const int32_t *l_129 = &g_130[0][5]; + const int32_t **l_128[9][6][4] = {{{&l_129,(void*)0,(void*)0,&l_129},{&l_129,&l_129,(void*)0,(void*)0},{(void*)0,&l_129,&l_129,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0},{&l_129,(void*)0,(void*)0,(void*)0},{&l_129,(void*)0,&l_129,(void*)0}},{{(void*)0,(void*)0,(void*)0,(void*)0},{&l_129,&l_129,(void*)0,(void*)0},{(void*)0,&l_129,&l_129,&l_129},{&l_129,(void*)0,(void*)0,&l_129},{&l_129,&l_129,(void*)0,(void*)0},{(void*)0,&l_129,&l_129,(void*)0}},{{(void*)0,(void*)0,(void*)0,(void*)0},{&l_129,(void*)0,(void*)0,(void*)0},{&l_129,(void*)0,&l_129,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0},{&l_129,&l_129,(void*)0,(void*)0},{(void*)0,&l_129,&l_129,&l_129}},{{&l_129,(void*)0,(void*)0,&l_129},{&l_129,&l_129,(void*)0,(void*)0},{(void*)0,&l_129,&l_129,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0},{&l_129,(void*)0,(void*)0,&l_129},{(void*)0,(void*)0,&l_129,&l_129}},{{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,(void*)0},{(void*)0,&l_129,(void*)0,(void*)0},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,&l_129}},{{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,(void*)0,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,(void*)0}},{{(void*)0,&l_129,(void*)0,(void*)0},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,&l_129},{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,(void*)0,&l_129},{(void*)0,(void*)0,&l_129,&l_129}},{{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,(void*)0},{(void*)0,&l_129,(void*)0,(void*)0},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,&l_129}},{{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,(void*)0,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,&l_129,&l_129,&l_129},{(void*)0,(void*)0,&l_129,&l_129},{&l_129,(void*)0,&l_129,(void*)0}}}; + int i, j, k; + l_113 = ((*l_111) = (safe_mul_func_uint8_t_u_u((safe_lshift_func_uint16_t_u_u(((p_51 , ((*l_110) = (safe_rshift_func_int8_t_s_u((((*p_54) = (safe_mul_func_uint16_t_u_u(g_92, 0L))) & (safe_mul_func_int16_t_s_s(((0xF9L < (g_23 , (l_107 , ((l_81[9] = (void*)0) == &p_53)))) != ((((l_109 , &p_55) == &g_29) < 250UL) != l_109.f3.f2)), 65533UL))), l_109.f3.f0)))) & l_109.f3.f2), 5)), l_93))); + g_133[0] = (g_131 = func_16(l_114, (((void*)0 == p_54) != (((safe_mul_func_uint8_t_u_u(((safe_rshift_func_uint8_t_u_u(((safe_mul_func_uint16_t_u_u((((safe_mul_func_uint16_t_u_u(p_52, ((*p_54) == (((l_113 |= (l_109.f3 , ((*l_95) = (g_23.f2 <= (safe_add_func_int32_t_s_s(l_107.f2, (((+(((*l_125) ^= (l_91 == (void*)0)) <= p_55)) & 0x47876926L) , p_52))))))) ^ (*p_54)) ^ 0L)))) != 4294967288UL) <= p_53), l_114.f0)) & 0xEB91146BL), 2)) < p_51), 255UL)) , p_51) ^ l_127)), &g_9, g_23)); + } + else + { /* block id: 29 */ + int32_t *l_134 = &g_33; + return l_134; + } + ++g_141[5][6]; + return &g_82; +} + + + + +/* ---------------------------------------- */ +int main (int argc, char* argv[]) +{ + int i, j, k; + int print_hash_value = 0; + if (argc == 2 && strcmp(argv[1], "1") == 0) print_hash_value = 1; + platform_main_begin(); + crc32_gentab(); + func_1(); + transparent_crc(g_9, "g_9", print_hash_value); + transparent_crc(g_23.f2, "g_23.f2", print_hash_value); + transparent_crc(g_27, "g_27", print_hash_value); + transparent_crc(g_29, "g_29", print_hash_value); + transparent_crc(g_33, "g_33", print_hash_value); + transparent_crc(g_82, "g_82", print_hash_value); + transparent_crc(g_92, "g_92", print_hash_value); + transparent_crc(g_94, "g_94", print_hash_value); + transparent_crc(g_96, "g_96", print_hash_value); + for (i = 0; i < 8; i++) + { + for (j = 0; j < 6; j++) + { + transparent_crc(g_130[i][j], "g_130[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_132, "g_132", print_hash_value); + transparent_crc(g_140, "g_140", print_hash_value); + for (i = 0; i < 6; i++) + { + for (j = 0; j < 7; j++) + { + transparent_crc(g_141[i][j], "g_141[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_193.f0, "g_193.f0", print_hash_value); + transparent_crc(g_193.f1, "g_193.f1", print_hash_value); + transparent_crc(g_193.f2, "g_193.f2", print_hash_value); + transparent_crc(g_193.f3, "g_193.f3", print_hash_value); + transparent_crc(g_193.f4, "g_193.f4", print_hash_value); + transparent_crc(g_203.f0, "g_203.f0", print_hash_value); + transparent_crc(g_203.f1, "g_203.f1", print_hash_value); + transparent_crc(g_203.f2, "g_203.f2", print_hash_value); + transparent_crc(g_203.f3.f0, "g_203.f3.f0", print_hash_value); + transparent_crc(g_203.f3.f1, "g_203.f3.f1", print_hash_value); + transparent_crc(g_203.f3.f2, "g_203.f3.f2", print_hash_value); + transparent_crc(g_203.f3.f3, "g_203.f3.f3", print_hash_value); + transparent_crc(g_203.f3.f4, "g_203.f3.f4", print_hash_value); + transparent_crc(g_203.f4, "g_203.f4", print_hash_value); + for (i = 0; i < 6; i++) + { + for (j = 0; j < 3; j++) + { + transparent_crc(g_275[i][j], "g_275[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_367, "g_367", print_hash_value); + for (i = 0; i < 9; i++) + { + for (j = 0; j < 8; j++) + { + for (k = 0; k < 3; k++) + { + transparent_crc(g_368[i][j][k], "g_368[i][j][k]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + for (i = 0; i < 4; i++) + { + for (j = 0; j < 6; j++) + { + for (k = 0; k < 6; k++) + { + transparent_crc(g_429[i][j][k].f0, "g_429[i][j][k].f0", print_hash_value); + transparent_crc(g_429[i][j][k].f1, "g_429[i][j][k].f1", print_hash_value); + transparent_crc(g_429[i][j][k].f2, "g_429[i][j][k].f2", print_hash_value); + transparent_crc(g_429[i][j][k].f3.f0, "g_429[i][j][k].f3.f0", print_hash_value); + transparent_crc(g_429[i][j][k].f3.f1, "g_429[i][j][k].f3.f1", print_hash_value); + transparent_crc(g_429[i][j][k].f3.f2, "g_429[i][j][k].f3.f2", print_hash_value); + transparent_crc(g_429[i][j][k].f3.f3, "g_429[i][j][k].f3.f3", print_hash_value); + transparent_crc(g_429[i][j][k].f3.f4, "g_429[i][j][k].f3.f4", print_hash_value); + transparent_crc(g_429[i][j][k].f4, "g_429[i][j][k].f4", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + transparent_crc(g_448, "g_448", print_hash_value); + transparent_crc(g_491, "g_491", print_hash_value); + transparent_crc(g_663.f0, "g_663.f0", print_hash_value); + transparent_crc(g_663.f1, "g_663.f1", print_hash_value); + transparent_crc(g_663.f2, "g_663.f2", print_hash_value); + transparent_crc(g_663.f3, "g_663.f3", print_hash_value); + transparent_crc(g_663.f4, "g_663.f4", print_hash_value); + for (i = 0; i < 9; i++) + { + for (j = 0; j < 3; j++) + { + transparent_crc(g_709[i][j], "g_709[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_870, "g_870", print_hash_value); + transparent_crc(g_902, "g_902", print_hash_value); + transparent_crc(g_1001, "g_1001", print_hash_value); + transparent_crc(g_1007.f0, "g_1007.f0", print_hash_value); + transparent_crc(g_1007.f2, "g_1007.f2", print_hash_value); + transparent_crc(g_1359, "g_1359", print_hash_value); + transparent_crc(g_1361, "g_1361", print_hash_value); + for (i = 0; i < 9; i++) + { + transparent_crc(g_1473[i], "g_1473[i]", print_hash_value); + if (print_hash_value) printf("index = [%d]\n", i); + + } + transparent_crc(g_1474, "g_1474", print_hash_value); + transparent_crc(g_1492, "g_1492", print_hash_value); + transparent_crc(g_1725, "g_1725", print_hash_value); + transparent_crc(g_1798, "g_1798", print_hash_value); + transparent_crc(g_2122, "g_2122", print_hash_value); + transparent_crc(g_2341, "g_2341", print_hash_value); + transparent_crc(g_2575, "g_2575", print_hash_value); + transparent_crc(g_2686.f0, "g_2686.f0", print_hash_value); + transparent_crc(g_2686.f1, "g_2686.f1", print_hash_value); + transparent_crc(g_2686.f2, "g_2686.f2", print_hash_value); + transparent_crc(g_2686.f3, "g_2686.f3", print_hash_value); + transparent_crc(g_2686.f4, "g_2686.f4", print_hash_value); + transparent_crc(g_2898, "g_2898", print_hash_value); + platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value); + return 0; +} + +/************************ statistics ************************* +XXX max struct depth: 2 +breakdown: + depth: 0, occurrence: 717 + depth: 1, occurrence: 16 + depth: 2, occurrence: 33 +XXX total union variables: 30 + +XXX non-zero bitfields defined in structs: 1 +XXX zero bitfields defined in structs: 1 +XXX const bitfields defined in structs: 0 +XXX volatile bitfields defined in structs: 0 +XXX structs with bitfields in the program: 45 +breakdown: + indirect level: 0, occurrence: 33 + indirect level: 1, occurrence: 8 + indirect level: 2, occurrence: 4 +XXX full-bitfields structs in the program: 0 +breakdown: +XXX times a bitfields struct's address is taken: 36 +XXX times a bitfields struct on LHS: 0 +XXX times a bitfields struct on RHS: 66 +XXX times a single bitfield on LHS: 0 +XXX times a single bitfield on RHS: 0 + +XXX max expression depth: 42 +breakdown: + depth: 1, occurrence: 186 + depth: 2, occurrence: 44 + depth: 3, occurrence: 2 + depth: 4, occurrence: 4 + depth: 5, occurrence: 2 + depth: 6, occurrence: 3 + depth: 7, occurrence: 1 + depth: 11, occurrence: 2 + depth: 13, occurrence: 1 + depth: 14, occurrence: 1 + depth: 16, occurrence: 2 + depth: 17, occurrence: 1 + depth: 18, occurrence: 1 + depth: 19, occurrence: 4 + depth: 20, occurrence: 4 + depth: 21, occurrence: 2 + depth: 22, occurrence: 4 + depth: 23, occurrence: 4 + depth: 25, occurrence: 1 + depth: 27, occurrence: 1 + depth: 28, occurrence: 2 + depth: 29, occurrence: 2 + depth: 30, occurrence: 1 + depth: 31, occurrence: 1 + depth: 33, occurrence: 2 + depth: 41, occurrence: 1 + depth: 42, occurrence: 1 + +XXX total number of pointers: 576 + +XXX times a variable address is taken: 1577 +XXX times a pointer is dereferenced on RHS: 578 +breakdown: + depth: 1, occurrence: 540 + depth: 2, occurrence: 36 + depth: 3, occurrence: 2 +XXX times a pointer is dereferenced on LHS: 463 +breakdown: + depth: 1, occurrence: 432 + depth: 2, occurrence: 30 + depth: 3, occurrence: 1 +XXX times a pointer is compared with null: 72 +XXX times a pointer is compared with address of another variable: 17 +XXX times a pointer is compared with another pointer: 25 +XXX times a pointer is qualified to be dereferenced: 11097 + +XXX max dereference level: 4 +breakdown: + level: 0, occurrence: 0 + level: 1, occurrence: 2473 + level: 2, occurrence: 250 + level: 3, occurrence: 21 + level: 4, occurrence: 4 +XXX number of pointers point to pointers: 214 +XXX number of pointers point to scalars: 326 +XXX number of pointers point to structs: 20 +XXX percent of pointers has null in alias set: 29 +XXX average alias set size: 1.59 + +XXX times a non-volatile is read: 2782 +XXX times a non-volatile is write: 1303 +XXX times a volatile is read: 0 +XXX times read thru a pointer: 0 +XXX times a volatile is write: 0 +XXX times written thru a pointer: 0 +XXX times a volatile is available for access: 0 +XXX percentage of non-volatile access: 100 + +XXX forward jumps: 1 +XXX backward jumps: 8 + +XXX stmts: 189 +XXX max block depth: 5 +breakdown: + depth: 0, occurrence: 32 + depth: 1, occurrence: 30 + depth: 2, occurrence: 20 + depth: 3, occurrence: 30 + depth: 4, occurrence: 37 + depth: 5, occurrence: 40 + +XXX percentage a fresh-made variable is used: 15.4 +XXX percentage an existing variable is used: 84.6 +FYI: the random generator makes assumptions about the integer size. See platform.info for more details. +********************* end of statistics **********************/ + diff --git a/tests/fuzz/11.c.txt b/tests/fuzz/11.c.txt new file mode 100644 index 00000000..d878ac9d --- /dev/null +++ b/tests/fuzz/11.c.txt @@ -0,0 +1 @@ +checksum = F3170034 diff --git a/tests/fuzz/15.c b/tests/fuzz/15.c new file mode 100644 index 00000000..d84af705 --- /dev/null +++ b/tests/fuzz/15.c @@ -0,0 +1,1581 @@ +/* + * This is a RANDOMLY GENERATED PROGRAM. + * + * Generator: csmith 2.2.0 + * Git version: bf42ffd + * Options: --no-volatiles --no-packed-struct + * Seed: 797096764 + */ + +#include "csmith.h" + + +static long __undefined; + +/* --- Struct/Union Declarations --- */ +union U0 { + const int16_t f0; + int8_t f1; + uint32_t f2; +}; + +union U1 { + uint32_t f0; + signed f1 : 23; +}; + +union U2 { + int32_t f0; + const int8_t f1; + uint32_t f2; + uint64_t f3; + const int16_t f4; +}; + +/* --- GLOBAL VARIABLES --- */ +static uint8_t g_2 = 0x99L; +static union U2 g_10[10] = {{0x98764276L},{0xDA7EF5D8L},{0x1AFA9B64L},{0x1AFA9B64L},{0xDA7EF5D8L},{0x98764276L},{0xDA7EF5D8L},{0x1AFA9B64L},{0x1AFA9B64L},{0xDA7EF5D8L}}; +static union U2 *g_9 = &g_10[9]; +static int64_t g_49 = 0x47CDD5376E30F4AELL; +static uint8_t g_53[6] = {0xA8L,0xA8L,255UL,0xA8L,0xA8L,255UL}; +static union U2 **g_54 = (void*)0; +static int16_t g_75 = 0xDA77L; +static int32_t g_89 = 0x94124F91L; +static int32_t g_92 = (-10L); +static uint32_t g_93 = 0UL; +static uint8_t g_101 = 1UL; +static int32_t g_111[9][9] = {{0xA052AF0DL,(-6L),0x1281BCF5L,(-7L),0xA052AF0DL,(-1L),(-6L),0x453539CAL,(-7L)},{0xD59F121BL,0xADC77BC6L,9L,0x74088AFDL,(-7L),0x0F6EBCB2L,(-7L),0x74088AFDL,9L},{0xA052AF0DL,0xA052AF0DL,(-6L),0x1281BCF5L,(-7L),0xA052AF0DL,(-1L),(-6L),0x453539CAL},{9L,0xADC77BC6L,9L,(-1L),9L,0x74088AFDL,0L,0x74088AFDL,9L},{0x453539CAL,0L,0L,0x453539CAL,0xA052AF0DL,0x1281BCF5L,0L,(-4L),0x453539CAL},{0xD59F121BL,(-1L),(-7L),(-1L),0xD59F121BL,0x0F6EBCB2L,0xC841BEEAL,0xADC77BC6L,0xC841BEEAL},{(-4L),0xA052AF0DL,0x90AFEB5AL,0x90AFEB5AL,0xA052AF0DL,(-4L),(-1L),0x90AFEB5AL,1L},{0x01AA1EC4L,0x0F6EBCB2L,9L,0xADC77BC6L,9L,0x0F6EBCB2L,0x01AA1EC4L,(-1L),0L},{0x453539CAL,(-1L),0x1281BCF5L,(-4L),(-4L),0x1281BCF5L,(-1L),0x453539CAL,(-4L)}}; +static int16_t *g_136[6][10] = {{&g_75,&g_75,&g_75,&g_75,&g_75,&g_75,(void*)0,(void*)0,&g_75,&g_75},{&g_75,&g_75,&g_75,&g_75,(void*)0,&g_75,&g_75,&g_75,(void*)0,&g_75},{&g_75,&g_75,&g_75,(void*)0,&g_75,&g_75,&g_75,&g_75,(void*)0,&g_75},{(void*)0,(void*)0,&g_75,&g_75,&g_75,&g_75,&g_75,&g_75,&g_75,(void*)0},{&g_75,&g_75,&g_75,&g_75,(void*)0,(void*)0,&g_75,&g_75,&g_75,&g_75},{&g_75,(void*)0,&g_75,(void*)0,(void*)0,(void*)0,&g_75,(void*)0,&g_75,&g_75}}; +static int8_t g_147 = 0x73L; +static int64_t g_149 = 0x9236ECDBE2488046LL; +static union U2 g_223 = {0x3CAFA4DCL}; +static union U2 *g_222 = &g_223; +static union U0 g_226 = {-1L}; +static union U0 *g_225 = &g_226; +static union U0 g_229[3][1][5] = {{{{0xF0CDL},{1L},{0x1C62L},{0x7D68L},{0x7D68L}}},{{{1L},{0xF0CDL},{1L},{0x1C62L},{0x7D68L}}},{{{0x095AL},{0xCCBBL},{0x7D68L},{0xCCBBL},{0x095AL}}}}; +static union U0 g_231[6][9][4] = {{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}},{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}},{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}},{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}},{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}},{{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}},{{0x2038L},{0x2038L},{0x2038L},{0x2038L}}}}; +static uint16_t g_245 = 0xE292L; +static const uint16_t *g_244 = &g_245; +static const uint16_t **g_243[4][5][5] = {{{&g_244,&g_244,(void*)0,&g_244,&g_244},{(void*)0,(void*)0,(void*)0,&g_244,&g_244},{&g_244,(void*)0,&g_244,(void*)0,&g_244},{(void*)0,&g_244,(void*)0,(void*)0,(void*)0},{&g_244,&g_244,&g_244,&g_244,(void*)0}},{{&g_244,(void*)0,(void*)0,&g_244,(void*)0},{(void*)0,&g_244,(void*)0,(void*)0,&g_244},{(void*)0,(void*)0,&g_244,&g_244,(void*)0},{&g_244,(void*)0,&g_244,&g_244,&g_244},{&g_244,(void*)0,(void*)0,(void*)0,&g_244}},{{&g_244,&g_244,(void*)0,(void*)0,(void*)0},{&g_244,&g_244,(void*)0,&g_244,&g_244},{&g_244,&g_244,&g_244,&g_244,(void*)0},{(void*)0,&g_244,&g_244,&g_244,&g_244},{(void*)0,&g_244,&g_244,&g_244,&g_244}},{{(void*)0,&g_244,(void*)0,&g_244,(void*)0},{(void*)0,&g_244,&g_244,&g_244,(void*)0},{(void*)0,(void*)0,&g_244,&g_244,&g_244},{(void*)0,(void*)0,&g_244,(void*)0,(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,&g_244}}}; +static const uint16_t **g_250[3] = {&g_244,&g_244,&g_244}; +static int32_t **g_251[6] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; +static const union U0 g_255 = {0x8343L}; +static const uint64_t g_319 = 1UL; +static const uint64_t *g_318 = &g_319; +static uint32_t g_375 = 0x72D6932EL; +static union U1 g_428[8][1][4] = {{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}},{{{0x698E2022L},{1UL},{0x698E2022L},{1UL}}}}; +static uint16_t g_444 = 0x21E0L; +static int8_t g_479 = 0x73L; +static int16_t g_507 = 0x62B6L; +static union U2 *** const g_604 = &g_54; +static int32_t g_627 = 0x6061E963L; +static int8_t g_706 = (-10L); +static const union U2 g_814 = {0x1ABBD7A4L}; +static union U0 **g_815 = &g_225; +static union U0 **g_819 = &g_225; +static const union U1 *g_902 = &g_428[0][0][2]; +static uint32_t *g_912 = &g_93; +static uint32_t **g_911 = &g_912; +static uint8_t *g_931 = &g_2; +static uint8_t **g_930 = &g_931; +static int32_t g_1007 = 1L; +static int32_t ***g_1075 = &g_251[3]; +static int32_t ****g_1074[10] = {&g_1075,&g_1075,&g_1075,&g_1075,&g_1075,&g_1075,&g_1075,&g_1075,&g_1075,&g_1075}; +static int8_t g_1178 = 1L; +static uint32_t g_1198[10][6] = {{0x6E30EC80L,1UL,18446744073709551615UL,0x603D3624L,18446744073709551615UL,1UL},{0x10B3A749L,18446744073709551615UL,18446744073709551615UL,0x603D3624L,18446744073709551615UL,18446744073709551615UL},{0x6E30EC80L,18446744073709551615UL,18446744073709551615UL,0x10B3A749L,1UL,1UL},{0x74CE00C5L,18446744073709551615UL,18446744073709551615UL,0x74CE00C5L,18446744073709551615UL,18446744073709551615UL},{0x74CE00C5L,18446744073709551615UL,18446744073709551615UL,0x10B3A749L,18446744073709551615UL,18446744073709551615UL},{0x6E30EC80L,1UL,18446744073709551615UL,0x603D3624L,18446744073709551615UL,1UL},{0x10B3A749L,18446744073709551615UL,18446744073709551615UL,0x603D3624L,18446744073709551615UL,18446744073709551615UL},{0x6E30EC80L,18446744073709551615UL,18446744073709551615UL,0x10B3A749L,1UL,1UL},{0x74CE00C5L,18446744073709551615UL,18446744073709551615UL,0x74CE00C5L,18446744073709551615UL,18446744073709551615UL},{0x74CE00C5L,18446744073709551615UL,18446744073709551615UL,0x10B3A749L,18446744073709551615UL,18446744073709551615UL}}; +static int32_t g_1232 = 0x71F484AAL; +static int64_t g_1399[3][1][5] = {{{0xDD9AC679BAAAA7DCLL,0xDD9AC679BAAAA7DCLL,(-1L),0xA0F8C1174F6453ADLL,(-1L)}},{{0xDD9AC679BAAAA7DCLL,0xDD9AC679BAAAA7DCLL,(-1L),0xA0F8C1174F6453ADLL,(-1L)}},{{0xDD9AC679BAAAA7DCLL,0xDD9AC679BAAAA7DCLL,(-1L),0xA0F8C1174F6453ADLL,(-1L)}}}; +static union U1 *g_1459 = &g_428[0][0][2]; +static uint32_t *g_1502 = &g_375; +static union U1 g_1574[2] = {{4294967286UL},{4294967286UL}}; +static uint64_t g_1582 = 0xDE7693F682AE7AA6LL; +static int8_t g_1693 = 0x0CL; +static int64_t g_1695 = 0x84AF5CDD96B38B31LL; +static uint16_t g_1743 = 0x3C40L; +static int32_t g_1771 = 0x66C24BEBL; +static const uint64_t g_1864[2][4][3] = {{{5UL,1UL,1UL},{18446744073709551615UL,0x14DC4E3CB165692BLL,18446744073709551615UL},{5UL,5UL,1UL},{0xE46C208F0BCDDE06LL,0x14DC4E3CB165692BLL,0xE46C208F0BCDDE06LL}},{{5UL,1UL,1UL},{18446744073709551615UL,0x14DC4E3CB165692BLL,18446744073709551615UL},{5UL,5UL,1UL},{0xE46C208F0BCDDE06LL,0x14DC4E3CB165692BLL,0xE46C208F0BCDDE06LL}}}; +static const int32_t *g_1948[8][5][2] = {{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}},{{&g_92,(void*)0},{&g_1232,&g_92},{&g_111[6][0],&g_111[6][0]},{&g_111[6][0],&g_92},{&g_1232,(void*)0}}}; +static uint16_t * const g_2081 = (void*)0; +static uint16_t * const *g_2080 = &g_2081; +static uint16_t * const **g_2079[6][9] = {{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080},{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080},{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,(void*)0,&g_2080},{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080},{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080},{&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080,&g_2080}}; +static uint16_t *g_2110 = &g_444; +static uint16_t **g_2109 = &g_2110; +static int32_t g_2120 = 0x6DA12724L; +static uint16_t *g_2144 = (void*)0; +static uint32_t * const *g_2212 = (void*)0; +static union U1 **g_2317[4] = {&g_1459,&g_1459,&g_1459,&g_1459}; +static union U1 ***g_2316 = &g_2317[1]; + + +/* --- FORWARD DECLARATIONS --- */ +static uint32_t func_1(void); +static union U2 * const func_3(union U1 p_4, int16_t p_5); +static union U1 func_6(union U2 * p_7, const int64_t p_8); +static const uint64_t func_16(uint64_t p_17, union U1 p_18); +static union U2 func_20(union U2 * p_21); +static int8_t func_26(const int64_t p_27, uint32_t p_28, uint64_t p_29, union U2 p_30); +static uint8_t func_33(union U2 * p_34, uint32_t p_35, union U0 p_36, uint8_t p_37, union U2 * p_38); +static uint32_t func_40(union U2 * p_41, union U2 ** p_42, union U2 * p_43); +static int16_t func_66(uint8_t * const p_67, int64_t p_68, union U2 *** const p_69); +static uint8_t * func_70(int64_t p_71, int32_t p_72, uint8_t * p_73); + + +/* --- FUNCTIONS --- */ +/* ------------------------------------------ */ +/* + * reads : g_2 g_10.f1 g_53 g_54 g_231.f1 g_223.f4 g_318 g_319 g_10 g_706 g_428 g_92 g_444 g_10.f4 g_89 g_111 g_149 g_93 g_225 g_226 g_223.f0 g_428.f0 g_223.f3 g_930 g_931 g_627 g_912 g_911 g_1007 g_226.f2 g_244 g_245 g_1074 g_147 g_101 g_375 g_1198 g_604 g_814.f0 g_229 g_222 g_223 g_75 g_814.f1 g_902 g_223.f1 g_1232 g_9 g_255.f0 g_1502 g_1574 g_479 g_1695 g_1459 g_229.f0 g_1582 g_507 g_1743 g_1574.f1 g_819 g_2110 g_2144 g_1864 g_223.f2 g_2212 g_2316 + * writes: g_9 g_49 g_2 g_53 g_706 g_444 g_93 g_245 g_223.f0 g_149 g_111 g_223.f3 g_75 g_226.f2 g_89 g_507 g_479 g_147 g_1198 g_54 g_1399 g_231.f1 g_1502 g_931 g_92 g_1232 g_375 g_10.f3 g_428 g_222 g_1743 g_1695 g_1007 g_10.f2 g_2079 g_2109 g_2120 g_1948 g_223.f2 g_2212 + */ +static uint32_t func_1(void) +{ /* block id: 0 */ + int64_t l_1967[2]; + uint8_t l_1977[4]; + uint32_t l_1980 = 1UL; + int32_t l_1982 = 0xD67F4E36L; + int32_t l_1983 = 0xF965B165L; + uint16_t l_1999 = 0x9388L; + int32_t l_2011 = 0xE1C04DFFL; + int32_t l_2012 = 0xFCA65305L; + int32_t l_2013 = 0xADB23608L; + int32_t l_2014 = 0x0E5033ACL; + int32_t ****l_2054 = &g_1075; + uint32_t l_2062 = 0x1B47355CL; + const int8_t l_2064 = 0xCCL; + uint64_t l_2066[1][3][9] = {{{1UL,1UL,0UL,1UL,1UL,0UL,1UL,1UL,0UL},{1UL,1UL,0UL,1UL,1UL,0UL,1UL,1UL,0UL},{1UL,1UL,0UL,1UL,1UL,0UL,1UL,1UL,0UL}}}; + int64_t l_2071 = 0L; + int32_t l_2099[1][7][8] = {{{0x189E11A8L,5L,0xA01202B2L,5L,(-3L),5L,(-3L),0x33D3B688L},{0xA01202B2L,0x33D3B688L,0xA01202B2L,0xB69E8CCFL,(-3L),0xB69E8CCFL,0xA01202B2L,0x33D3B688L},{(-3L),0xB69E8CCFL,0xA01202B2L,0x33D3B688L,0xA01202B2L,0xB69E8CCFL,(-3L),0xB69E8CCFL},{(-3L),0x33D3B688L,0x189E11A8L,0x33D3B688L,(-3L),5L,(-3L),0x33D3B688L},{0xA01202B2L,0x33D3B688L,0xA01202B2L,0xB69E8CCFL,(-3L),0xB69E8CCFL,0xA01202B2L,0x33D3B688L},{(-3L),0xB69E8CCFL,0xA01202B2L,0x33D3B688L,0xA01202B2L,0xB69E8CCFL,(-3L),0xB69E8CCFL},{(-3L),0x33D3B688L,0x189E11A8L,0x33D3B688L,(-3L),5L,(-3L),0x33D3B688L}}}; + int32_t l_2104 = 3L; + uint16_t **l_2111 = &g_2110; + int64_t *l_2115 = &g_1399[2][0][3]; + const int16_t l_2123[10] = {(-1L),(-1L),(-1L),(-1L),(-1L),(-1L),(-1L),(-1L),(-1L),(-1L)}; + const uint64_t **l_2168[4]; + uint32_t ****l_2184 = (void*)0; + int64_t l_2198[1]; + int8_t l_2208 = 5L; + uint32_t l_2232 = 18446744073709551612UL; + uint32_t l_2239 = 4294967289UL; + uint64_t l_2304 = 0UL; + int8_t l_2308[10] = {0xFFL,0xFFL,0xFFL,0xFFL,0xFFL,0xFFL,0xFFL,0xFFL,0xFFL,0xFFL}; + int i, j, k; + for (i = 0; i < 2; i++) + l_1967[i] = 1L; + for (i = 0; i < 4; i++) + l_1977[i] = 0x3AL; + for (i = 0; i < 4; i++) + l_2168[i] = &g_318; + for (i = 0; i < 1; i++) + l_2198[i] = (-10L); + if (g_2) + { /* block id: 1 */ + union U2 **l_1971 = &g_222; + int32_t *l_1972 = &g_111[1][3]; + int64_t *l_1981[4]; + int16_t *l_1996 = &g_507; + uint16_t l_1997 = 4UL; + uint16_t *l_1998 = &g_1743; + uint64_t l_2000 = 1UL; + int i; + for (i = 0; i < 4; i++) + l_1981[i] = &g_1399[1][0][0]; + (*l_1971) = func_3(((*g_1459) = func_6((g_9 = (void*)0), g_10[9].f1)), l_1967[0]); + l_1972 = l_1972; + l_1983 = ((((*g_1459) , (!l_1967[1])) && ((safe_mod_func_uint8_t_u_u((l_1977[1] != (l_1982 = (g_149 = (0x8EL >= ((((safe_sub_func_int32_t_s_s((l_1977[1] < (*l_1972)), ((l_1980 , &g_1075) == &g_1075))) || (*l_1972)) , (*l_1972)) , (**g_930)))))), l_1980)) != l_1967[1])) >= g_111[1][3]); + l_2000 |= (((safe_mod_func_uint8_t_u_u((((*l_1998) = (~((((**g_911) = (safe_sub_func_int64_t_s_s((((safe_lshift_func_uint16_t_u_s(0xCB04L, ((*l_1996) |= (3L >= (safe_unary_minus_func_int8_t_s((0L == (((safe_unary_minus_func_uint64_t_u((g_229[0][0][3].f0 & 0x70L))) <= ((safe_mul_func_int8_t_s_s((l_1980 , g_1582), (((*l_1972) | ((*l_1972) <= g_223.f4)) || 4UL))) >= (*g_318))) , (*l_1972))))))))) , l_1967[0]) , g_428[0][0][2].f0), l_1997))) < (*l_1972)) , (*l_1972)))) && (*l_1972)), l_1977[1])) || (*l_1972)) , l_1999); + } + else + { /* block id: 890 */ + int8_t l_2010 = 0L; + int32_t l_2018[9][4][7] = {{{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L},{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L},{0L,0L,1L,0L,0L,1L,0L},{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L}},{{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L},{0L,0L,1L,0L,0L,1L,0L},{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L},{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L}},{{0L,0L,1L,0L,0L,1L,0L},{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L},{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L},{0L,0L,1L,0L,0L,1L,0L}},{{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L},{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L},{0L,0L,1L,0L,0L,1L,0L},{0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L}},{{0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L},{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L},{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L},{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L}},{{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L},{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L},{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L},{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L}},{{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L},{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L},{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L},{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L}},{{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L},{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L},{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L},{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L}},{{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L},{0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L},{1L,0xBD0DEF51L,1L,1L,0xBD0DEF51L,1L,1L},{0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L,0xBD0DEF51L,0L,0xBD0DEF51L}}}; + uint8_t l_2026 = 0xC8L; + int8_t l_2029[9] = {0L,0L,0L,0L,0L,0L,0L,0L,0L}; + const int16_t l_2061 = 0x8AA0L; + uint32_t *l_2063 = &g_10[9].f2; + uint64_t l_2065 = 7UL; + int64_t l_2067 = 1L; + uint32_t l_2070 = 18446744073709551615UL; + uint16_t *l_2076[4] = {(void*)0,(void*)0,(void*)0,(void*)0}; + uint16_t **l_2075 = &l_2076[0]; + uint16_t ***l_2074[9][8] = {{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075},{&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075,&l_2075}}; + union U0 l_2096[7] = {{0x5C67L},{0x5C67L},{0x5C67L},{0x5C67L},{0x5C67L},{0x5C67L},{0x5C67L}}; + uint16_t l_2107 = 65534UL; + union U2 *l_2156 = &g_10[9]; + uint64_t *l_2166 = (void*)0; + uint64_t **l_2165 = &l_2166; + const uint32_t l_2171 = 8UL; + union U1 l_2190 = {0xC236650BL}; + union U1 **l_2204 = &g_1459; + union U1 **l_2205 = &g_1459; + uint64_t l_2215 = 0x96E9BBDEA25EDF34LL; + int16_t l_2227[5][9][5] = {{{0x0EB5L,0x1960L,0x1960L,0x0EB5L,0x6030L},{0xDD4AL,(-1L),7L,7L,0x1FD4L},{0x1960L,(-1L),0xCA87L,1L,0xCA87L},{0xE2CEL,0xE2CEL,0x1FD4L,7L,7L},{0x735EL,0x2B2BL,0x6030L,0x0EB5L,0x1960L},{(-9L),0x1FD4L,1L,0x1FD4L,(-9L)},{2L,0x2B2BL,1L,0x248EL,1L},{7L,0xE2CEL,1L,(-1L),(-1L)},{0x248EL,(-1L),0x248EL,0x2B2BL,1L}},{{1L,(-1L),0xE2CEL,0L,(-9L)},{1L,0x1960L,(-1L),(-1L),0x1960L},{1L,0x8BCEL,0xE2CEL,(-9L),7L},{(-1L),7L,0x248EL,0x6030L,0xCA87L},{(-5L),1L,1L,(-5L),0x1FD4L},{(-1L),(-1L),1L,2L,0x6030L},{1L,0xDD4AL,1L,0xE2CEL,1L},{1L,1L,0x6030L,2L,1L},{1L,0L,0x1FD4L,(-5L),1L}},{{0x248EL,0x6030L,0xCA87L,0x6030L,0x248EL},{7L,0L,7L,(-9L),0xE2CEL},{2L,1L,0x1960L,(-1L),(-1L)},{(-9L),0xDD4AL,(-9L),0L,0xE2CEL},{0x735EL,(-1L),1L,0x2B2BL,0x248EL},{0xE2CEL,1L,(-1L),(-1L),1L},{0x1960L,7L,1L,0x248EL,1L},{0xDD4AL,0x8BCEL,(-9L),0x1FD4L,1L},{0x0EB5L,0x1960L,0x1960L,0x0EB5L,0x6030L}},{{0xDD4AL,(-1L),7L,7L,0x1FD4L},{0x1960L,(-1L),0xCA87L,1L,0xCA87L},{0xE2CEL,0xE2CEL,0x1FD4L,7L,7L},{0x735EL,0x2B2BL,0x6030L,0x0EB5L,0x1960L},{(-9L),0xDD4AL,1L,0xDD4AL,(-1L)},{0x2B2BL,7L,0xCA87L,(-1L),0x6030L},{0L,0x1FD4L,(-5L),1L,1L},{(-1L),2L,(-1L),7L,0x6030L},{(-9L),1L,0x1FD4L,0x8BCEL,(-1L)}},{{0x6030L,0x0EB5L,0x1960L,0x1960L,0x0EB5L},{(-5L),7L,0x1FD4L,(-1L),1L},{2L,1L,(-1L),(-1L),0x735EL},{0xE2CEL,(-5L),(-5L),0xE2CEL,0xDD4AL},{2L,0x1960L,0xCA87L,0x2B2BL,(-1L)},{(-5L),7L,1L,0x1FD4L,1L},{0x6030L,0x6030L,(-1L),0x2B2BL,0xCA87L},{(-9L),0x8BCEL,0xDD4AL,0xE2CEL,(-5L)},{(-1L),(-1L),0x735EL,(-1L),(-1L)}}}; + int16_t l_2229 = 0xCCBFL; + int16_t l_2238[10][5][5] = {{{0x26A1L,0x93F8L,0xCE93L,9L,0xB42DL},{0L,1L,0x34A3L,0L,0L},{9L,(-1L),9L,0x93F8L,0xB42DL},{(-1L),0L,1L,0x5701L,1L},{0xB42DL,0L,0xA442L,0xA442L,0L}},{{0x34A3L,(-1L),1L,1L,(-1L)},{(-1L),(-9L),9L,1L,(-9L)},{0x1869L,0x34A3L,0x34A3L,0x1869L,0x878EL},{(-1L),0xA442L,0xCE93L,0x26A1L,1L},{0x34A3L,0x0254L,0xEC99L,1L,0xEC99L}},{{0xB42DL,0xB42DL,1L,0x26A1L,0xCE93L},{(-1L),0x5701L,0x878EL,0x1869L,0x34A3L},{9L,1L,(-9L),1L,9L},{0L,0x5701L,(-1L),1L,1L},{0x26A1L,0xB42DL,0L,0xA442L,0xA442L}},{{1L,0x0254L,1L,0x5701L,1L},{0x1300L,0xA442L,0xB42DL,0x93F8L,9L},{1L,0x34A3L,0L,0L,0x34A3L},{0L,(-9L),0xB42DL,9L,0xCE93L},{0x0254L,(-1L),1L,0x878EL,0xEC99L}},{{7L,0L,0L,7L,1L},{0x0254L,0L,(-1L),0L,0x878EL},{0L,(-1L),(-9L),0xB42DL,(-9L)},{1L,1L,0x878EL,0L,(-1L)},{0x1300L,0x93F8L,(-1L),0xB42DL,7L}},{{0L,0x0254L,(-1L),0x0254L,0L},{0x93F8L,(-9L),(-9L),0xA442L,1L},{0x5701L,0x878EL,0x1869L,0x34A3L,0x34A3L},{0xA442L,0x26A1L,0xA442L,(-9L),1L},{1L,0x34A3L,0x878EL,(-1L),0L}},{{1L,7L,0L,0L,7L},{0x1869L,(-1L),0x878EL,0L,0xEC99L},{0x26A1L,0xCE93L,0xA442L,(-1L),0x1300L},{1L,0x1869L,0x1869L,1L,0x0254L},{0x26A1L,0L,(-9L),0x93F8L,(-1L)}},{{0x1869L,0L,(-1L),0x878EL,(-1L)},{1L,1L,(-1L),0x93F8L,(-9L)},{1L,(-1L),0x0254L,1L,0x1869L},{0xA442L,(-1L),0x1300L,(-1L),0xA442L},{0x5701L,(-1L),0xEC99L,0L,0x878EL}},{{0x93F8L,1L,7L,0L,0L},{0L,0L,0L,(-1L),0x878EL},{9L,0L,1L,(-9L),0xA442L},{0x878EL,0x1869L,0x34A3L,0x34A3L,0x1869L},{7L,0xCE93L,1L,0xA442L,(-9L)}},{{0L,(-1L),0L,0x0254L,(-1L)},{0xB42DL,7L,7L,0xB42DL,(-1L)},{0L,0x34A3L,0xEC99L,0x5701L,0x0254L},{7L,0x26A1L,0x1300L,1L,0x1300L},{0x878EL,0x878EL,0x0254L,0x5701L,0xEC99L}}}; + uint32_t l_2271[9]; + uint64_t l_2305[10] = {0x2AFF29B5EB439595LL,0x31A843976A988D39LL,0x739F945BCAB457C2LL,0x739F945BCAB457C2LL,0x31A843976A988D39LL,0x2AFF29B5EB439595LL,0x31A843976A988D39LL,0x739F945BCAB457C2LL,0x739F945BCAB457C2LL,0x31A843976A988D39LL}; + int i, j, k; + for (i = 0; i < 9; i++) + l_2271[i] = 18446744073709551610UL; +lbl_2214: + for (g_1695 = 0; (g_1695 > (-5)); g_1695 = safe_sub_func_int64_t_s_s(g_1695, 1)) + { /* block id: 893 */ + int32_t *l_2003 = &l_1982; + int32_t *l_2004 = &g_89; + int32_t l_2005 = 0x4B4F5FC8L; + int32_t *l_2006 = &l_1983; + int32_t *l_2007 = &g_89; + int32_t *l_2008 = &g_1232; + int32_t *l_2009[3]; + uint64_t l_2015 = 8UL; + int32_t l_2019 = 8L; + int32_t l_2020 = 0x34E658EBL; + uint32_t l_2021 = 0UL; + uint16_t *l_2034 = &g_444; + uint16_t *l_2037 = &g_1743; + int32_t *l_2038 = &g_1007; + int32_t *l_2039 = &g_223.f0; + int i; + for (i = 0; i < 3; i++) + l_2009[i] = &g_1232; + l_2015++; + --l_2021; + (*l_2008) |= (safe_add_func_int64_t_s_s(((((l_2026 ^= 0x41L) & l_1977[2]) < ((*l_2003) && (l_2029[2] & (((safe_sub_func_int8_t_s_s((+(*l_2003)), ((safe_mul_func_uint16_t_u_u(((*l_2037) |= (++(*l_2034))), 0x45A3L)) < ((((*l_2039) = ((*l_2038) = g_92)) , (*l_2003)) ^ (l_1999 , g_1574[1].f1))))) , (void*)0) != (void*)0)))) <= 0x9A7C15D3L), l_1977[1])); + if (l_2018[3][2][5]) + continue; + } + if (((safe_div_func_uint16_t_u_u((255UL > (safe_lshift_func_int16_t_s_s((l_2029[2] ^ (((((safe_rshift_func_uint16_t_u_s((0x41132324FECFB523LL > ((safe_lshift_func_uint16_t_u_s((0L && ((((**g_819) , ((safe_add_func_int64_t_s_s(g_1198[5][5], (safe_mul_func_int8_t_s_s((((*l_2063) = (safe_add_func_int32_t_s_s((&g_1075 == l_2054), (safe_rshift_func_int16_t_s_s((safe_sub_func_uint8_t_u_u((!(safe_mod_func_int64_t_s_s((((*g_318) >= l_2018[3][2][5]) >= 4294967287UL), l_2061))), 0x8EL)), l_2062))))) , l_2064), 0x8CL)))) ^ l_2029[2])) >= l_1982) | l_2065)), l_1967[1])) , l_2066[0][1][6])), 8)) > l_2026) , l_1977[3]) >= (*g_1502)) , l_2067)), 15))), l_2010)) || l_2018[3][2][5])) + { /* block id: 905 */ + int32_t l_2068 = 3L; + int32_t *l_2069[9][7] = {{&l_2018[3][2][5],&l_2013,&l_2012,&l_2012,&l_2013,&l_2018[3][2][5],&l_2013},{&g_111[1][3],&l_1982,&l_2012,&g_1232,(void*)0,&g_1232,&l_2012},{&l_2013,&l_2013,&l_2018[3][2][5],&l_2012,&l_2018[3][2][5],&l_2013,&l_2013},{&l_1982,&l_1982,&l_2013,&l_1982,&l_1982,&g_1232,&l_2012},{&l_2018[5][2][3],&l_2013,&l_2018[5][2][3],&l_2018[3][2][5],&l_2018[3][2][5],&l_2018[5][2][3],&l_2013},{&l_2012,(void*)0,&l_2013,&l_2014,(void*)0,&l_1982,(void*)0},{&l_2018[5][2][3],&l_2018[3][2][5],&l_2018[3][2][5],&l_2018[5][2][3],&l_2013,&l_2018[5][2][3],&l_2018[3][2][5]},{&l_1982,&g_1232,&l_2012,(void*)0,&g_111[1][3],&l_1982,&l_2012},{&l_2018[3][2][5],&l_2018[5][2][3],&l_2013,&l_2018[5][2][3],&l_2018[3][2][5],&l_2018[3][2][5],&l_2018[5][2][3]}}; + int32_t l_2105 = 0L; + uint64_t l_2106 = 18446744073709551611UL; + uint16_t **l_2108 = &l_2076[0]; + int16_t *l_2134 = &g_75; + int64_t l_2172 = (-1L); + int16_t l_2221 = 1L; + int32_t l_2230 = (-10L); + int8_t l_2237 = 0x72L; + int32_t l_2286 = 1L; + int i, j; + l_2070 = l_2068; + if (l_2071) + { /* block id: 907 */ + uint16_t * const *l_2078[4][10][6] = {{{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0]},{&l_2076[0],(void*)0,&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[1]},{&l_2076[0],(void*)0,&l_2076[0],&l_2076[0],(void*)0,&l_2076[0]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[2],&l_2076[0],(void*)0,&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[1],(void*)0,&l_2076[3],&l_2076[0],(void*)0},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[3]},{&l_2076[0],&l_2076[0],&l_2076[1],&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[1],&l_2076[1],&l_2076[0],(void*)0,(void*)0}},{{&l_2076[1],&l_2076[1],(void*)0,&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[1],&l_2076[0],&l_2076[1],&l_2076[0],&l_2076[1],&l_2076[3]},{&l_2076[1],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0]},{(void*)0,&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3]},{&l_2076[3],(void*)0,&l_2076[1],&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[0],(void*)0,&l_2076[0],&l_2076[2],(void*)0},{&l_2076[3],&l_2076[0],&l_2076[1],(void*)0,(void*)0,&l_2076[0]},{&l_2076[3],&l_2076[0],&l_2076[1],&l_2076[0],&l_2076[3],&l_2076[3]},{&l_2076[1],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[0]}},{{&l_2076[1],&l_2076[0],&l_2076[0],&l_2076[1],&l_2076[3],(void*)0},{&l_2076[3],&l_2076[0],(void*)0,&l_2076[0],&l_2076[3],&l_2076[0]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0]},{&l_2076[2],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[1]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0]},{&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[0],(void*)0,&l_2076[0]},{&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[2],&l_2076[0]},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[1],&l_2076[0],&l_2076[1]},{&l_2076[2],(void*)0,&l_2076[2],&l_2076[0],&l_2076[0],&l_2076[0]}},{{&l_2076[3],&l_2076[0],&l_2076[3],(void*)0,(void*)0,&l_2076[0]},{&l_2076[1],&l_2076[0],&l_2076[0],(void*)0,&l_2076[0],(void*)0},{&l_2076[3],&l_2076[0],&l_2076[0],(void*)0,&l_2076[3],&l_2076[0]},{&l_2076[3],&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[0]},{&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[1]},{&l_2076[0],&l_2076[0],&l_2076[3],&l_2076[0],&l_2076[1],&l_2076[0]},{&l_2076[1],&l_2076[0],&l_2076[2],&l_2076[0],&l_2076[0],(void*)0},{&l_2076[0],&l_2076[0],&l_2076[0],&l_2076[1],&l_2076[1],&l_2076[0]},{&l_2076[0],&l_2076[0],(void*)0,&l_2076[2],(void*)0,&l_2076[0]},{(void*)0,&l_2076[3],&l_2076[1],&l_2076[0],(void*)0,(void*)0}}}; + uint16_t * const **l_2077[9]; + union U1 l_2097 = {4294967287UL}; + int64_t *l_2098[5][10] = {{&l_1967[0],&g_1399[2][0][3],(void*)0,&l_2071,(void*)0,&g_1399[2][0][3],&l_1967[0],&l_1967[0],&g_1399[2][0][3],(void*)0},{&g_1399[2][0][3],&l_1967[0],&l_1967[0],&g_1399[2][0][3],(void*)0,&l_2071,(void*)0,&g_1399[2][0][3],&l_1967[0],&l_1967[0]},{(void*)0,&l_1967[0],&l_1967[0],&l_2071,&l_2071,&l_1967[0],&l_1967[0],(void*)0,&l_1967[0],&l_1967[0]},{&l_2071,&g_1399[2][0][3],&l_2071,&g_1399[2][0][3],&l_2071,&l_1967[0],&l_1967[0],&l_2071,&g_1399[2][0][3],&l_2071},{(void*)0,(void*)0,&l_2071,&l_2071,&g_1399[2][0][3],&l_2071,&l_2071,(void*)0,(void*)0,&l_2071}}; + int16_t *l_2100 = &g_75; + int16_t *l_2101 = (void*)0; + int16_t *l_2102 = (void*)0; + int16_t *l_2103[4][8] = {{(void*)0,&g_507,&g_507,&g_507,&g_507,&g_507,&g_507,&g_507},{&g_507,&g_507,&g_507,&g_507,(void*)0,(void*)0,&g_507,&g_507},{&g_507,&g_507,&g_507,&g_507,&g_507,&g_507,&g_507,(void*)0},{&g_507,&g_507,&g_507,(void*)0,(void*)0,(void*)0,(void*)0,&g_507}}; + int64_t **l_2112 = &l_2098[4][0]; + int64_t **l_2113 = (void*)0; + int64_t *l_2114 = &l_2071; + int16_t l_2133 = 0x534CL; + int i, j, k; + for (i = 0; i < 9; i++) + l_2077[i] = &l_2078[3][8][1]; + l_2097.f1 = ((safe_sub_func_uint8_t_u_u((((*g_225) , (((void*)0 == &g_319) | ((l_2104 &= (((g_93 && 254UL) , ((l_2074[2][7] == (g_2079[3][8] = l_2077[8])) != (~l_2018[2][1][2]))) , ((*l_2100) = (((safe_mod_func_int32_t_s_s(((safe_mul_func_uint8_t_u_u((((safe_rshift_func_int8_t_s_u(((safe_mul_func_uint8_t_u_u(((l_2018[3][2][5] = ((safe_lshift_func_uint16_t_u_s((safe_sub_func_uint16_t_u_u((safe_sub_func_uint64_t_u_u(((l_2096[3] , l_2097) , l_2097.f0), 1L)), l_2097.f1)), 12)) <= 0x6B0AE9BDFA119AC2LL)) && 0xE2F6AABA98EB6A18LL), g_1198[8][5])) , l_2097.f0), 3)) > l_2097.f0) , 255UL), 0xAAL)) < l_2099[0][4][2]), l_2061)) == l_2026) ^ 0xABAFL)))) , (**g_930)))) > l_2097.f1), l_2105)) == l_2106); + l_2014 = (l_2018[3][2][5] = (l_2099[0][4][2] != (l_2107 , (((g_2109 = l_2108) != l_2111) < ((**g_930) = (4UL <= ((((*l_2112) = l_2098[1][5]) == (l_2115 = (l_2114 = &g_1399[0][0][0]))) != ((g_2120 = (safe_sub_func_int64_t_s_s(l_2065, (safe_div_func_uint16_t_u_u(l_2065, l_2067))))) == l_2097.f1)))))))); + l_1982 ^= (safe_lshift_func_uint16_t_u_u(l_2123[6], 14)); + if ((safe_lshift_func_uint16_t_u_u((--(*g_2110)), l_2070))) + { /* block id: 923 */ + int8_t l_2130 = 0xA8L; + int16_t **l_2135 = &l_2100; + int32_t l_2138 = 0x0DE8473CL; + l_2138 ^= ((safe_sub_func_uint64_t_u_u(((l_2130 | (safe_lshift_func_int8_t_s_s(g_706, 1))) >= (l_2133 == (((*l_2135) = l_2134) == &g_75))), (safe_sub_func_int16_t_s_s(1L, 0x844EL)))) && l_2018[4][2][3]); + } + else + { /* block id: 926 */ + for (l_2013 = 0; (l_2013 <= 9); l_2013 += 1) + { /* block id: 929 */ + return g_223.f4; + } + for (l_2014 = 25; (l_2014 == (-20)); l_2014 = safe_sub_func_int32_t_s_s(l_2014, 4)) + { /* block id: 934 */ + uint32_t l_2143 = 4294967289UL; + l_2143 = ((safe_sub_func_uint32_t_u_u((*g_1502), (l_2070 | l_2097.f1))) < l_2010); + } + l_2097.f1 = 0L; + } + } + else + { /* block id: 939 */ + int8_t *l_2149 = (void*)0; + int8_t *l_2150 = &g_479; + int8_t *l_2151 = (void*)0; + int8_t *l_2152[4][9] = {{&g_226.f1,&g_231[2][3][1].f1,&g_226.f1,&g_231[2][3][1].f1,&g_226.f1,&g_231[2][3][1].f1,&g_226.f1,&g_231[2][3][1].f1,&g_226.f1},{&g_226.f1,&l_2029[4],&l_2029[4],&g_226.f1,&g_226.f1,&l_2029[4],&l_2029[4],&g_226.f1,&g_226.f1},{&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1,&g_231[2][3][1].f1},{&g_226.f1,&g_226.f1,&l_2029[4],&l_2029[4],&g_226.f1,&g_226.f1,&l_2029[4],&l_2029[4],&g_226.f1}}; + int32_t l_2153 = 0x98A48BC2L; + uint64_t ***l_2167 = &l_2165; + uint32_t ***l_2182 = &g_911; + uint32_t ****l_2181 = &l_2182; + uint8_t l_2199 = 0xADL; + int32_t l_2216 = 0xFB679376L; + int32_t l_2220 = 0xC71D761AL; + int32_t l_2223 = 0xB664C4E1L; + int32_t l_2228[10] = {7L,0L,5L,0L,7L,7L,0L,5L,0L,7L}; + int8_t l_2231[6][6][4] = {{{0L,0x8DL,0x8DL,0x98L},{0x62L,0x06L,1L,0x83L},{0x97L,0x99L,0x31L,0xBBL},{0L,1L,0x17L,0xBBL},{0x9FL,0x99L,0L,0x83L},{(-9L),0x06L,0xD0L,0x98L}},{{0x47L,4L,0x97L,(-9L)},{0x99L,8L,1L,0x8AL},{0x06L,0x17L,0x74L,0xABL},{0xFDL,0x83L,0x83L,7L},{4L,0x31L,0L,(-9L)},{1L,0x83L,1L,(-1L)}},{{(-1L),0L,(-1L),0x9FL},{0x8AL,0L,0x83L,(-6L)},{0x1BL,(-9L),0L,0L},{(-6L),0L,0L,0xD0L},{0x1BL,1L,0x83L,4L},{0x8AL,(-10L),(-1L),(-9L)}},{{(-1L),(-9L),1L,0xFDL},{1L,0x98L,0L,0x17L},{4L,0L,0x83L,0x62L},{0xFDL,8L,0x74L,1L},{0x06L,0x1BL,1L,1L},{0x99L,(-9L),0x97L,0x97L}},{{0x47L,0x47L,0xD0L,0L},{(-9L),(-1L),0L,0x06L},{0x9FL,0x97L,0x17L,0L},{0L,0x97L,0x31L,0x06L},{0x97L,(-1L),1L,0L},{0x62L,0x47L,4L,0x97L}},{{0x98L,(-9L),0x62L,1L},{0x17L,0x1BL,(-9L),1L},{7L,8L,0x9FL,0x62L},{(-1L),0L,1L,0x17L},{8L,0x98L,7L,0xFDL},{(-10L),(-9L),(-6L),(-9L)}}}; + int i, j, k; + l_2018[3][2][5] ^= (0x7276L <= ((void*)0 != g_2144)); + l_1982 = (safe_rshift_func_int8_t_s_u((l_2153 = ((*l_2150) = ((safe_mod_func_uint64_t_u_u((*g_318), 18446744073709551613UL)) != g_231[2][3][1].f1))), 0)); + if ((((g_9 = l_2156) == (void*)0) < ((((((g_319 , (((*g_2110) = (safe_div_func_int64_t_s_s(((g_444 , (((safe_rshift_func_uint8_t_u_u((*g_931), 3)) , ((safe_lshift_func_uint16_t_u_u(((((!g_319) >= ((((*l_2167) = l_2165) != l_2168[3]) < (safe_add_func_int32_t_s_s(0x4BE7EAE3L, 0xE2FB1C89L)))) | 18446744073709551615UL) , l_2153), l_2153)) == 0UL)) , l_2026)) > 0xD9F5L), g_1864[1][2][0]))) >= l_2171)) < g_319) , (-5L)) || l_2172) ^ 0x99E19607FCAEFB6CLL) != l_2065))) + { /* block id: 947 */ + for (g_375 = 0; (g_375 <= 0); g_375 += 1) + { /* block id: 950 */ + uint64_t l_2173 = 0x7E0A1EE474B83E5FLL; + --l_2173; + } + for (l_2070 = 0; (l_2070 <= 1); l_2070 += 1) + { /* block id: 955 */ + union U2 *l_2178 = &g_223; + uint32_t *****l_2183 = &l_2181; + int16_t *l_2187 = &g_507; + uint16_t **l_2188 = &l_2076[2]; + int32_t l_2189 = 0L; + union U2 **l_2191 = &g_9; + int i; + if (l_1967[l_2070]) + break; + l_2018[3][2][5] = ((**g_930) | 1UL); + } + for (l_2068 = 0; l_2068 < 8; l_2068 += 1) + { + for (g_375 = 0; g_375 < 5; g_375 += 1) + { + for (l_2012 = 0; l_2012 < 2; l_2012 += 1) + { + g_1948[l_2068][g_375][l_2012] = &l_1982; + } + } + } + } + else + { /* block id: 968 */ + int32_t *l_2200 = (void*)0; + int32_t l_2217 = 0x4FE96332L; + int32_t l_2218 = (-10L); + int32_t l_2219 = 0x079E3D68L; + int32_t l_2222[5]; + uint32_t l_2224 = 0x695369B6L; + int i; + for (i = 0; i < 5; i++) + l_2222[i] = 0x0EC35639L; + if (((safe_mod_func_uint8_t_u_u(l_1999, (safe_mul_func_uint8_t_u_u((*g_931), (safe_lshift_func_int16_t_s_s((-3L), 5)))))) , l_2198[0])) + { /* block id: 969 */ + return l_2199; + } + else + { /* block id: 971 */ + int32_t **l_2201 = &l_2200; + (*l_2201) = l_2200; + l_2208 ^= (((safe_lshift_func_int16_t_s_s(((*l_2134) &= ((l_2204 = &g_1459) == l_2205)), 11)) <= (l_2070 <= (safe_rshift_func_int16_t_s_u(0xCB44L, 15)))) , (~0xF110CC3CL)); + } + for (g_223.f2 = (-12); (g_223.f2 == 7); g_223.f2++) + { /* block id: 979 */ + int16_t l_2211 = 1L; + uint32_t * const **l_2213 = &g_2212; + l_2153 = l_2211; + l_2153 = (0x968C6B2DL & (((*l_2213) = g_2212) != (void*)0)); + if (g_627) + goto lbl_2214; + if (l_2215) + continue; + } + ++l_2224; + } + ++l_2232; + } + for (g_147 = 2; (g_147 != (-18)); g_147 = safe_sub_func_int16_t_s_s(g_147, 9)) + { /* block id: 992 */ + int32_t l_2249 = (-4L); + int32_t l_2267 = 0x9D46F976L; + int32_t l_2268[10] = {0x5F78B802L,0L,0L,0L,0L,0x5F78B802L,0L,0L,0L,0L}; + int i; + --l_2239; + } + } + else + { /* block id: 1030 */ + const int32_t l_2313[7][8][4] = {{{0L,0xC17774FEL,0x22684D08L,(-1L)},{(-5L),0xCB537E5CL,0xCF8749F9L,0x5B8E73CDL},{0x24574F0DL,0x0B1950AEL,0x37612EECL,0x5B8E73CDL},{0xD050476FL,0xCB537E5CL,0x549F2490L,(-1L)},{8L,0xC17774FEL,4L,0xCB537E5CL},{(-1L),(-4L),0L,0x24574F0DL},{0x22684D08L,0x72EECBFFL,0x549F2490L,7L},{0x6AEDCBCAL,(-5L),1L,(-5L)}},{{0x24574F0DL,0x549F2490L,0xD050476FL,0xC17774FEL},{0x549F2490L,0x72EECBFFL,0x22684D08L,0x9AA1FD11L},{(-4L),0x6DDE5AC8L,0x5B8E73CDL,(-4L)},{(-4L),4L,1L,(-1L)},{0xD168EDB2L,(-4L),1L,5L},{7L,(-1L),0xC17774FEL,0x549F2490L},{0x22684D08L,0x2E56501BL,0xD168EDB2L,(-1L)},{1L,0L,0x2E56501BL,0x2E56501BL}},{{0x6DDE5AC8L,0x6DDE5AC8L,(-1L),7L},{0x37612EECL,0xCF8749F9L,0xD168EDB2L,0L},{1L,0x0B1950AEL,0x9AA1FD11L,0xD168EDB2L},{7L,0x0B1950AEL,8L,0L},{0x0B1950AEL,0xCF8749F9L,1L,7L},{0x2E56501BL,0x6DDE5AC8L,(-1L),0x2E56501BL},{(-4L),0L,0x24574F0DL,(-1L)},{0x0B1950AEL,0x2E56501BL,1L,0x549F2490L}},{{0x9AA1FD11L,(-1L),0x9AA1FD11L,5L},{0x22684D08L,(-4L),0L,(-1L)},{0x37612EECL,4L,0x2E56501BL,(-4L)},{(-1L),0x6DDE5AC8L,0x2E56501BL,0x9AA1FD11L},{0x37612EECL,0xD050476FL,0L,0L},{0x22684D08L,0xD168EDB2L,0x9AA1FD11L,0x0B1950AEL},{0x9AA1FD11L,0x0B1950AEL,1L,4L},{0x0B1950AEL,0xD050476FL,0x24574F0DL,7L}},{{(-4L),(-1L),(-1L),(-4L)},{0x2E56501BL,0L,1L,(-8L)},{0x0B1950AEL,(-4L),8L,0x549F2490L},{7L,0x247ABAC3L,0x9AA1FD11L,0x549F2490L},{1L,(-4L),0xD168EDB2L,(-8L)},{0x37612EECL,0L,(-1L),(-4L)},{0x6DDE5AC8L,(-1L),0x2E56501BL,7L},{1L,0xD050476FL,0xD168EDB2L,4L}},{{0x22684D08L,0x0B1950AEL,0xC17774FEL,0x0B1950AEL},{7L,0xD168EDB2L,1L,0L},{0xD168EDB2L,0xD050476FL,1L,0x9AA1FD11L},{(-4L),0x6DDE5AC8L,0x5B8E73CDL,(-4L)},{(-4L),4L,1L,(-1L)},{0xD168EDB2L,(-4L),1L,5L},{7L,(-1L),0xC17774FEL,0x549F2490L},{0x22684D08L,0x2E56501BL,0xD168EDB2L,(-1L)}},{{1L,0L,0x2E56501BL,0x2E56501BL},{0x6DDE5AC8L,0x6DDE5AC8L,(-1L),7L},{0x37612EECL,0xCF8749F9L,0xD168EDB2L,0L},{1L,0x0B1950AEL,0x9AA1FD11L,0xD168EDB2L},{7L,0x0B1950AEL,8L,0L},{0x0B1950AEL,0xCF8749F9L,1L,7L},{0x2E56501BL,0x6DDE5AC8L,(-1L),0x2E56501BL},{(-4L),0L,0x24574F0DL,(-1L)}}}; + union U1 ***l_2318 = &g_2317[2]; + uint8_t *l_2319 = &l_2026; + uint32_t l_2320 = 18446744073709551615UL; + int i, j, k; + if (((safe_div_func_int8_t_s_s((&g_149 != (void*)0), ((((((safe_add_func_uint64_t_u_u((l_2313[5][1][3] , ((((l_2305[3] >= ((*g_318) ^ (safe_rshift_func_uint16_t_u_u((g_2316 != l_2318), 6)))) < l_2313[5][1][3]) , l_2319) == &l_1977[3])), 0x27D3C5AEB2740B3BLL)) & 0L) <= l_2313[5][1][3]) > l_2313[5][1][3]) & l_2320) | (*g_318)))) , l_2313[5][1][3])) + { /* block id: 1031 */ + int32_t *l_2321 = &l_2012; + if (l_2010) + goto lbl_2214; + (*l_2321) |= 0x8BD5E6EBL; + (*l_2321) &= 0x7E3A8021L; + } + else + { /* block id: 1035 */ + int32_t *l_2323[1][1][10] = {{{&l_2012,(void*)0,(void*)0,&l_2012,(void*)0,(void*)0,(void*)0,&g_111[6][3],&g_111[6][3],(void*)0}}}; + int32_t **l_2322 = &l_2323[0][0][1]; + int i, j, k; + (*l_2322) = &l_2018[5][0][0]; + return g_101; + } + return g_93; + } + } + return g_1232; +} + + +/* ------------------------------------------ */ +/* + * reads : + * writes: + */ +static union U2 * const func_3(union U1 p_4, int16_t p_5) +{ /* block id: 878 */ + int32_t *l_1968[4][3][10] = {{{&g_89,&g_111[3][5],&g_111[7][8],&g_111[3][5],&g_89,&g_92,(void*)0,(void*)0,&g_111[1][5],&g_111[1][3]},{&g_111[3][5],&g_89,&g_92,(void*)0,&g_111[1][3],&g_89,&g_111[0][6],(void*)0,&g_92,&g_111[1][3]},{&g_111[1][3],(void*)0,&g_111[7][7],&g_92,&g_89,&g_111[7][8],&g_89,&g_89,&g_111[7][8],&g_89}},{{(void*)0,(void*)0,(void*)0,(void*)0,&g_92,&g_111[0][6],&g_1232,&g_89,(void*)0,&g_111[3][5]},{&g_111[1][3],&g_111[1][3],&g_111[3][5],&g_1232,&g_89,(void*)0,(void*)0,&g_1232,(void*)0,&g_111[1][3]},{(void*)0,&g_92,&g_111[1][3],(void*)0,&g_111[7][8],&g_92,(void*)0,&g_92,&g_111[7][8],(void*)0}},{{&g_111[1][5],&g_89,&g_111[1][5],&g_92,&g_111[0][6],(void*)0,&g_111[1][3],&g_1232,&g_92,&g_111[1][3]},{&g_1232,&g_89,&g_111[0][6],(void*)0,(void*)0,&g_111[1][3],&g_92,&g_1232,&g_111[1][5],(void*)0},{(void*)0,&g_111[0][6],&g_111[1][5],&g_111[3][5],&g_92,&g_1232,&g_1232,&g_92,&g_111[3][5],&g_111[1][5]}},{{&g_92,&g_92,&g_111[1][3],(void*)0,(void*)0,&g_111[3][5],&g_111[1][3],&g_1232,&g_89,&g_1232},{&g_89,&g_111[7][7],&g_111[3][5],&g_111[0][6],&g_111[1][3],&g_111[1][3],&g_111[1][3],&g_89,(void*)0,(void*)0},{&g_111[6][8],&g_92,(void*)0,&g_89,&g_1232,&g_1232,&g_1232,&g_89,(void*)0,&g_92}}}; + int32_t **l_1969 = &l_1968[1][0][7]; + union U2 * const l_1970 = &g_223; + int i, j, k; + (*l_1969) = l_1968[3][2][3]; + return l_1970; +} + + +/* ------------------------------------------ */ +/* + * reads : g_2 g_53 g_54 g_231.f1 g_223.f4 g_318 g_319 g_10 g_706 g_428 g_92 g_444 g_10.f4 g_89 g_111 g_149 g_93 g_225 g_226 g_223.f0 g_428.f0 g_223.f3 g_930 g_931 g_627 g_912 g_911 g_1007 g_226.f2 g_244 g_245 g_1074 g_147 g_101 g_375 g_1198 g_604 g_814.f0 g_229 g_222 g_223 g_75 g_814.f1 g_902 g_223.f1 g_1232 g_9 g_255.f0 g_1502 g_1574 g_479 g_1695 + * writes: g_9 g_49 g_2 g_53 g_706 g_444 g_93 g_245 g_223.f0 g_149 g_111 g_223.f3 g_75 g_226.f2 g_89 g_507 g_479 g_147 g_1198 g_54 g_1399 g_231.f1 g_1502 g_931 g_92 g_1232 g_375 g_10.f3 + */ +static union U1 func_6(union U2 * p_7, const int64_t p_8) +{ /* block id: 3 */ + int16_t l_13[5][4][3] = {{{0xF903L,1L,0xF6B3L},{0x35D5L,0L,(-1L)},{(-1L),(-1L),0x6B5BL},{1L,(-1L),0xD9DCL}},{{0L,0L,(-1L)},{0xAF87L,1L,8L},{(-1L),0L,(-1L)},{0x713EL,0xD9DCL,0xD9DCL}},{{(-1L),0xF903L,0x6B5BL},{(-1L),0x6B5BL,(-1L)},{0x713EL,1L,0xF6B3L},{(-1L),0xAF87L,1L}},{{0xAF87L,1L,0x35D5L},{0L,0x6B5BL,0L},{1L,0xF903L,0L},{(-1L),0xD9DCL,0x35D5L}},{{0x35D5L,0L,1L},{0xF903L,1L,0xF6B3L},{0x35D5L,0L,(-1L)},{(-1L),(-1L),0x6B5BL}}}; + union U2 *l_19 = &g_10[0]; + union U2 **l_39 = &g_9; + union U1 l_44 = {0UL}; + union U1 *l_45 = &l_44; + int64_t *l_48 = &g_49; + uint8_t *l_50 = &g_2; + uint8_t *l_51 = (void*)0; + uint8_t *l_52 = &g_53[1]; + union U0 l_675[7][2] = {{{1L},{1L}},{{1L},{1L}},{{1L},{1L}},{{1L},{1L}},{{1L},{1L}},{{1L},{1L}},{{1L},{1L}}}; + union U1 l_1377 = {1UL}; + uint16_t ***l_1529 = (void*)0; + uint16_t **** const l_1528[1] = {&l_1529}; + int32_t *l_1542 = (void*)0; + int32_t *l_1550 = &g_1232; + int8_t *l_1555[8]; + uint64_t *l_1556 = &g_10[9].f3; + uint64_t *l_1557[3]; + int16_t ** const l_1561 = &g_136[1][4]; + int32_t l_1672 = 0xE1877820L; + int32_t l_1673 = 5L; + int16_t l_1674 = 0xF8F5L; + int32_t l_1675 = (-10L); + int32_t l_1676 = 0xEAAD7C91L; + int32_t l_1677[7][2] = {{0L,0L},{0L,0L},{0L,7L},{0L,0L},{0L,0L},{0L,0L},{7L,0L}}; + int8_t l_1691[1]; + int32_t l_1694 = 1L; + int32_t l_1697 = (-9L); + int16_t l_1698 = (-1L); + uint32_t l_1699 = 0xEC9D5EB3L; + uint8_t l_1731 = 6UL; + union U2 l_1738 = {1L}; + uint32_t ***l_1778 = &g_911; + union U1 **l_1828 = &l_45; + union U1 ***l_1827 = &l_1828; + uint32_t l_1855 = 9UL; + const uint64_t *l_1863 = &g_1864[1][0][1]; + union U2 ***l_1904 = &g_54; + union U2 ****l_1903 = &l_1904; + int32_t l_1911[2][6][2] = {{{0x3EBE484EL,0x9E187370L},{3L,0x9E187370L},{0x3EBE484EL,3L},{1L,1L},{1L,3L},{0x3EBE484EL,0x9E187370L}},{{3L,0x9E187370L},{0x3EBE484EL,3L},{1L,1L},{1L,3L},{0x3EBE484EL,0x9E187370L},{3L,0x9E187370L}}}; + union U0 l_1940 = {0xFC0AL}; + uint64_t l_1951 = 18446744073709551613UL; + int i, j, k; + for (i = 0; i < 8; i++) + l_1555[i] = &g_229[0][0][3].f1; + for (i = 0; i < 3; i++) + l_1557[i] = &g_223.f3; + for (i = 0; i < 1; i++) + l_1691[i] = (-2L); + if ((safe_mul_func_uint8_t_u_u(0x1AL, (l_13[1][0][1] & (safe_div_func_uint64_t_u_u(func_16((g_2 , (l_13[3][2][0] <= (l_19 == (func_20(((safe_mul_func_int16_t_s_s(((safe_mod_func_int8_t_s_s(func_26((func_33(((*l_39) = &g_10[9]), func_40((((*l_52) &= ((*l_50) = (!((((l_13[1][0][1] >= (((*l_45) = l_44) , ((safe_mod_func_int64_t_s_s(((*l_48) = (&g_10[1] == l_19)), p_8)) && l_13[1][0][2]))) , l_13[2][2][1]) ^ 0x68L) > l_13[3][0][2])))) , (void*)0), g_54, p_7), l_675[6][1], l_13[3][0][2], l_19) <= 0UL), g_223.f4, (*g_318), (*l_19)), p_8)) <= p_8), 0x6D7BL)) , p_7)) , (void*)0)))), l_1377), 0xC3FDE676F061A725LL)))))) + { /* block id: 645 */ + int16_t l_1486 = 0x7754L; + uint8_t **l_1493 = &g_931; + uint32_t *l_1500 = &l_1377.f0; + uint32_t **l_1501[7][5][6] = {{{&l_1500,&g_912,&l_1500,&l_1500,(void*)0,(void*)0},{(void*)0,&g_912,&g_912,&l_1500,&l_1500,&g_912},{&l_1500,&l_1500,&l_1500,&l_1500,&l_1500,(void*)0},{&l_1500,(void*)0,(void*)0,&g_912,(void*)0,&l_1500},{&l_1500,&l_1500,(void*)0,&g_912,&l_1500,(void*)0}},{{&l_1500,&g_912,&l_1500,(void*)0,&l_1500,&g_912},{(void*)0,&l_1500,&g_912,&l_1500,&g_912,(void*)0},{&g_912,&l_1500,&l_1500,&l_1500,&l_1500,&l_1500},{&l_1500,&g_912,&g_912,&g_912,(void*)0,&l_1500},{&l_1500,&l_1500,&g_912,&g_912,(void*)0,(void*)0}},{{&l_1500,&l_1500,&l_1500,&g_912,(void*)0,&g_912},{(void*)0,&g_912,&l_1500,&g_912,&l_1500,&l_1500},{(void*)0,&l_1500,&l_1500,&g_912,&g_912,&g_912},{&g_912,&l_1500,&g_912,&g_912,&l_1500,&g_912},{&g_912,&g_912,&g_912,&g_912,&l_1500,&l_1500}},{{(void*)0,&l_1500,&l_1500,&g_912,(void*)0,&g_912},{(void*)0,(void*)0,&g_912,&g_912,&l_1500,&l_1500},{&g_912,&l_1500,&l_1500,&g_912,&l_1500,&g_912},{&g_912,&g_912,(void*)0,&g_912,(void*)0,&g_912},{(void*)0,&g_912,&g_912,&g_912,(void*)0,&g_912}},{{(void*)0,&g_912,&l_1500,&g_912,&l_1500,(void*)0},{&l_1500,&g_912,(void*)0,&g_912,&l_1500,(void*)0},{&l_1500,&g_912,&l_1500,&g_912,&l_1500,&g_912},{&l_1500,(void*)0,&g_912,&l_1500,&g_912,&g_912},{&g_912,&l_1500,&l_1500,&g_912,&l_1500,&l_1500}},{{(void*)0,&l_1500,&l_1500,(void*)0,(void*)0,&g_912},{&g_912,&g_912,&g_912,&l_1500,&g_912,&g_912},{&l_1500,&l_1500,&g_912,(void*)0,&g_912,&l_1500},{&l_1500,&g_912,&g_912,&g_912,(void*)0,&l_1500},{&l_1500,&l_1500,(void*)0,(void*)0,&l_1500,&l_1500}},{{&l_1500,&l_1500,(void*)0,&g_912,&l_1500,&g_912},{&l_1500,(void*)0,&l_1500,&g_912,(void*)0,&g_912},{&l_1500,&g_912,&l_1500,&g_912,&l_1500,&l_1500},{&g_912,&g_912,(void*)0,&g_912,&g_912,&g_912},{&l_1500,&g_912,(void*)0,&g_912,&l_1500,&l_1500}}}; + int i, j, k; + l_1486 &= ((void*)0 == &g_931); + l_1377.f1 ^= (l_44.f1 &= ((safe_lshift_func_int8_t_s_u((safe_lshift_func_uint16_t_u_u((safe_div_func_uint64_t_u_u(((void*)0 != l_1493), ((safe_add_func_int16_t_s_s((safe_rshift_func_uint8_t_u_u((safe_add_func_int32_t_s_s(0xFC0D237BL, (((*g_911) == (g_1502 = l_1500)) , (l_1486 == (((*g_902) , (((void*)0 != l_1500) < p_8)) , 0L))))), (**g_930))), l_1486)) , g_1007))), p_8)), (*g_931))) & p_8)); + } + else + { /* block id: 650 */ + int8_t l_1503 = (-1L); + int8_t *l_1530 = (void*)0; + int32_t *l_1531 = &g_92; + int32_t *l_1532 = &g_1232; + union U1 l_1537 = {0x0E8069F6L}; + (*l_1532) |= ((1L ^ l_1503) & ((safe_div_func_uint64_t_u_u((safe_div_func_int64_t_s_s(((l_1503 >= (-1L)) || (((((*l_1531) = ((((*g_930) = func_70(((safe_mod_func_uint32_t_u_u(p_8, (safe_rshift_func_int16_t_s_u(((l_44.f1 = (safe_mul_func_uint8_t_u_u((((*l_48) = ((safe_div_func_uint16_t_u_u((+0xA86AL), (safe_rshift_func_int16_t_s_s((safe_add_func_uint64_t_u_u((safe_div_func_int16_t_s_s(((safe_add_func_uint16_t_u_u((safe_mod_func_uint8_t_u_u((safe_mul_func_uint8_t_u_u(((void*)0 != l_1528[0]), l_44.f0)), 1L)), l_1503)) >= l_675[6][1].f0), l_1377.f1)), g_223.f1)), l_1503)))) && 0xBAL)) , l_44.f0), 0x20L))) >= p_8), 7)))) <= 65531UL), p_8, l_52)) == (void*)0) || l_1503)) && 0x71B749F4L) < 7L) <= p_8)), 0x09F26AADB4610C8FLL)), p_8)) >= 4294967292UL)); + (*l_1531) = ((((safe_rshift_func_int16_t_s_u((((safe_mul_func_int8_t_s_s(((((((void*)0 == l_48) , ((l_1537 , (~1L)) != (safe_mul_func_uint16_t_u_u((p_8 <= ((safe_mod_func_int8_t_s_s(((void*)0 == l_1542), (((func_20((*l_39)) , (*g_318)) <= g_255.f0) | 0xDEL))) , 0x18L)), l_675[6][1].f0)))) >= p_8) < p_8) <= l_13[2][0][0]), l_675[6][1].f1)) >= 4L) < (*l_1531)), (*l_1531))) , (-1L)) & g_627) , 0x66A190CFL); + for (g_375 = 14; (g_375 == 5); g_375--) + { /* block id: 659 */ + union U1 l_1545 = {0x21DB83E7L}; + return l_1545; + } + } + (*l_1550) &= (safe_lshift_func_uint8_t_u_u((safe_rshift_func_uint8_t_u_u(((((((&g_1459 == (void*)0) && (*g_318)) , (*g_911)) == ((*l_45) , (*g_911))) <= 0xC39A113BL) == l_675[6][1].f1), 5)), 5)); + if (((p_8 > ((l_1377.f1 ^= ((g_444 = ((safe_mul_func_int8_t_s_s(p_8, ((*l_1550) = (p_8 ^ ((*l_1550) || ((8UL == (*l_1550)) | (((*l_45) , &g_479) == l_52))))))) && g_814.f1)) && p_8)) < 0xA9CC9107554708AALL)) <= l_675[6][1].f0)) + { /* block id: 667 */ + int32_t *l_1558 = (void*)0; + l_1558 = l_1542; + return (*g_902); + } + else + { /* block id: 670 */ + uint32_t *l_1566 = &g_375; + int32_t l_1569 = 0x08A23406L; + union U1 *l_1570 = &l_44; + uint32_t *l_1571 = (void*)0; + uint32_t *l_1572[8] = {&g_10[9].f2,&g_10[9].f2,&g_10[9].f2,&g_10[9].f2,&g_10[9].f2,&g_10[9].f2,&g_10[9].f2,&g_10[9].f2}; + int32_t l_1573 = 0xA3C5E453L; + uint16_t *l_1600 = (void*)0; + uint16_t *l_1601 = &g_245; + uint32_t l_1608 = 0x9F9F4AECL; + int32_t l_1632[6] = {0xD2B77DEEL,0xD2B77DEEL,0x2136032EL,0xD2B77DEEL,0xD2B77DEEL,0x2136032EL}; + int32_t ***l_1653 = (void*)0; + int32_t *l_1684 = &g_89; + int32_t l_1692 = (-1L); + int64_t l_1696 = 1L; + int16_t *l_1726 = &l_13[3][1][2]; + int8_t *l_1770[1]; + int8_t l_1819[9] = {0L,0L,0L,0L,0L,0L,0L,0L,0L}; + union U0 l_1929 = {0L}; + int32_t l_1950 = 0x0CB4EE2CL; + int i; + for (i = 0; i < 1; i++) + l_1770[i] = &l_1691[0]; + if (((((*l_1556) = ((((((*g_1502) = (safe_mul_func_int8_t_s_s(((l_1561 == &g_136[5][3]) && 0x9A21L), ((((*l_1550) |= (+((l_1569 = (safe_lshift_func_uint16_t_u_s((((safe_mod_func_uint32_t_u_u((l_1566 == (void*)0), p_8)) == (safe_sub_func_int16_t_s_s(l_1569, (1UL >= ((g_1198[6][4] , l_1570) == l_1570))))) > 0L), l_1569))) , 65535UL))) && 0x1566L) >= l_1573)))) > l_1573) & l_1573) | p_8) == (*g_931))) , 0L) > l_1573)) + { /* block id: 675 */ + return g_1574[1]; + } + else + { /* block id: 677 */ + union U1 **l_1595 = &g_1459; + int32_t l_1596 = 0x29729CF3L; + int32_t *l_1612 = &l_1596; + int8_t l_1655 = 0L; + int32_t l_1669 = 0x1660C04CL; + int32_t l_1670[8][7][3] = {{{0x3317BB98L,(-3L),0x534DB89AL},{0xF05BDE44L,0xD135A330L,0x4166F292L},{0x7DC4BDB8L,0x82C06C68L,0xC513462EL},{0x7DC4BDB8L,0xFDAF309DL,0x33BA3285L},{0xF05BDE44L,5L,0L},{0x3317BB98L,0xFDAF309DL,0x42993B24L},{0xD135A330L,0x82C06C68L,0x42993B24L}},{{0xE8018D86L,0xD135A330L,0L},{(-3L),(-3L),0x33BA3285L},{0xE8018D86L,0x3317BB98L,0xC513462EL},{0xD135A330L,0x3317BB98L,0x4166F292L},{0x3317BB98L,(-3L),0x534DB89AL},{0xF05BDE44L,0xD135A330L,0x4166F292L},{0x7DC4BDB8L,0x82C06C68L,0xC513462EL}},{{0x7DC4BDB8L,0xFDAF309DL,0x33BA3285L},{0xF05BDE44L,5L,0L},{0x3317BB98L,0xFDAF309DL,0x42993B24L},{0xD135A330L,0x82C06C68L,0x42993B24L},{0xE8018D86L,0xD135A330L,0L},{(-3L),(-3L),0x33BA3285L},{0xE8018D86L,0x3317BB98L,0xC513462EL}},{{0xD135A330L,0x3317BB98L,0x4166F292L},{0x3317BB98L,(-3L),0x534DB89AL},{0xF05BDE44L,0xD135A330L,0x4166F292L},{0x7DC4BDB8L,0x82C06C68L,0xC513462EL},{0x7DC4BDB8L,0xFDAF309DL,0x33BA3285L},{0xF05BDE44L,5L,0L},{0x3317BB98L,0xFDAF309DL,0x42993B24L}},{{0xD135A330L,0x82C06C68L,0x42993B24L},{0xE8018D86L,0xD135A330L,0L},{(-3L),(-3L),0x33BA3285L},{0xE8018D86L,0x3317BB98L,0xC513462EL},{0xD135A330L,0x3317BB98L,0x4166F292L},{0x3317BB98L,(-3L),0x534DB89AL},{1L,0x5984A900L,0x7DC4BDB8L}},{{(-1L),0xC4140F93L,5L},{(-1L),(-1L),(-3L)},{1L,0x3633256DL,0xFDAF309DL},{8L,(-1L),0xF05BDE44L},{0x5984A900L,0xC4140F93L,0xF05BDE44L},{0x2E44F393L,0x5984A900L,0xFDAF309DL},{0x1E79692DL,0x1E79692DL,(-3L)}},{{0x2E44F393L,8L,5L},{0x5984A900L,8L,0x7DC4BDB8L},{8L,0x1E79692DL,0x14C84822L},{1L,0x5984A900L,0x7DC4BDB8L},{(-1L),0xC4140F93L,5L},{(-1L),(-1L),(-3L)},{1L,0x3633256DL,0xFDAF309DL}},{{8L,(-1L),0xF05BDE44L},{0x5984A900L,0xC4140F93L,0xF05BDE44L},{0x2E44F393L,0x5984A900L,0xFDAF309DL},{0x1E79692DL,0x1E79692DL,(-3L)},{0x2E44F393L,8L,5L},{0x5984A900L,8L,0x7DC4BDB8L},{8L,0x1E79692DL,0x14C84822L}}}; + int8_t l_1671 = 1L; + const union U2 l_1683 = {-10L}; + int32_t l_1685[3]; + int32_t *l_1686 = &l_1676; + int32_t *l_1687 = &l_1669; + int32_t *l_1688 = &g_89; + int32_t *l_1689 = &l_1573; + int32_t *l_1690[5]; + const int16_t *l_1714 = &l_675[6][1].f0; + int i, j, k; + for (i = 0; i < 3; i++) + l_1685[i] = 9L; + for (i = 0; i < 5; i++) + l_1690[i] = &l_1632[2]; + for (g_706 = 2; (g_706 >= 0); g_706 -= 1) + { /* block id: 680 */ + uint16_t *l_1581 = &g_245; + uint16_t ** const l_1580 = &l_1581; + uint16_t ** const *l_1579 = &l_1580; + int32_t l_1597 = 9L; + union U1 *l_1599 = &l_44; + int32_t l_1611 = (-1L); + uint8_t * const *l_1646 = (void*)0; + uint32_t **l_1649 = &l_1566; + int32_t l_1667[8] = {2L,(-2L),2L,(-2L),2L,(-2L),2L,(-2L)}; + int i; + for (g_479 = 2; (g_479 >= 0); g_479 -= 1) + { /* block id: 683 */ + uint32_t l_1585 = 1UL; + union U1 ***l_1592 = (void*)0; + union U1 **l_1594[6][4][8] = {{{&g_1459,&g_1459,&g_1459,&g_1459,&g_1459,&g_1459,&l_1570,&l_45},{(void*)0,(void*)0,(void*)0,&l_45,&l_45,(void*)0,&g_1459,&l_45},{(void*)0,(void*)0,&l_45,&g_1459,&g_1459,&g_1459,&l_45,(void*)0},{&l_1570,&g_1459,&l_1570,&l_45,&l_1570,&l_45,&g_1459,&l_1570}},{{(void*)0,&l_1570,&g_1459,&l_1570,(void*)0,&l_1570,&g_1459,(void*)0},{&l_1570,&g_1459,&g_1459,&l_1570,&l_1570,&l_45,&l_1570,&l_1570},{(void*)0,&l_1570,(void*)0,&l_1570,&l_1570,&g_1459,(void*)0,&g_1459},{(void*)0,&l_1570,(void*)0,&l_45,(void*)0,(void*)0,(void*)0,&l_45}},{{&g_1459,&l_45,(void*)0,&l_1570,&l_45,(void*)0,&l_45,&g_1459},{(void*)0,&g_1459,&l_45,&l_45,&l_1570,&l_45,&l_45,&g_1459},{&g_1459,(void*)0,&g_1459,&l_45,&l_45,&l_45,(void*)0,&l_1570},{(void*)0,&l_45,&l_1570,(void*)0,&g_1459,(void*)0,(void*)0,&g_1459}},{{&l_1570,(void*)0,&g_1459,&l_45,(void*)0,&g_1459,&l_45,&l_1570},{(void*)0,&g_1459,&l_45,&l_1570,&g_1459,&g_1459,&l_45,&l_1570},{&l_45,&g_1459,(void*)0,(void*)0,&g_1459,&g_1459,&l_45,(void*)0},{&g_1459,&g_1459,&l_45,&g_1459,(void*)0,(void*)0,&l_1570,&l_1570}},{{&g_1459,&l_1570,&g_1459,&l_1570,&l_1570,&l_1570,(void*)0,&g_1459},{&g_1459,(void*)0,&l_45,&g_1459,&l_1570,(void*)0,(void*)0,&g_1459},{&l_45,&l_45,&l_45,&g_1459,&g_1459,&g_1459,&l_1570,&l_1570},{(void*)0,&l_1570,&l_45,&l_45,&l_1570,(void*)0,&g_1459,(void*)0}},{{&l_1570,(void*)0,&g_1459,(void*)0,&g_1459,(void*)0,&g_1459,&g_1459},{&l_45,&g_1459,&g_1459,(void*)0,&l_45,&g_1459,&l_45,(void*)0},{&l_1570,&l_45,(void*)0,&l_45,&l_45,(void*)0,&l_45,&l_1570},{&g_1459,&g_1459,(void*)0,&g_1459,&l_45,(void*)0,&g_1459,&g_1459}}}; + union U1 ***l_1593 = &l_1594[0][3][0]; + int32_t l_1598[6][6] = {{0x3EEF7D26L,0xA3191B49L,0x3EEF7D26L,1L,0xF4E79753L,0x3EEF7D26L},{(-5L),0xCF041577L,1L,0xE57F6CC9L,0xF4E79753L,(-5L)},{1L,0xA3191B49L,0xE57F6CC9L,0xE57F6CC9L,0xA3191B49L,1L},{(-5L),0xF4E79753L,0xE57F6CC9L,1L,0xCF041577L,(-5L)},{0x3EEF7D26L,0xF4E79753L,1L,0x3EEF7D26L,0xA3191B49L,0x3EEF7D26L},{0x3EEF7D26L,0xA3191B49L,0x3EEF7D26L,1L,0xF4E79753L,0x3EEF7D26L}}; + union U0 ***l_1604 = (void*)0; + union U0 ***l_1605 = &g_815; + int16_t *l_1609[8][9][2] = {{{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0}},{{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0}},{{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0}},{{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0}},{{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0}},{{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0}},{{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0}},{{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0},{&g_75,(void*)0},{&l_13[1][0][1],(void*)0}}}; + int32_t l_1610 = 0L; + int i, j, k; + } + for (g_75 = 2; (g_75 >= 0); g_75 -= 1) + { /* block id: 732 */ + int8_t l_1654 = 0L; + int32_t l_1668[5]; + uint64_t l_1678[9]; + int i; + for (i = 0; i < 5; i++) + l_1668[i] = 1L; + for (i = 0; i < 9; i++) + l_1678[i] = 18446744073709551615UL; + } + } + l_1550 = l_1684; + --l_1699; + (*l_1688) = (safe_div_func_int16_t_s_s((((g_444 = ((*l_1684) <= (*g_244))) >= (safe_mod_func_uint64_t_u_u((safe_mod_func_int32_t_s_s(((*l_1686) = (((g_1695 < ((safe_sub_func_uint8_t_u_u((safe_div_func_uint16_t_u_u(((safe_sub_func_uint16_t_u_u(((0x696A82E2L & ((((void*)0 != l_1714) , (safe_add_func_uint64_t_u_u((safe_unary_minus_func_uint8_t_u((safe_add_func_int16_t_s_s(0x5C2EL, (safe_add_func_uint32_t_u_u((safe_add_func_uint64_t_u_u(((void*)0 != &l_1608), p_8)), p_8)))))), g_319))) & (*l_1686))) <= 0x911E72491D7C01F5LL), 0x41B8L)) != p_8), 2UL)), g_75)) , (-6L))) , (*g_931)) != (*g_931))), 0xE8F5704DL)), p_8))) == 0xD20EL), (*g_244))); + } + l_1731 = ((0x5465FD2D39850ADCLL && ((p_8 | ((((safe_lshift_func_uint16_t_u_s(p_8, ((*l_1726) = (!((*l_1684) = p_8))))) , (p_8 == (l_1572[7] == ((safe_mul_func_int8_t_s_s(0x36L, (*l_1550))) , (((safe_sub_func_uint64_t_u_u(((g_10[9].f4 ^ (*g_318)) <= (*l_1550)), 18446744073709551615UL)) == p_8) , &g_1007))))) | p_8) > p_8)) != 0x0EL)) , (*l_1550)); + for (l_1608 = 0; (l_1608 != 16); ++l_1608) + { /* block id: 763 */ + int16_t l_1741 = 0x6876L; + uint16_t *l_1742 = &g_1743; + int32_t * const *l_1745[4] = {&l_1550,&l_1550,&l_1550,&l_1550}; + int32_t * const **l_1744 = &l_1745[2]; + uint32_t ***l_1752 = &g_911; + union U2 *l_1779 = &g_10[7]; + uint64_t l_1802 = 18446744073709551615UL; + uint8_t * const *l_1809 = &l_50; + uint32_t l_1820 = 0xA20A1AFDL; + uint16_t * const *l_1853 = &l_1601; + uint16_t * const **l_1852 = &l_1853; + uint16_t * const ***l_1851 = &l_1852; + int32_t l_1854[10][7][3] = {{{0xB2A1302FL,5L,7L},{(-1L),1L,(-1L)},{6L,(-1L),0x2617E67EL},{0x055AC6CEL,0x2617E67EL,0x055AC6CEL},{0L,0x9966CFEAL,0x7F53882FL},{0L,0x3BA83663L,0x2E0E4AE9L},{0xC3E47ADDL,1L,0x8BBFA625L}},{{0x2617E67EL,0x7F53882FL,(-1L)},{0xC3E47ADDL,1L,0x199D5833L},{0L,0x85A3A27FL,1L},{0L,7L,8L},{0x055AC6CEL,(-1L),8L},{6L,3L,0x8139E0D0L},{(-1L),8L,(-1L)}},{{0xB2A1302FL,(-1L),1L},{(-1L),0xC3F8B041L,0L},{(-1L),0xA1D8305EL,0x228FD4CBL},{(-1L),0xB386BFE8L,0xDE9C09DDL},{0xA1D8305EL,0L,(-1L)},{(-1L),0L,0x6259268EL},{0x9D15D649L,0xB386BFE8L,1L}},{{0x2E0E4AE9L,0xA1D8305EL,0xE9DBB44FL},{1L,0xC3F8B041L,(-6L)},{0x1EDDD83FL,(-1L),0xB386BFE8L},{0x8BBFA625L,8L,0L},{1L,3L,0x94D57003L},{0x0E07BC25L,(-1L),0x3BA83663L},{7L,7L,0x0E07BC25L}},{{3L,0x85A3A27FL,0xC3E47ADDL},{1L,1L,0xC9E9E146L},{(-1L),0x7F53882FL,(-6L)},{0L,1L,0xC9E9E146L},{(-1L),0x3BA83663L,0xC3E47ADDL},{0x8139E0D0L,0x9966CFEAL,0x0E07BC25L},{1L,0x2617E67EL,0x3BA83663L}},{{8L,(-1L),0x94D57003L},{0x378498A2L,1L,0L},{(-6L),5L,0xB386BFE8L},{0x86784362L,0xC9E9E146L,(-6L)},{0xA48CE08BL,0x86784362L,0xE9DBB44FL},{0xDE9C09DDL,0L,6L},{1L,0L,0xB386BFE8L}},{{(-2L),0x9D15D649L,0xC9E9E146L},{(-2L),0L,0L},{1L,0x2E0E4AE9L,0xA1D8305EL},{0L,0x3A4500ACL,0L},{(-1L),0x2DFA94E1L,8L},{0x8139E0D0L,8L,0xC3E47ADDL},{0x6259268EL,(-6L),(-1L)}},{{(-9L),0xA1D8305EL,(-1L)},{(-1L),0x9966CFEAL,0x9966CFEAL},{0x2DFA94E1L,0x7F53882FL,0x73C793C8L},{(-1L),(-1L),0x2E0E4AE9L},{0xC3F8B041L,1L,0x75B2328CL},{0xE9DBB44FL,6L,0L},{5L,1L,0x100E7AA8L}},{{(-1L),(-1L),0L},{(-1L),0x7F53882FL,3L},{0L,0x9966CFEAL,(-1L)},{0x8BBFA625L,0xA1D8305EL,0xC3F8B041L},{8L,(-6L),0L},{0L,8L,0x7F53882FL},{8L,0x2DFA94E1L,1L}},{{0x73C793C8L,0x3A4500ACL,0x640675F7L},{0x100E7AA8L,0x2E0E4AE9L,0x055AC6CEL},{1L,0L,(-1L)},{0xC3E47ADDL,0x9D15D649L,(-1L)},{0xB2A1302FL,0L,0x055AC6CEL},{0x75B2328CL,0L,0x640675F7L},{0L,0x8139E0D0L,1L}}}; + uint64_t l_1867 = 18446744073709551612UL; + union U1 l_1891 = {4294967291UL}; + union U2 ***l_1901 = &l_39; + union U2 ****l_1900[10][2] = {{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901},{&l_1901,&l_1901}}; + union U2 *****l_1902 = (void*)0; + int8_t l_1936 = (-1L); + uint32_t l_1937 = 0x8A6D3A2FL; + int i, j, k; + } + } + return (*g_902); +} + + +/* ------------------------------------------ */ +/* + * reads : g_444 g_223.f0 g_75 g_244 g_245 g_814.f1 g_318 g_319 g_53 g_89 g_149 g_92 + * writes: g_444 g_75 g_1399 g_231.f1 g_89 g_149 g_507 + */ +static const uint64_t func_16(uint64_t p_17, union U1 p_18) +{ /* block id: 592 */ + int8_t l_1386 = 0xEBL; + uint16_t *l_1389 = &g_444; + uint64_t l_1393 = 18446744073709551615UL; + uint32_t ***l_1394 = &g_911; + int16_t *l_1395 = &g_75; + uint16_t *l_1398[4][6] = {{&g_245,&g_245,(void*)0,(void*)0,&g_245,&g_245},{&g_245,&g_245,(void*)0,(void*)0,&g_245,(void*)0},{&g_245,&g_245,&g_245,(void*)0,&g_245,(void*)0},{&g_245,&g_245,(void*)0,(void*)0,&g_245,&g_245}}; + int32_t l_1400 = 0L; + int32_t l_1401 = 0xADEB96C4L; + uint16_t l_1405 = 0xFE0CL; + int32_t ***l_1409 = &g_251[3]; + union U0 l_1422 = {0x3EC3L}; + int64_t l_1423 = 0L; + int32_t l_1479[10] = {0x48A6F4D1L,7L,0x48A6F4D1L,0x48A6F4D1L,7L,0x48A6F4D1L,0x48A6F4D1L,7L,0x48A6F4D1L,0x48A6F4D1L}; + int i, j; + if ((safe_rshift_func_int16_t_s_s(p_18.f0, (safe_div_func_int16_t_s_s((safe_add_func_int16_t_s_s((l_1400 = ((safe_add_func_int32_t_s_s(((l_1386 ^ (((*l_1395) = (safe_div_func_uint16_t_u_u(((*l_1389) = ((-8L) && 6UL)), (safe_unary_minus_func_uint8_t_u((safe_rshift_func_int16_t_s_s(l_1393, (l_1394 == l_1394)))))))) != 0xE77CL)) , ((((g_1399[2][0][3] = ((*l_1389) |= (safe_div_func_int8_t_s_s((0L >= 0xE9FB419A1EFB1097LL), (-1L))))) | 0x08C3L) || g_223.f0) != l_1393)), (-2L))) , l_1386)), l_1401)), l_1386))))) + { /* block id: 598 */ + union U1 l_1402 = {4294967295UL}; + int8_t *l_1406 = &g_231[2][3][1].f1; + int32_t ***l_1410 = &g_251[3]; + int32_t *l_1411[3][10] = {{(void*)0,(void*)0,(void*)0,&g_111[7][6],&g_1232,(void*)0,&l_1400,(void*)0,&g_1232,&g_111[7][6]},{&g_111[7][6],&g_111[5][1],&g_111[7][6],(void*)0,(void*)0,&g_111[1][3],&l_1400,&l_1400,&g_111[1][3],(void*)0},{(void*)0,(void*)0,(void*)0,(void*)0,&g_111[7][6],&g_1232,(void*)0,&l_1400,(void*)0,&g_1232}}; + int i, j; + l_1423 = ((l_1402 , ((l_1402.f1 = (((*l_1406) = l_1405) == (-1L))) | (((safe_mod_func_int8_t_s_s((0xB61EL && (((l_1400 && (p_18.f1 ^= (l_1409 != l_1410))) && (safe_lshift_func_uint16_t_u_s((safe_add_func_int8_t_s_s((p_18.f1 , (safe_rshift_func_int16_t_s_u(((safe_mod_func_uint32_t_u_u(((safe_sub_func_uint16_t_u_u((((*l_1395) &= (((l_1422 , p_17) , 0xF25EF439L) == p_17)) , 9UL), p_17)) & 0UL), 0xD5507FF8L)) == (*g_244)), 2))), p_17)), p_17))) | p_17)), g_814.f1)) <= (*g_318)) != g_53[1]))) > 0x2F5002ECB99A8F88LL); + for (g_89 = 0; (g_89 != 23); g_89 = safe_add_func_uint8_t_u_u(g_89, 1)) + { /* block id: 606 */ + uint32_t l_1426 = 0x9900E60AL; + int32_t *l_1436 = &g_1232; + uint32_t l_1445 = 4294967295UL; + int32_t l_1460 = 8L; + int32_t l_1478[2]; + uint32_t l_1480 = 0x8DC4F29BL; + int i; + for (i = 0; i < 2; i++) + l_1478[i] = 2L; + ++l_1426; + for (g_149 = 0; (g_149 >= (-5)); g_149 = safe_sub_func_int16_t_s_s(g_149, 1)) + { /* block id: 610 */ + int32_t *l_1433 = (void*)0; + int32_t *l_1437 = &g_111[1][3]; + union U1 *l_1456[4]; + union U2 ***l_1473 = (void*)0; + union U2 **** const l_1472 = &l_1473; + int32_t l_1477 = (-9L); + int i; + for (i = 0; i < 4; i++) + l_1456[i] = &g_428[0][0][2]; + } + --l_1480; + } + } + else + { /* block id: 639 */ + int16_t *l_1483 = &g_507; + int32_t *l_1484 = (void*)0; + int32_t *l_1485 = &l_1400; + (*l_1485) &= ((((*l_1483) = ((*l_1395) ^= p_17)) != (p_17 > g_92)) || (*g_318)); + } + return (*g_318); +} + + +/* ------------------------------------------ */ +/* + * reads : g_2 g_93 g_225 g_226 g_223.f0 g_149 g_231.f1 g_428.f0 g_92 g_223.f3 g_930 g_931 g_627 g_912 g_318 g_319 g_911 g_1007 g_89 g_226.f2 g_244 g_245 g_10.f4 g_444 g_428 g_1074 g_147 g_101 g_375 g_1198 g_604 g_814.f0 g_229 g_53 g_706 g_222 g_223 + * writes: g_93 g_245 g_223.f0 g_149 g_111 g_223.f3 g_75 g_2 g_226.f2 g_89 g_444 g_507 g_479 g_147 g_1198 g_54 g_706 g_53 + */ +static union U2 func_20(union U2 * p_21) +{ /* block id: 334 */ + int64_t l_751 = 0x5E75AE4C622A21C5LL; + union U2 * const l_752[8][4] = {{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]},{&g_10[9],&g_10[9],&g_10[9],&g_10[9]}}; + int32_t l_759 = 0x817DE0C4L; + uint16_t l_792 = 0xE74AL; + union U0 **l_817 = &g_225; + uint16_t l_822[3][6]; + uint32_t l_857[7][2][6] = {{{0x151888D0L,0x069C0D93L,0x151888D0L,4294967294UL,0x52F0D1DCL,0x151888D0L},{4294967295UL,0x8F364602L,4294967294UL,1UL,0x52F0D1DCL,4294967295UL}},{{4294967294UL,0x069C0D93L,1UL,1UL,0x069C0D93L,4294967294UL},{4294967295UL,0x52F0D1DCL,1UL,4294967294UL,0x8F364602L,4294967295UL}},{{0x151888D0L,0x52F0D1DCL,4294967294UL,0x151888D0L,0x069C0D93L,0x151888D0L},{0x151888D0L,0x069C0D93L,0x151888D0L,4294967294UL,0x52F0D1DCL,0x151888D0L}},{{4294967295UL,0x8F364602L,4294967294UL,1UL,0x52F0D1DCL,4294967295UL},{4294967294UL,0x069C0D93L,1UL,1UL,0x069C0D93L,4294967294UL}},{{4294967295UL,0x52F0D1DCL,1UL,4294967294UL,0x8F364602L,4294967295UL},{0x151888D0L,0x52F0D1DCL,4294967294UL,0x151888D0L,0x069C0D93L,0x151888D0L}},{{0x151888D0L,0x069C0D93L,0x151888D0L,4294967294UL,0x52F0D1DCL,0x151888D0L},{4294967295UL,0x8F364602L,4294967294UL,1UL,0x52F0D1DCL,4294967295UL}},{{4294967294UL,0x069C0D93L,1UL,1UL,0x069C0D93L,4294967294UL},{4294967295UL,0x52F0D1DCL,1UL,4294967294UL,0x8F364602L,4294967295UL}}}; + uint16_t *l_871 = &g_245; + uint16_t **l_870[10] = {&l_871,&l_871,&l_871,&l_871,&l_871,&l_871,&l_871,&l_871,&l_871,&l_871}; + uint16_t ***l_869[4]; + int8_t *l_880 = &g_147; + union U2 ***l_900 = &g_54; + union U2 ****l_899 = &l_900; + uint32_t *l_909 = &l_857[5][0][1]; + uint32_t **l_908[9][3] = {{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909},{&l_909,&l_909,&l_909}}; + uint32_t l_932 = 1UL; + int64_t l_943[1][7][4] = {{{0x31817ECD765582DFLL,0x3C4000B56088A104LL,0x3C4000B56088A104LL,0x31817ECD765582DFLL},{(-8L),5L,0L,2L},{0x0E65A79A37AC998BLL,(-1L),2L,8L},{2L,8L,(-4L),8L},{0x3C4000B56088A104LL,(-1L),0x3941FF1ADCFF6FFCLL,2L},{0x07095D56C55A0754LL,5L,8L,0x31817ECD765582DFLL},{0x3941FF1ADCFF6FFCLL,0x3C4000B56088A104LL,(-5L),(-5L)}}}; + int32_t l_964 = 6L; + int32_t l_975 = 1L; + int32_t l_976 = 0xA8F33034L; + int32_t l_980 = 1L; + int32_t l_1042 = 4L; + uint32_t l_1090 = 18446744073709551609UL; + int16_t l_1101 = 0xE3F0L; + uint8_t l_1130 = 251UL; + int32_t l_1183 = 0x99FFB991L; + int32_t l_1189 = 0x193C6D4BL; + int32_t l_1191 = 0x799703FFL; + int32_t l_1192[6][5] = {{0x7D50E986L,0x1D2A5D45L,0x1D2A5D45L,0x7D50E986L,0x1D2A5D45L},{0xB0F500FBL,0xB0F500FBL,0x9F171E12L,0xB0F500FBL,0xB0F500FBL},{0x1D2A5D45L,0x7D50E986L,0x1D2A5D45L,0x1D2A5D45L,0x7D50E986L},{0xB0F500FBL,6L,6L,0xB0F500FBL,6L},{0x7D50E986L,0x7D50E986L,(-2L),0x7D50E986L,0x7D50E986L},{6L,0xB0F500FBL,6L,6L,6L}}; + int16_t l_1212[10][3][8] = {{{0L,(-1L),4L,1L,0x39A8L,(-8L),(-9L),0x74A8L},{(-9L),2L,1L,0xE2F5L,0x43FCL,0x976FL,0xEC7EL,(-1L)},{0xE00DL,0x74A8L,0L,0xA987L,(-1L),0xAE8AL,1L,0L}},{{(-1L),(-3L),0x925EL,0xE00DL,0xEC7EL,0x74A8L,(-1L),(-1L)},{0L,0x4D21L,(-5L),0x74A8L,0x0AB7L,0x1B3AL,0L,0x1EE1L},{0xFD58L,0L,0L,(-9L),(-9L),0L,0L,0xFD58L}},{{0xE096L,0L,0x2447L,0x5CD9L,0x5027L,0L,(-4L),0x4433L},{0x0518L,(-1L),0L,1L,0x5CD9L,0L,0x0AB7L,0xEC7EL},{0xE2F5L,0L,0x450AL,0x1B3AL,(-5L),0L,0x1126L,1L}},{{0xEC7EL,0L,(-3L),0x3336L,(-6L),0x1B3AL,0x4D21L,4L},{(-1L),0x4D21L,1L,(-8L),7L,0x74A8L,(-3L),(-1L)},{(-3L),(-3L),0x8D33L,0x1EE1L,0x94DEL,0xAE8AL,(-6L),1L}},{{0x1FC3L,0x74A8L,(-5L),0x0950L,(-4L),0x976FL,0L,0x1B3AL},{1L,2L,(-1L),(-3L),0L,(-8L),1L,0xE00DL},{(-8L),(-1L),0xA987L,(-1L),0L,(-4L),4L,1L}},{{0x0950L,0x1E22L,0xAE8AL,(-1L),1L,0x5027L,0xFD58L,0x5CD9L},{0x39A8L,4L,(-8L),0L,0x1605L,0L,(-8L),4L},{2L,0L,0x74A8L,1L,4L,(-1L),0L,0xF390L}},{{0x2447L,0xFD58L,(-4L),(-8L),2L,0L,0L,0x450AL},{0x450AL,(-8L),0x74A8L,(-1L),(-3L),0x1EE1L,(-8L),0L},{(-3L),0x1EE1L,(-8L),0L,(-1L),(-1L),0xFD58L,0xEC64L}},{{(-5L),0x5CD9L,0xAE8AL,(-3L),0xB3BFL,0x0950L,4L,(-1L)},{0L,0x0AB7L,0xA987L,0x0518L,(-7L),0x4433L,1L,0L},{0xF390L,1L,(-1L),0x6038L,0x1B3AL,0xB3BFL,0xA987L,(-8L)}},{{7L,0xE2F5L,0x97EAL,0xFD58L,0x6038L,2L,0x0492L,0x5CD9L},{0x1E22L,(-1L),0xF390L,0xF2C9L,(-8L),0x0518L,0x8D48L,1L},{(-1L),1L,0x0518L,(-3L),1L,(-1L),(-3L),0L}},{{0xE2F5L,(-8L),(-1L),0L,(-1L),(-1L),0L,(-1L)},{(-4L),(-4L),0x1B3AL,(-8L),2L,0L,0xEC7EL,(-3L)},{0x0950L,0xF2C9L,0xA987L,7L,0L,(-1L),1L,(-3L)}}}; + int32_t *l_1237 = &l_1192[5][0]; + int32_t *l_1238[6][5][8] = {{{&l_980,(void*)0,&l_1192[0][0],(void*)0,&l_980,&l_964,(void*)0,&g_92},{&g_111[2][8],&l_1189,&g_111[1][3],&l_1191,&l_759,&g_111[3][4],&l_1192[5][0],&l_1189},{&g_92,&l_1192[5][0],&l_759,&g_111[1][3],&l_759,&g_1232,&l_964,&g_111[1][3]},{&l_1042,&l_964,&l_980,&l_1191,&l_980,&l_964,&l_1042,&l_1192[0][1]},{&g_111[3][8],&l_1189,&l_1192[0][0],&l_976,&l_1189,&l_1192[5][1],(void*)0,&l_980}},{{&l_980,&l_1042,&g_89,&l_1042,&l_1189,&l_1192[5][0],&l_1191,&l_1191},{&g_111[3][8],&l_976,(void*)0,&l_980,&l_980,&l_759,&g_111[5][8],&l_964},{&l_1042,&l_1192[4][0],&l_1192[5][1],&l_980,&l_759,&l_976,(void*)0,&l_976},{&g_92,&l_759,&g_1232,(void*)0,&l_759,&l_1191,&l_980,&l_980},{&g_111[2][8],&l_964,&l_1191,(void*)0,&l_980,&g_1232,&l_980,(void*)0}},{{&l_980,&g_111[3][8],&g_1232,&l_1189,(void*)0,(void*)0,&l_1192[5][0],(void*)0},{&l_759,&l_1192[5][0],&g_111[1][3],(void*)0,&g_89,&l_1189,&l_1191,(void*)0},{&l_976,&l_1192[3][1],&l_1042,&g_89,(void*)0,&l_976,&l_1042,&l_964},{&g_111[5][8],(void*)0,&g_89,&l_1189,&g_89,&g_1232,(void*)0,&l_1192[5][0]},{&l_1192[0][1],&g_111[8][4],(void*)0,&l_1042,&l_1042,&g_111[1][3],&l_1042,&l_1189}},{{&l_1192[5][0],&l_1191,&l_980,(void*)0,&l_1042,(void*)0,&g_111[3][8],&l_1192[0][1]},{&l_1042,&l_1189,&g_89,(void*)0,&l_1191,&l_759,&l_1191,&g_111[2][8]},{&g_1232,&l_1189,(void*)0,&g_111[1][3],&l_964,&g_111[1][3],&g_111[1][3],&l_964},{&l_1191,&l_964,&l_964,&l_1191,&l_1042,&l_1189,&g_111[3][5],&l_1042},{&l_980,&l_1042,&l_1042,&g_111[1][3],&l_1191,&l_1189,&g_1232,(void*)0}},{{(void*)0,&l_1042,&g_111[1][3],(void*)0,&l_980,&l_1189,&l_976,&l_1192[5][0]},{&l_980,&l_964,&l_1192[4][0],&l_1189,(void*)0,&g_111[1][3],(void*)0,&l_980},{&l_980,&g_89,&l_1189,&l_964,&g_1232,&l_976,&l_964,(void*)0},{(void*)0,&l_759,(void*)0,&g_1232,&l_980,&l_1192[4][0],&g_1232,&l_1192[0][1]},{&l_1192[5][0],&g_111[1][3],(void*)0,&g_111[1][3],&l_1192[4][0],(void*)0,&l_759,(void*)0}},{{(void*)0,&l_964,(void*)0,&l_964,&l_759,&l_1189,&l_1042,&l_980},{(void*)0,&l_964,&l_980,&l_1042,&l_964,&l_1192[0][0],&g_111[1][3],(void*)0},{&g_111[3][5],&g_1232,&l_759,&l_1191,(void*)0,(void*)0,&l_1191,(void*)0},{(void*)0,&l_759,&l_1189,&l_1192[5][0],&l_1192[0][0],&l_1042,&l_759,(void*)0},{(void*)0,&g_111[1][3],&g_89,&g_111[1][3],(void*)0,&g_111[1][3],&l_964,&l_980}}}; + int32_t l_1239 = 0x5078E770L; + int32_t l_1240 = 0L; + uint32_t l_1241 = 0x263AC74CL; + int32_t l_1251[7][5][4] = {{{0xAA29CFDBL,1L,1L,0xAA29CFDBL},{6L,1L,0x603D9C89L,1L},{1L,0x721A6F8FL,0x603D9C89L,0x603D9C89L},{6L,6L,1L,0x603D9C89L},{0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL,1L}},{{0xAA29CFDBL,1L,1L,0xAA29CFDBL},{6L,1L,0x603D9C89L,1L},{1L,0x721A6F8FL,0x603D9C89L,0x603D9C89L},{6L,6L,1L,0x603D9C89L},{0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL,1L}},{{0xAA29CFDBL,1L,1L,0xAA29CFDBL},{6L,1L,0x603D9C89L,1L},{1L,0x721A6F8FL,0x603D9C89L,0x603D9C89L},{6L,6L,1L,0x603D9C89L},{0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL,1L}},{{0xAA29CFDBL,1L,1L,0xAA29CFDBL},{6L,1L,0x603D9C89L,1L},{1L,0x721A6F8FL,0x603D9C89L,0x603D9C89L},{6L,6L,1L,0x603D9C89L},{0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL,1L}},{{0xAA29CFDBL,1L,1L,0xAA29CFDBL},{6L,1L,0x603D9C89L,1L},{1L,0x721A6F8FL,0x603D9C89L,0x721A6F8FL},{1L,1L,0xAA29CFDBL,0x721A6F8FL},{0x603D9C89L,6L,0x603D9C89L,0xAA29CFDBL}},{{0x603D9C89L,0xAA29CFDBL,0xAA29CFDBL,0x603D9C89L},{1L,0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL},{0xAA29CFDBL,6L,0x721A6F8FL,0x721A6F8FL},{1L,1L,0xAA29CFDBL,0x721A6F8FL},{0x603D9C89L,6L,0x603D9C89L,0xAA29CFDBL}},{{0x603D9C89L,0xAA29CFDBL,0xAA29CFDBL,0x603D9C89L},{1L,0xAA29CFDBL,0x721A6F8FL,0xAA29CFDBL},{0xAA29CFDBL,6L,0x721A6F8FL,0x721A6F8FL},{1L,1L,0xAA29CFDBL,0x721A6F8FL},{0x603D9C89L,6L,0x603D9C89L,0xAA29CFDBL}}}; + int16_t l_1252 = 0x8099L; + union U1 l_1296[6][10][4] = {{{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}},{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}}},{{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}},{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}}},{{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}},{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}}},{{{0x1D574646L},{0x71DBF36DL},{0x71DBF36DL},{0x1D574646L}},{{0xC1A11E5DL},{0x71DBF36DL},{4294967289UL},{0x89B10B99L}},{{0x89B10B99L},{0xC0F3DB2DL},{4294967289UL},{0x0C3A5D39L}},{{0xC1A11E5DL},{0xD393D14CL},{0x71DBF36DL},{0x0C3A5D39L}},{{0x1D574646L},{0xC0F3DB2DL},{9UL},{0x89B10B99L}},{{0x1D574646L},{9UL},{9UL},{0x0C3A5D39L}},{{0x89B10B99L},{9UL},{0xC0F3DB2DL},{0x1D574646L}},{{0x1D574646L},{0xD393D14CL},{0xC0F3DB2DL},{4294967286UL}},{{0x89B10B99L},{0x71DBF36DL},{9UL},{4294967286UL}},{{0x0C3A5D39L},{0xD393D14CL},{4294967289UL},{0x1D574646L}}},{{{0x0C3A5D39L},{9UL},{9UL},{0x0C3A5D39L}},{{0x89B10B99L},{9UL},{0xC0F3DB2DL},{0x1D574646L}},{{0x1D574646L},{0xD393D14CL},{0xC0F3DB2DL},{4294967286UL}},{{0x89B10B99L},{0x71DBF36DL},{9UL},{4294967286UL}},{{0x0C3A5D39L},{0xD393D14CL},{4294967289UL},{0x1D574646L}},{{0x0C3A5D39L},{9UL},{9UL},{0x0C3A5D39L}},{{0x89B10B99L},{9UL},{0xC0F3DB2DL},{0x1D574646L}},{{0x1D574646L},{0xD393D14CL},{0xC0F3DB2DL},{4294967286UL}},{{0x89B10B99L},{0x71DBF36DL},{9UL},{4294967286UL}},{{0x0C3A5D39L},{0xD393D14CL},{4294967289UL},{0x1D574646L}}},{{{0x0C3A5D39L},{9UL},{9UL},{0x0C3A5D39L}},{{0x89B10B99L},{9UL},{0xC0F3DB2DL},{0x1D574646L}},{{0x1D574646L},{0xD393D14CL},{0xC0F3DB2DL},{4294967286UL}},{{0x89B10B99L},{0x71DBF36DL},{9UL},{4294967286UL}},{{0x0C3A5D39L},{0xD393D14CL},{4294967289UL},{0x1D574646L}},{{0x0C3A5D39L},{9UL},{9UL},{0x0C3A5D39L}},{{0x89B10B99L},{9UL},{0xC0F3DB2DL},{0x1D574646L}},{{0x1D574646L},{0xD393D14CL},{0xC0F3DB2DL},{4294967286UL}},{{0x89B10B99L},{0x71DBF36DL},{9UL},{4294967286UL}},{{0x0C3A5D39L},{0xD393D14CL},{4294967289UL},{0x1D574646L}}}}; + uint32_t ****l_1337 = (void*)0; + uint32_t *****l_1336 = &l_1337; + int32_t l_1352 = 0L; + int i, j, k; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 6; j++) + l_822[i][j] = 4UL; + } + for (i = 0; i < 4; i++) + l_869[i] = &l_870[3]; + if ((safe_rshift_func_uint16_t_u_s((safe_mul_func_int8_t_s_s(0x74L, (g_2 >= l_751))), 10))) + { /* block id: 335 */ + uint32_t *l_757[4][4][10] = {{{(void*)0,&g_428[0][0][2].f0,&g_375,&g_375,&g_428[0][0][2].f0,(void*)0,&g_93,(void*)0,&g_428[0][0][2].f0,&g_375},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_93,&g_93,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0},{(void*)0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0,&g_428[0][0][2].f0}},{{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_93,&g_93,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375},{&g_428[0][0][2].f0,(void*)0,&g_93,(void*)0,&g_428[0][0][2].f0,&g_375,&g_375,&g_428[0][0][2].f0,(void*)0,&g_93},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93},{(void*)0,&g_428[0][0][2].f0,&g_375,&g_375,&g_428[0][0][2].f0,(void*)0,&g_93,(void*)0,&g_428[0][0][2].f0,&g_375}},{{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_93,&g_93,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,(void*)0,&g_428[0][0][2].f0,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93}},{{&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_93,&g_93,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,(void*)0,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0},{&g_428[0][0][2].f0,&g_375,&g_93,&g_93,&g_375,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_375,&g_93},{&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_93,&g_428[0][0][2].f0,&g_428[0][0][2].f0,&g_428[0][0][2].f0}}}; + int32_t l_758[1][4][8] = {{{0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL},{0x13BCAF3AL,0x13BCAF3AL,0x748F0485L,0x13BCAF3AL,0x13BCAF3AL,0x748F0485L,0x13BCAF3AL,0x13BCAF3AL},{0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL},{0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL,0x34EFA39DL,0x13BCAF3AL,0x34EFA39DL}}}; + union U1 l_762 = {0x3F18B329L}; + int32_t l_769 = 0xC76289FEL; + uint16_t *l_774 = &g_245; + union U1 l_775 = {4294967288UL}; + int32_t *l_776[10][6]; + int64_t *l_777 = &g_149; + int32_t *l_778 = &g_111[1][3]; + int32_t **l_779 = &l_778; + int i, j, k; + for (i = 0; i < 10; i++) + { + for (j = 0; j < 6; j++) + l_776[i][j] = &g_223.f0; + } + (*l_778) = (((void*)0 != l_752[1][2]) | ((*l_777) = (safe_div_func_int16_t_s_s((safe_div_func_uint32_t_u_u((++g_93), (l_762 , (safe_rshift_func_uint8_t_u_s((((safe_add_func_int16_t_s_s(((((safe_mul_func_int8_t_s_s(((0x8DD6L < l_769) | (((g_223.f0 ^= ((safe_mul_func_uint8_t_u_u((0x3C13D321L < (safe_mod_func_int8_t_s_s((((*l_774) = l_762.f0) | ((l_775 , (*g_225)) , l_758[0][2][3])), 1UL))), 0x55L)) > l_775.f0)) , 0L) | g_149)), g_231[2][3][1].f1)) && 0x9AL) , l_759) || l_759), l_759)) >= g_428[0][0][2].f0) < g_92), 6))))), l_751)))); + (*l_779) = &l_758[0][2][0]; + } + else + { /* block id: 342 */ + int8_t l_789 = 0L; + int32_t l_791 = 0xA19943A3L; + uint32_t *l_849 = (void*)0; + uint8_t *l_875 = &g_2; + union U0 *l_883 = &g_229[0][0][4]; + const union U1 *l_901 = &g_428[0][0][2]; + int32_t *l_916[9][9][2] = {{{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0}},{{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0}},{{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0}},{{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0}},{{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0},{&g_223.f0,&g_223.f0},{&g_223.f0,(void*)0},{&g_627,&g_10[9].f0},{(void*)0,&g_10[9].f0},{&g_627,(void*)0}},{{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0}},{{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0}},{{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627}},{{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0},{(void*)0,&g_627},{&g_223.f0,&g_223.f0},{&g_627,&g_223.f0},{&g_223.f0,&g_627},{(void*)0,(void*)0}}}; + int64_t l_918[7] = {0x7A51C65C262453B0LL,0x7A51C65C262453B0LL,5L,0x7A51C65C262453B0LL,0x7A51C65C262453B0LL,5L,0x7A51C65C262453B0LL}; + union U0 ***l_963[5][5][5] = {{{&l_817,&g_815,(void*)0,&l_817,(void*)0},{&g_815,(void*)0,&g_815,&g_815,&g_815},{&g_815,&l_817,&g_815,(void*)0,&l_817},{&g_815,&g_815,&l_817,(void*)0,&g_819},{&l_817,(void*)0,&g_815,&l_817,&g_819}},{{&g_819,&l_817,&l_817,&g_819,&l_817},{&l_817,(void*)0,&g_815,(void*)0,&l_817},{(void*)0,(void*)0,&g_815,(void*)0,(void*)0},{&g_819,&l_817,(void*)0,&l_817,&g_815},{&g_819,&g_815,&g_819,&g_819,&l_817}},{{(void*)0,&l_817,&g_819,&l_817,&g_815},{&g_819,&g_819,&g_815,&l_817,(void*)0},{&g_815,&g_815,&l_817,(void*)0,&l_817},{&g_815,&g_815,&g_815,&g_815,&l_817},{&g_815,&g_819,&l_817,&l_817,&g_819}},{{(void*)0,&g_819,&g_819,&g_815,&g_819},{&l_817,&g_819,&g_819,&l_817,&l_817},{&g_815,&g_815,&g_815,&g_819,&g_815},{&l_817,&g_815,&g_815,&l_817,(void*)0},{&l_817,&g_819,&g_815,&g_815,(void*)0}},{{&g_815,&l_817,&g_819,(void*)0,&l_817},{(void*)0,&g_815,&l_817,&g_815,&g_819},{(void*)0,&l_817,(void*)0,(void*)0,&l_817},{&g_819,&l_817,&g_815,&g_815,&l_817},{&l_817,&g_819,&g_815,(void*)0,&l_817}}}; + const uint8_t **l_966 = (void*)0; + const uint8_t ** const *l_965 = &l_966; + int32_t l_974 = (-6L); + int32_t l_977 = 0L; + int32_t l_978 = 0x13F01D48L; + int32_t l_979 = 1L; + int32_t l_982 = 0L; + uint64_t l_983 = 18446744073709551615UL; + uint32_t l_1013 = 0xCE3163D8L; + uint8_t l_1067 = 0xD4L; + int32_t l_1180 = 0xF57081BFL; + int32_t l_1181 = 0xFB5777F6L; + int32_t l_1182 = 0x275AD62DL; + int32_t l_1184 = 6L; + int32_t l_1185 = (-1L); + int32_t l_1186 = 0x7A2C130CL; + int32_t l_1188 = (-7L); + int32_t l_1190 = 0x38A4EFDBL; + int32_t l_1193 = 0xBF70D8C0L; + int32_t l_1194 = 1L; + int32_t l_1195 = 0x0CE7F4DEL; + int32_t l_1196 = (-2L); + int32_t l_1197[9] = {0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L,0x1F2C8116L}; + uint64_t l_1233 = 0x13588E024B8FA85ALL; + int32_t *l_1236[6][9][4] = {{{(void*)0,&l_1182,&l_1182,&l_1197[1]},{&l_1186,&l_1194,&l_1194,&l_1186},{&l_1196,&l_1185,&l_1192[5][0],&l_977},{(void*)0,&l_1184,&l_1197[7],(void*)0},{(void*)0,(void*)0,&l_1193,(void*)0},{&l_1194,&l_1184,&l_1185,&l_977},{&l_1186,&l_1185,&l_1191,&l_1186},{&l_1182,&l_1194,&l_1193,&l_1197[1]},{&l_1185,&l_1182,(void*)0,&l_1196}},{{&l_1186,&l_1197[1],&l_1197[1],&l_1185},{&l_1195,(void*)0,&l_1193,&l_1182},{&l_977,(void*)0,&l_977,(void*)0},{(void*)0,&l_1197[1],(void*)0,(void*)0},{(void*)0,&l_1185,&l_1194,&l_1197[1]},{&l_964,&l_1195,&l_1194,&l_964},{(void*)0,&l_1185,(void*)0,(void*)0},{(void*)0,&l_982,&l_977,(void*)0},{&l_977,(void*)0,&l_1193,(void*)0}},{{&l_1195,&l_1184,&l_1197[1],(void*)0},{&l_1186,(void*)0,(void*)0,&l_1186},{&l_1185,&l_1195,&l_1193,&l_1193},{&l_1182,&l_1182,&l_1191,(void*)0},{&l_1186,&l_1193,&l_1185,&l_1185},{&l_1194,(void*)0,&l_1193,&l_1185},{(void*)0,(void*)0,&l_1197[7],&l_1185},{(void*)0,&l_1193,&l_1192[5][0],(void*)0},{&l_1196,&l_1182,&l_1194,&l_1193}},{{&l_1186,&l_1195,&l_1182,&l_1186},{(void*)0,(void*)0,&l_1192[5][0],(void*)0},{(void*)0,&l_1184,&l_977,(void*)0},{(void*)0,(void*)0,&l_976,(void*)0},{&l_1195,&l_982,&l_1185,(void*)0},{(void*)0,&l_1185,(void*)0,&l_964},{&l_1182,&l_1195,&l_982,&l_1197[1]},{&l_1182,&l_1185,(void*)0,(void*)0},{(void*)0,&l_1197[1],&l_1185,(void*)0}},{{&l_1195,(void*)0,&l_976,&l_1182},{(void*)0,(void*)0,&l_977,&l_1185},{(void*)0,&l_1197[1],&l_1192[5][0],&l_1196},{(void*)0,&l_1182,&l_1182,&l_1197[1]},{&l_1186,&l_1194,&l_1194,&l_1186},{&l_1196,&l_1185,&l_1192[5][0],&l_977},{(void*)0,&l_1192[5][0],&l_1197[1],(void*)0},{&l_1193,&l_1042,&l_1196,(void*)0},{&l_1196,&l_1192[5][0],&l_1191,&l_982}},{{&l_977,&l_982,(void*)0,&l_1185},{(void*)0,&l_1196,&l_1182,&l_1194},{&l_1191,(void*)0,&l_1042,&l_980},{&l_977,&l_1194,(void*)0,&l_982},{&l_964,&l_1192[0][0],&l_1196,(void*)0},{&l_982,&l_1196,&l_982,&l_1196},{&l_1196,&l_1194,&l_1188,(void*)0},{(void*)0,&l_1191,&l_1196,&l_1194},{&l_1197[1],&l_964,&l_1196,&l_1197[1]}}}; + int i, j, k; + for (g_223.f3 = 14; (g_223.f3 >= 16); g_223.f3 = safe_add_func_int32_t_s_s(g_223.f3, 9)) + { /* block id: 345 */ + int32_t l_788 = 0x9C835BFDL; + int32_t l_790 = 0L; + uint8_t *l_824 = (void*)0; + uint8_t **l_823 = &l_824; + union U1 l_856 = {4294967286UL}; + uint16_t ***l_873 = &l_870[0]; + int8_t *l_876 = &g_479; + const union U0 l_937 = {7L}; + const int32_t *l_950[1]; + const int32_t **l_949[4]; + const int32_t ***l_948 = &l_949[3]; + uint32_t l_967 = 0x77B72420L; + int32_t l_981 = 1L; + union U2 * const l_994 = (void*)0; + uint32_t l_1008 = 4294967295UL; + int32_t l_1038 = 0xCA27D7C2L; + int32_t l_1041 = 2L; + int32_t l_1043[10][5] = {{0L,0L,0x66C6F2F5L,1L,(-7L)},{0x77081B5EL,0xEF4C7256L,0x5589E398L,0x77081B5EL,0L},{0x90D8465BL,(-5L),0xAF1CDC4BL,5L,(-5L)},{0L,0xEF4C7256L,0xB86532B7L,0x944B88F4L,0x944B88F4L},{0x5589E398L,0L,0x5589E398L,0xAF1CDC4BL,0x944B88F4L},{1L,0x77081B5EL,0x48DB9371L,0x90D8465BL,(-5L)},{0xEF4C7256L,0x90D8465BL,0xDAE9F189L,1L,0L},{0x832C4FFEL,0L,0x48DB9371L,(-5L),(-7L)},{0x90D8465BL,0x5589E398L,0x5589E398L,0x90D8465BL,0x832C4FFEL},{0x90D8465BL,1L,0xB86532B7L,5L,1L}}; + uint8_t l_1044[1][4][6] = {{{0xD3L,0xE8L,0xD3L,255UL,255UL,0xD3L},{0UL,0UL,255UL,250UL,255UL,0UL},{255UL,0xE8L,250UL,250UL,0xE8L,255UL},{0UL,255UL,250UL,255UL,0UL,0UL}}}; + uint32_t ***l_1127 = (void*)0; + uint32_t ****l_1126 = &l_1127; + uint32_t *****l_1125 = &l_1126; + uint32_t ****l_1129 = &l_1127; + uint32_t *****l_1128 = &l_1129; + int16_t l_1187[2][3][7] = {{{0x8B62L,1L,0x8B62L,1L,1L,(-9L),(-9L)},{1L,3L,0x2A4CL,3L,1L,0x2A4CL,0xC3E2L},{0xC3E2L,(-9L),1L,0xC3E2L,1L,(-9L),0xC3E2L}},{{0x8B62L,0xC3E2L,(-9L),1L,0xC3E2L,1L,(-9L)},{0xC3E2L,0xC3E2L,0x2A4CL,1L,3L,0x2A4CL,3L},{1L,(-9L),(-9L),1L,1L,0x8B62L,1L}}}; + int i, j, k; + for (i = 0; i < 1; i++) + l_950[i] = &l_791; + for (i = 0; i < 4; i++) + l_949[i] = &l_950[0]; + for (g_75 = 0; (g_75 <= 5); g_75 += 1) + { /* block id: 348 */ + int32_t *l_782 = &g_111[4][0]; + int32_t *l_783 = &g_92; + int32_t *l_784 = (void*)0; + int32_t *l_785 = &g_111[1][3]; + int32_t *l_786 = &g_92; + int32_t *l_787[8] = {&g_92,&g_89,&g_92,&g_89,&g_92,&g_89,&g_92,&g_89}; + union U0 **l_803 = &g_225; + uint8_t *l_809 = &g_53[1]; + uint8_t **l_808 = &l_809; + const union U2 *l_813 = &g_814; + const union U2 **l_812 = &l_813; + union U0 **l_816 = (void*)0; + union U0 ***l_818[1][8] = {{(void*)0,&l_803,&l_803,(void*)0,&l_803,&l_803,(void*)0,&l_803}}; + int16_t *l_820 = (void*)0; + int16_t *l_821 = &g_507; + union U0 l_848 = {0L}; + int32_t l_865 = 0xD0F7F5FBL; + uint16_t ***l_868 = (void*)0; + int64_t *l_940 = &g_49; + int i, j; + l_792++; + } + if (((~(0x961AFC41136F22A9LL | (safe_add_func_uint16_t_u_u(((safe_div_func_uint32_t_u_u((((((l_790 | ((void*)0 == l_948)) == ((safe_rshift_func_uint16_t_u_s(((safe_lshift_func_uint8_t_u_u(((*g_931) = (safe_lshift_func_uint16_t_u_u((safe_mul_func_uint16_t_u_u(((((safe_rshift_func_int16_t_s_s((((l_918[2] || (0x5CL != ((((l_964 = (safe_sub_func_int8_t_s_s(((l_963[4][2][3] == l_963[4][2][3]) == (l_759 = 18446744073709551615UL)), 0x1DL))) > 0x1AL) , &l_856) == &g_428[6][0][2]))) , (**g_930)) < g_627), l_857[0][0][1])) , &g_930) != l_965) || 0x2A4742A4L), 0x19AAL)), 10))), l_918[3])) == (*g_912)), 5)) != (*g_912))) & (*g_318)) , l_950[0]) == (*g_911)), 0xDFE9E75CL)) > l_967), 1L)))) == l_932)) + { /* block id: 423 */ + int32_t *l_968 = &l_759; + int32_t *l_969 = &g_89; + int32_t *l_970 = &l_790; + int32_t *l_971 = &l_791; + int32_t *l_972 = (void*)0; + int32_t *l_973[5]; + union U2 ***l_1006 = &g_54; + uint16_t *l_1024 = &l_792; + int8_t l_1035 = 0L; + int i; + for (i = 0; i < 5; i++) + l_973[i] = (void*)0; + l_983++; + if ((*l_971)) + break; + (**l_948) = l_970; + for (g_226.f2 = 0; (g_226.f2 <= 2); g_226.f2 += 1) + { /* block id: 429 */ + uint32_t l_986 = 4294967295UL; + int32_t l_987 = 1L; + int32_t l_988[5][9] = {{0L,0x09DD368BL,2L,0L,0L,2L,0x09DD368BL,0L,2L},{0L,0x09DD368BL,0L,0L,0L,0L,0x0A634DD4L,6L,0L},{6L,0x0A634DD4L,0L,0L,0L,0L,0x0A634DD4L,6L,0L},{6L,0x0A634DD4L,0L,0L,0L,0L,0x0A634DD4L,6L,0L},{6L,0x0A634DD4L,0L,0L,0L,0L,0x0A634DD4L,6L,0L}}; + int32_t *l_1016 = (void*)0; + uint16_t *l_1023 = &g_245; + int i, j; + if (l_986) + { /* block id: 430 */ + uint16_t l_989[1][1][7]; + uint32_t *l_1009[5][7][5] = {{{&g_223.f2,&g_226.f2,&g_10[9].f2,(void*)0,&g_226.f2},{&g_226.f2,&g_226.f2,(void*)0,(void*)0,&g_10[9].f2},{(void*)0,(void*)0,&g_223.f2,&g_223.f2,&g_226.f2},{(void*)0,&l_932,&g_226.f2,&g_226.f2,&l_932},{&g_226.f2,(void*)0,&g_226.f2,(void*)0,(void*)0},{&g_223.f2,&g_226.f2,&g_223.f2,&g_226.f2,(void*)0},{&l_932,&g_226.f2,(void*)0,&g_223.f2,&l_932}},{{&g_223.f2,&g_226.f2,&g_10[9].f2,(void*)0,&g_226.f2},{&g_226.f2,&g_226.f2,(void*)0,(void*)0,&g_10[9].f2},{(void*)0,(void*)0,&g_223.f2,&g_223.f2,&g_226.f2},{(void*)0,&l_932,&g_226.f2,&g_226.f2,&l_932},{&g_226.f2,(void*)0,&g_226.f2,(void*)0,(void*)0},{&g_223.f2,&g_226.f2,&g_223.f2,&g_226.f2,(void*)0},{&l_932,&g_226.f2,(void*)0,&g_223.f2,&l_932}},{{&g_223.f2,&g_226.f2,&g_10[9].f2,(void*)0,&g_226.f2},{&g_226.f2,&g_226.f2,(void*)0,(void*)0,&g_10[9].f2},{(void*)0,(void*)0,&g_223.f2,&g_223.f2,&g_226.f2},{(void*)0,&l_932,&g_226.f2,&g_226.f2,&l_932},{&g_226.f2,(void*)0,&g_226.f2,(void*)0,(void*)0},{&g_223.f2,&g_226.f2,&g_223.f2,&g_226.f2,(void*)0},{&l_932,&g_226.f2,(void*)0,&g_223.f2,&l_932}},{{&g_223.f2,&g_226.f2,&g_10[9].f2,(void*)0,&g_226.f2},{&g_226.f2,&g_226.f2,(void*)0,(void*)0,&g_10[9].f2},{(void*)0,(void*)0,&g_223.f2,&g_223.f2,&g_226.f2},{(void*)0,&l_932,&g_226.f2,&g_226.f2,&l_932},{&g_226.f2,(void*)0,&g_226.f2,(void*)0,(void*)0},{&g_223.f2,&g_226.f2,&g_223.f2,&g_226.f2,(void*)0},{&l_932,&g_226.f2,(void*)0,&g_223.f2,&l_932}},{{&g_223.f2,&g_226.f2,&g_10[9].f2,(void*)0,&g_226.f2},{&g_226.f2,&g_226.f2,(void*)0,(void*)0,&g_10[9].f2},{(void*)0,(void*)0,&g_223.f2,&g_223.f2,&g_226.f2},{(void*)0,&l_932,(void*)0,(void*)0,(void*)0},{&g_223.f2,(void*)0,(void*)0,&g_226.f2,&l_967},{&g_223.f2,(void*)0,&l_932,(void*)0,&l_967},{&l_967,&g_226.f2,&g_226.f2,(void*)0,(void*)0}}}; + int32_t l_1010 = 0xE506438AL; + int32_t l_1011 = (-3L); + int32_t l_1012 = 0x265CF71AL; + int i, j, k; + for (i = 0; i < 1; i++) + { + for (j = 0; j < 1; j++) + { + for (k = 0; k < 7; k++) + l_989[i][j][k] = 0xDF33L; + } + } + (**l_948) = &l_791; + l_989[0][0][3]++; + (*l_969) |= (safe_lshift_func_uint8_t_u_u((((void*)0 != l_994) , (safe_unary_minus_func_uint32_t_u(((l_988[1][6] = (safe_lshift_func_int8_t_s_u(((void*)0 == &g_627), ((safe_lshift_func_uint16_t_u_u((safe_mod_func_uint16_t_u_u((safe_lshift_func_uint16_t_u_s((l_975 , (safe_lshift_func_int16_t_s_s(((*l_899) == l_1006), 7))), (((*g_931) = g_1007) == g_223.f3))), 0xDB6DL)), l_1008)) , l_974)))) , 4294967291UL)))), 7)); + l_1013++; + } + else + { /* block id: 437 */ + uint16_t *l_1025 = (void*)0; + int32_t l_1034 = (-1L); + int32_t l_1036 = 0xB9E319BAL; + int32_t l_1037 = 5L; + int32_t l_1039 = (-1L); + int32_t l_1040 = 0x5EEBA298L; + l_1016 = l_972; + (*l_968) ^= (safe_rshift_func_int8_t_s_s((+((safe_mod_func_int16_t_s_s((safe_div_func_int8_t_s_s(l_791, 0x24L)), (((l_1024 = l_1023) != (l_1025 = l_1025)) , (((safe_lshift_func_int8_t_s_u(((safe_div_func_uint64_t_u_u((safe_rshift_func_uint16_t_u_u((*l_971), ((*g_931) || (0x69EAL < (((*g_912) = (safe_sub_func_uint16_t_u_u(((g_226.f2 ^ (l_982 ^ l_988[3][6])) == (*g_318)), (*g_244)))) >= l_789))))), (*g_318))) == (*l_971)), 7)) & l_1034) , (-7L))))) , g_149)), 6)); + l_1044[0][3][5]++; + } + } + } + else + { /* block id: 446 */ + uint32_t l_1053 = 18446744073709551612UL; + const uint16_t ****l_1061 = (void*)0; + int32_t l_1089 = 0x58936FB3L; + uint8_t l_1099 = 0x88L; + int32_t l_1108[7] = {4L,0xBE5E93A0L,0xBE5E93A0L,4L,0xBE5E93A0L,0xBE5E93A0L,4L}; + int i; + for (l_792 = 0; (l_792 <= 3); l_792 += 1) + { /* block id: 449 */ + int32_t *l_1047 = (void*)0; + int32_t *l_1048 = &l_759; + int32_t *l_1049 = (void*)0; + int32_t *l_1050 = (void*)0; + int32_t *l_1051 = &l_981; + int32_t *l_1052[6] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; + uint32_t ***l_1059 = (void*)0; + uint32_t ****l_1058[6][9] = {{&l_1059,(void*)0,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059},{&l_1059,(void*)0,&l_1059,(void*)0,&l_1059,&l_1059,(void*)0,&l_1059,&l_1059},{&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,(void*)0},{&l_1059,&l_1059,(void*)0,&l_1059,&l_1059,&l_1059,(void*)0,&l_1059,&l_1059},{&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059},{(void*)0,(void*)0,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059,&l_1059}}; + uint32_t ***l_1060 = &l_908[8][1]; + union U1 l_1064[9] = {{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L},{0xCCDF0B70L}}; + union U0 **l_1076[7]; + uint32_t l_1077[10] = {18446744073709551615UL,0x091F9E54L,0xCE927A92L,0x091F9E54L,18446744073709551615UL,18446744073709551615UL,0x091F9E54L,0xCE927A92L,0x091F9E54L,18446744073709551615UL}; + union U2 l_1104[1] = {{1L}}; + int i, j; + for (i = 0; i < 7; i++) + l_1076[i] = &l_883; + l_1053++; + l_1067 ^= (((g_10[9].f4 & (safe_add_func_uint64_t_u_u(((l_1060 = &g_911) != &l_908[5][0]), (l_974 , ((void*)0 != l_1061))))) , l_1053) <= ((safe_sub_func_uint16_t_u_u(((l_1064[0] , (safe_mul_func_uint8_t_u_u(255UL, l_975))) || 0x62FFL), l_979)) , (*g_912))); + if ((((l_1067 , (((((((g_444--) <= (((*l_901) , ((*g_244) , ((l_976 < (g_627 , ((g_245 = (safe_rshift_func_int16_t_s_u((((safe_mul_func_uint32_t_u_u((g_1074[2] != (void*)0), (l_1076[4] == (((g_147 < g_231[2][3][1].f1) > g_101) , (void*)0)))) , l_791) >= l_1053), l_918[3]))) , 9L))) | l_976))) >= 0x0FL)) && (*l_1051)) || l_932) , l_1077[0]) & l_1053) , l_1013)) && (*l_1051)) && (**g_930))) + { /* block id: 455 */ + uint32_t *l_1086 = &l_1064[0].f0; + int16_t *l_1087 = &g_507; + int16_t *l_1088[8] = {(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0}; + int32_t l_1091 = 0x536FF2CFL; + int i; + l_974 |= ((*l_1051) = ((safe_mod_func_int8_t_s_s((*l_1048), 8UL)) <= (safe_sub_func_int16_t_s_s(((l_1089 &= ((*l_1087) = (safe_rshift_func_uint16_t_u_u(((void*)0 == &g_911), (safe_mul_func_uint16_t_u_u(((&l_1008 != (l_1086 = &l_1013)) >= 0xC6D2L), ((-7L) == l_822[0][4]))))))) && 0x72AFL), l_857[5][1][3])))); + if (l_1090) + continue; + if (l_1091) + continue; + } + else + { /* block id: 463 */ + uint32_t l_1094 = 18446744073709551615UL; + int32_t l_1100 = (-7L); + l_1043[4][0] = (((((safe_sub_func_uint64_t_u_u((((0xC7L <= ((l_918[5] , (l_1094 = (*g_912))) > ((safe_add_func_uint64_t_u_u((safe_rshift_func_int8_t_s_u(l_1099, ((*l_875) = l_1100))), (~(l_1101 <= (safe_mul_func_uint16_t_u_u((l_1100 , ((((l_1104[0] , ((***l_948) > l_1099)) , l_1100) & l_983) <= (*g_912))), l_1100)))))) || l_857[1][1][0]))) == g_375) <= 0xECL), (*g_318))) , l_1089) ^ (**g_911)) != 0x48965DBB2790DDDDLL) | 1L); + } + for (l_1099 = 0; (l_1099 <= 4); l_1099 += 1) + { /* block id: 470 */ + int8_t l_1105 = 0xADL; + int32_t l_1106 = 0x413B3C1FL; + int32_t l_1107[10][4] = {{1L,(-6L),0x7FC6FB02L,0x7FC6FB02L},{0xAD222DD9L,0xAD222DD9L,1L,0x7FC6FB02L},{0xEEC01B30L,(-6L),0xEEC01B30L,1L},{0xEEC01B30L,1L,1L,0xEEC01B30L},{0xAD222DD9L,1L,0x7FC6FB02L,1L},{1L,(-6L),0x7FC6FB02L,0x7FC6FB02L},{0xAD222DD9L,0xAD222DD9L,1L,0x7FC6FB02L},{0xEEC01B30L,(-6L),0xEEC01B30L,1L},{0xEEC01B30L,1L,1L,0xEEC01B30L},{0xAD222DD9L,1L,0x7FC6FB02L,1L}}; + uint16_t l_1109 = 65534UL; + int i, j; + (*l_1051) |= l_1013; + l_1109++; + if (l_789) + break; + } + for (l_976 = 3; (l_976 >= 1); l_976 -= 1) + { /* block id: 477 */ + union U2 l_1112 = {0x95AB76F0L}; + (**l_948) = (void*)0; + return l_1112; + } + } + } + if (l_751) + break; + if ((((*l_876) = (safe_rshift_func_int16_t_s_s((safe_div_func_int32_t_s_s((safe_lshift_func_int8_t_s_s(((*g_318) , ((safe_mul_func_uint16_t_u_u((l_822[0][5] == ((l_983 <= l_759) > ((((safe_rshift_func_int16_t_s_s(0x99CFL, 1)) , (safe_rshift_func_uint8_t_u_u(l_1042, 5))) <= (((*l_1128) = ((*l_1125) = (void*)0)) == (void*)0)) < ((g_149 != l_1130) > l_943[0][6][1])))), 7L)) == 0x7FA5L)), l_857[3][1][2])), l_822[2][5])), 11))) | 0xFEL)) + { /* block id: 487 */ + int32_t *l_1131 = &l_982; + for (l_1038 = 0; l_1038 < 10; l_1038 += 1) + { + l_870[l_1038] = &l_871; + } + (*l_1131) |= (0xE835L >= 1L); + } + else + { /* block id: 490 */ + int32_t l_1132 = 3L; + const uint32_t l_1157 = 0xC3A60DA1L; + int8_t l_1158 = 1L; + int32_t l_1168 = 1L; + int32_t l_1169 = 8L; + int32_t l_1170 = 0xAC0D721EL; + int32_t l_1173 = 0xFDFA3AE3L; + int32_t l_1174[6] = {0x0CF5CB29L,0x0CF5CB29L,0x0CF5CB29L,0x0CF5CB29L,0x0CF5CB29L,0x0CF5CB29L}; + int32_t *l_1229 = &l_1182; + int32_t *l_1230 = &l_1185; + int32_t *l_1231[7]; + int i; + for (i = 0; i < 7; i++) + l_1231[i] = &l_1190; + for (l_979 = 5; (l_979 >= 0); l_979 -= 1) + { /* block id: 493 */ + uint8_t l_1135 = 8UL; + int32_t *l_1138 = &g_89; + int32_t l_1171 = (-3L); + int32_t l_1172 = 0x574353F2L; + int32_t l_1175 = 0x9B33C241L; + int32_t l_1176 = 0x272F75CEL; + int32_t l_1177 = 5L; + int32_t l_1179[3]; + union U1 l_1207 = {4294967295UL}; + int i; + for (i = 0; i < 3; i++) + l_1179[i] = 0L; + if (l_1132) + break; + (*l_1138) = ((0L > ((l_943[0][3][1] & (l_1132 ^ (l_1135 != ((safe_mul_func_uint16_t_u_u(l_1135, 65535UL)) ^ ((l_975 , 2UL) >= (0x64L & l_1135)))))) , l_1135)) && 0UL); + if (((**l_817) , (((safe_mul_func_int16_t_s_s((((+0L) & (safe_mod_func_int8_t_s_s((((*l_880) |= (safe_mul_func_int16_t_s_s(((((((((*l_1138) == (((*l_909)++) < (((*l_871) = l_1132) & (safe_div_func_uint64_t_u_u(((*l_1138) < (safe_lshift_func_int8_t_s_s((l_1132 | ((safe_add_func_int8_t_s_s(((((safe_mul_func_uint8_t_u_u((((l_1132 > l_974) ^ (safe_mod_func_uint64_t_u_u(((1UL > 0x8F25A903L) == (*g_931)), l_789))) , (*l_1138)), g_627)) == (*l_1138)) == (*l_1138)) , (*l_1138)), 1L)) & l_918[1])), 2))), (*g_318)))))) != (*g_318)) || l_1132) > (-1L)) || 8L) != l_1132) ^ l_1132), l_1157))) & (*g_931)), 0x0CL))) <= 0L), 0x96EEL)) != l_1158) , (*l_1138)))) + { /* block id: 499 */ + int32_t *l_1159 = &l_759; + int32_t *l_1160 = &l_980; + int32_t *l_1161 = &l_981; + int32_t *l_1162 = &g_92; + int32_t *l_1163 = &l_1041; + int32_t *l_1164 = (void*)0; + int32_t *l_1165 = &l_791; + int32_t *l_1166 = (void*)0; + int32_t *l_1167[4] = {&l_964,&l_964,&l_964,&l_964}; + int i; + g_1198[6][3]--; + (**l_948) = &l_976; + if (l_1158) + continue; + } + else + { /* block id: 503 */ + uint32_t l_1219 = 0x008FA38AL; + (*l_1138) = (((0xEFL < ((safe_div_func_uint64_t_u_u((safe_mul_func_int16_t_s_s(((*g_931) ^ ((~0x1F9CBF83EE15EE48LL) ^ ((((l_1207 , (*g_244)) < ((safe_add_func_uint64_t_u_u((safe_mul_func_uint8_t_u_u((l_1212[3][2][7] , l_1192[5][0]), (safe_add_func_uint32_t_u_u(((safe_sub_func_uint16_t_u_u((((safe_lshift_func_int16_t_s_s(((**l_817) , (((l_1219 == 65533UL) || 0xDF1FE933C61F5786LL) > 0x2F60BAB9L)), l_792)) < 7L) , l_1173), (-1L))) <= (-7L)), l_1174[5])))), (*l_1138))) > g_231[2][3][1].f1)) , 0UL) || 0x45C9L))), 0xB438L)), 0xD8DBB58FFCFC04ADLL)) & 1L)) >= (-7L)) | (*l_1138)); + } + for (l_1173 = 0; (l_1173 >= 0); l_1173 -= 1) + { /* block id: 508 */ + int32_t l_1226 = 0xE9D9050BL; + int16_t *l_1227 = &l_1101; + (*l_1138) = ((safe_sub_func_int16_t_s_s(((*l_1227) = ((((((*l_1138) > (((*g_604) = &p_21) == &p_21)) && g_814.f0) , 1L) != (((*g_912) = (safe_div_func_int64_t_s_s(l_1174[5], ((((void*)0 == &g_1075) , (*l_883)) , g_53[1])))) == l_1194)) > l_1226)), 0xCE39L)) ^ l_1226); + } + for (l_792 = 0; (l_792 <= 0); l_792 += 1) + { /* block id: 516 */ + uint32_t l_1228 = 3UL; + (*l_1138) |= l_1228; + } + } + l_1233++; + (**l_948) = l_1236[2][7][2]; + } + } + } + l_1241++; + for (g_706 = 2; (g_706 >= 0); g_706 -= 1) + { /* block id: 528 */ + int32_t l_1244 = 4L; + int32_t l_1245 = 0x5B87C714L; + int32_t l_1246[8][9][3] = {{{(-5L),0xB5ED473FL,0L},{1L,1L,0xF457B790L},{(-1L),1L,1L},{1L,0xA309F180L,0xFFF59FB6L},{(-5L),1L,0xFFF59FB6L},{0x10A1A9AFL,0xFFF59FB6L,1L},{5L,0L,0xF457B790L},{0xFFF59FB6L,0xFFF59FB6L,0L},{1L,1L,0x14D48AFEL}},{{1L,0x14D48AFEL,1L},{0L,(-1L),1L},{1L,0x10A1A9AFL,1L},{0xB5ED473FL,0xA309F180L,0xF457B790L},{5L,0xA309F180L,1L},{(-1L),0x10A1A9AFL,(-5L)},{0xFFF59FB6L,(-1L),(-1L)},{(-1L),0x14D48AFEL,0L},{5L,1L,0L}},{{0xB5ED473FL,0L,(-1L)},{1L,1L,(-5L)},{0L,0L,1L},{0x10A1A9AFL,1L,0xF457B790L},{0x10A1A9AFL,0x14D48AFEL,1L},{0L,(-1L),1L},{1L,0x10A1A9AFL,1L},{0xB5ED473FL,0xA309F180L,0xF457B790L},{5L,0xA309F180L,1L}},{{(-1L),0x10A1A9AFL,(-5L)},{0xFFF59FB6L,(-1L),(-1L)},{(-1L),0x14D48AFEL,0L},{5L,1L,0L},{0xB5ED473FL,0L,(-1L)},{1L,1L,(-5L)},{0L,0L,1L},{0x10A1A9AFL,1L,0xF457B790L},{0x10A1A9AFL,0x14D48AFEL,1L}},{{0L,(-1L),1L},{1L,0x10A1A9AFL,1L},{0xB5ED473FL,0xA309F180L,0xF457B790L},{5L,0xA309F180L,1L},{(-1L),0x10A1A9AFL,(-5L)},{0xFFF59FB6L,(-1L),(-1L)},{(-1L),0x14D48AFEL,0L},{5L,1L,0L},{0xB5ED473FL,0L,(-1L)}},{{1L,1L,(-5L)},{0L,0L,1L},{0x10A1A9AFL,1L,0xF457B790L},{0x10A1A9AFL,0x14D48AFEL,1L},{0L,(-1L),1L},{1L,0x10A1A9AFL,1L},{0xB5ED473FL,0xA309F180L,0xF457B790L},{5L,0xA309F180L,1L},{(-1L),0x10A1A9AFL,(-5L)}},{{0xFFF59FB6L,(-1L),(-1L)},{(-1L),0x14D48AFEL,0L},{5L,1L,0L},{0xB5ED473FL,0L,(-1L)},{1L,1L,(-5L)},{0L,0L,1L},{0x10A1A9AFL,1L,0xF457B790L},{0x10A1A9AFL,0x14D48AFEL,1L},{0L,(-1L),1L}},{{1L,0x10A1A9AFL,1L},{0xB5ED473FL,0xA309F180L,0xF457B790L},{5L,0xA309F180L,1L},{(-1L),0x10A1A9AFL,(-5L)},{0xFFF59FB6L,(-1L),(-1L)},{(-1L),0x14D48AFEL,0L},{5L,1L,0L},{0xB5ED473FL,0L,(-1L)},{1L,1L,(-5L)}}}; + uint32_t l_1247 = 0UL; + int16_t l_1250 = 0L; + uint32_t l_1253 = 5UL; + int32_t l_1257[9] = {(-7L),0x6AB92E35L,4L,4L,(-7L),4L,4L,(-7L),4L}; + int16_t l_1263[8][8] = {{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL},{0x20A9L,1L,0x20A9L,0x2CCCL,0x20A9L,1L,0x20A9L,0x2CCCL}}; + union U0 *l_1291 = (void*)0; + int8_t l_1292 = 0xCBL; + union U2 ***l_1297 = &g_54; + uint32_t *****l_1338[6][9] = {{&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,(void*)0,&l_1337,&l_1337},{&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,&l_1337},{(void*)0,&l_1337,&l_1337,(void*)0,(void*)0,&l_1337,&l_1337,&l_1337,&l_1337},{(void*)0,&l_1337,&l_1337,&l_1337,&l_1337,(void*)0,(void*)0,&l_1337,&l_1337},{&l_1337,&l_1337,&l_1337,&l_1337,(void*)0,&l_1337,&l_1337,(void*)0,&l_1337},{&l_1337,&l_1337,&l_1337,&l_1337,&l_1337,(void*)0,&l_1337,&l_1337,&l_1337}}; + int i, j, k; + l_1247--; + ++l_1253; + } + return (*g_222); +} + + +/* ------------------------------------------ */ +/* + * reads : g_706 g_428 g_92 g_444 g_10.f4 g_89 g_111 g_149 g_53 + * writes: g_706 g_444 + */ +static int8_t func_26(const int64_t p_27, uint32_t p_28, uint64_t p_29, union U2 p_30) +{ /* block id: 322 */ + int64_t l_678[10] = {0x7DABD13DDE14C484LL,0x7DABD13DDE14C484LL,0x92E72AE3C392FA5ELL,0x7DABD13DDE14C484LL,0x7DABD13DDE14C484LL,0x92E72AE3C392FA5ELL,0x7DABD13DDE14C484LL,0x7DABD13DDE14C484LL,0x92E72AE3C392FA5ELL,0x7DABD13DDE14C484LL}; + int32_t *l_679 = &g_111[1][3]; + int32_t *l_680 = &g_111[1][3]; + int32_t *l_681 = &g_111[1][3]; + int32_t *l_682 = &g_89; + int32_t *l_683 = (void*)0; + int32_t *l_684 = &g_111[6][3]; + int32_t *l_685 = &g_111[1][3]; + int32_t *l_686 = &g_111[4][8]; + int32_t *l_687 = &g_89; + int32_t *l_688 = &g_92; + int32_t *l_689 = &g_89; + int32_t *l_690 = &g_111[7][0]; + int32_t l_691 = (-1L); + int32_t *l_692 = &g_92; + int32_t *l_693 = &l_691; + int32_t *l_694 = &g_111[1][3]; + int32_t *l_695 = (void*)0; + int32_t *l_696 = &g_111[1][3]; + int32_t l_697 = 0x8F752B8FL; + int32_t *l_698 = &g_111[2][4]; + int32_t *l_699[6][5][7] = {{{(void*)0,&l_691,&g_89,&g_111[1][1],(void*)0,&l_691,&g_89},{&l_691,(void*)0,&l_691,&g_89,&l_691,&g_89,&g_111[1][3]},{&g_111[1][5],&l_691,&g_89,&g_89,&g_111[0][3],&g_111[1][3],&l_697},{(void*)0,&l_691,&l_697,&l_697,&l_697,&l_691,&g_89},{&g_111[1][3],&g_89,&l_697,&g_111[1][3],&g_89,&l_691,&l_691}},{{&g_111[1][3],&g_92,&g_111[1][3],&g_111[1][3],&g_92,&g_111[1][3],&g_111[7][4]},{&g_111[1][1],&g_89,(void*)0,&g_92,(void*)0,&g_89,&g_111[7][8]},{&g_89,(void*)0,&l_691,&g_111[7][4],&g_111[1][1],&l_691,&g_89},{(void*)0,&g_111[1][3],(void*)0,&l_697,(void*)0,&l_691,&g_89},{&g_92,&l_691,(void*)0,&g_89,&g_111[1][3],&l_691,&g_89}},{{&l_697,&g_92,(void*)0,(void*)0,&g_111[1][3],&l_691,&l_691},{(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0,(void*)0},{&g_92,&g_111[1][3],&g_111[7][4],&l_697,(void*)0,&g_89,&g_89},{&l_691,&l_691,&g_89,&g_111[0][8],&l_697,&l_697,&g_111[7][4]},{&g_92,&l_697,&g_92,&g_92,&l_691,(void*)0,&g_89}},{{(void*)0,&l_691,&g_89,&l_697,&g_111[1][2],(void*)0,(void*)0},{&l_697,&g_89,&l_691,&l_697,(void*)0,&l_691,(void*)0},{&g_92,(void*)0,(void*)0,&g_92,&g_89,&g_89,&l_691},{(void*)0,&g_92,&g_111[1][1],&g_111[0][8],(void*)0,&l_697,&g_111[7][8]},{(void*)0,&g_89,&l_691,&l_697,&l_691,&g_89,&l_691}},{{(void*)0,&l_697,&g_111[1][5],(void*)0,(void*)0,&g_89,(void*)0},{&l_697,&l_697,&g_92,(void*)0,&g_89,&g_111[7][8],(void*)0},{&g_111[7][8],(void*)0,&g_92,&g_89,&g_89,&g_89,&g_89},{&g_111[1][5],&g_111[1][1],&g_111[1][5],&l_697,&g_111[0][8],&g_111[1][2],&g_111[7][4]},{&g_89,&g_111[0][8],&l_691,(void*)0,(void*)0,&g_92,&g_89}},{{&g_111[1][3],&l_697,&g_111[1][1],&l_691,&g_111[0][3],&g_111[1][2],(void*)0},{&l_691,&l_691,(void*)0,&g_92,&g_111[1][1],&g_89,&l_691},{&g_111[1][2],(void*)0,&l_691,&l_697,&g_111[1][3],&g_111[7][8],&g_89},{&g_111[0][8],(void*)0,&g_89,&g_89,&g_92,&g_89,&g_89},{&l_691,&l_691,&g_92,&g_111[1][2],&l_691,&g_89,(void*)0}}}; + int64_t l_700 = 1L; + int16_t l_701 = 8L; + int32_t l_702[1][6][7] = {{{0L,1L,0x18B116A3L,0L,0x18B116A3L,1L,0L},{8L,0xF5B73F85L,3L,0x8478EF1FL,0xF5B73F85L,0x8478EF1FL,3L},{0L,0L,0x04248741L,(-1L),(-5L),0x04248741L,(-5L)},{6L,3L,3L,6L,0x8478EF1FL,8L,6L},{(-1L),(-5L),0x18B116A3L,0x18B116A3L,(-5L),(-1L),1L},{0xFEB019D1L,3L,0xF5B73F85L,8L,8L,0xF5B73F85L,3L}}}; + int8_t l_703 = 5L; + int16_t l_704 = 0x19F2L; + int8_t l_705 = (-1L); + int32_t l_707 = 0xCB0D6A35L; + int32_t l_708 = 0xC949726BL; + int8_t l_709[10] = {0x4FL,0x87L,0x4FL,0x87L,0x4FL,0x87L,0x4FL,0x87L,0x4FL,0x87L}; + int64_t l_710 = (-1L); + uint32_t l_711 = 1UL; + uint16_t l_714 = 0xFD9EL; + int i, j, k; + l_711--; + l_714--; + for (g_706 = (-3); (g_706 > (-9)); g_706--) + { /* block id: 327 */ + union U0 *l_723 = &g_229[1][0][4]; + uint16_t *l_734 = &g_444; + uint32_t l_735 = 8UL; + uint64_t *l_736 = &g_223.f3; + uint64_t *l_737 = &g_10[9].f3; + uint64_t *l_738 = &g_223.f3; + uint64_t *l_739 = (void*)0; + uint64_t *l_740 = &g_223.f3; + uint64_t *l_741 = &g_223.f3; + uint64_t *l_742 = &g_223.f3; + uint64_t *l_743 = &g_10[9].f3; + uint64_t *l_744 = &g_223.f3; + int32_t l_745 = 0x1A8AE3E5L; + int32_t l_746[6] = {0x10D458ECL,0x5D95F8E7L,0x10D458ECL,0x10D458ECL,0x5D95F8E7L,0x10D458ECL}; + int i; + l_746[5] ^= (((safe_mul_func_int16_t_s_s((((safe_mul_func_int8_t_s_s(((p_30.f0 , l_723) != l_723), (0x10ED398AEA39893FLL < ((safe_mul_func_uint8_t_u_u(((safe_mul_func_int8_t_s_s((g_428[0][0][2] , (((*l_692) & (0xD0L < (safe_mod_func_uint32_t_u_u((safe_div_func_uint64_t_u_u((l_745 ^= (((safe_lshift_func_uint8_t_u_u((((*l_734) &= 6UL) > p_28), 7)) , (*l_693)) > l_735)), 0x48414B2CEFF21B1FLL)), 4UL)))) , g_10[9].f4)), 1UL)) || 18446744073709551615UL), g_89)) & p_30.f0)))) == p_29) >= 0xEEE62B04L), (*l_684))) < 4UL) , p_30.f2); + return g_149; + } + return g_53[2]; +} + + +/* ------------------------------------------ */ +/* + * reads : + * writes: + */ +static uint8_t func_33(union U2 * p_34, uint32_t p_35, union U0 p_36, uint8_t p_37, union U2 * p_38) +{ /* block id: 319 */ + int32_t *l_676 = (void*)0; + int32_t **l_677 = &l_676; + (*l_677) = l_676; + return p_37; +} + + +/* ------------------------------------------ */ +/* + * reads : g_231.f1 + * writes: + */ +static uint32_t func_40(union U2 * p_41, union U2 ** p_42, union U2 * p_43) +{ /* block id: 9 */ + uint64_t l_55 = 0x80453D47EBDCF28DLL; + uint8_t *l_86 = &g_2; + int32_t l_113[10] = {0xF63A0E5FL,(-1L),0xBFF73A4BL,(-1L),0xF63A0E5FL,0xF63A0E5FL,(-1L),0xBFF73A4BL,(-1L),0xF63A0E5FL}; + uint32_t l_152[1]; + int64_t *l_176[6][9][4]; + uint32_t l_196 = 0x2BEC0524L; + int32_t *l_204 = &l_113[4]; + union U2 l_217 = {7L}; + union U0 *l_228[10] = {&g_226,(void*)0,&g_226,(void*)0,&g_226,(void*)0,&g_226,(void*)0,&g_226,(void*)0}; + union U0 *l_230 = &g_231[2][3][1]; + const union U0 *l_254[10][2][7] = {{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}},{{&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1],&g_231[2][3][1]},{&g_255,&g_255,&g_255,&g_255,&g_255,&g_255,&g_255}}}; + uint8_t l_273 = 0x57L; + int64_t l_401 = 0xD80C2B337075255ALL; + int32_t l_412 = 0xFC3C03E8L; + const uint16_t *l_449 = (void*)0; + int32_t * const *l_468[3]; + int32_t * const **l_467 = &l_468[1]; + uint16_t l_530 = 0x994DL; + uint64_t l_546 = 0UL; + int32_t ***l_550 = (void*)0; + union U1 l_561 = {0x4A4BD98AL}; + uint64_t l_565 = 1UL; + int64_t l_630 = 0x4F210B20CA5980E1LL; + uint8_t l_639 = 251UL; + int16_t *l_640 = (void*)0; + int16_t *l_641 = (void*)0; + int16_t *l_642 = &g_507; + uint32_t l_643 = 0x1483458EL; + uint64_t l_644 = 0x4B3D7633749DC52FLL; + uint8_t l_645[10][1] = {{1UL},{0x76L},{1UL},{0x76L},{1UL},{0x76L},{1UL},{0x76L},{1UL},{0x76L}}; + uint64_t l_646[3][1]; + int32_t l_647 = 0x551C0AE0L; + uint32_t l_666 = 0UL; + uint8_t l_667[3]; + uint32_t *l_668 = (void*)0; + uint32_t *l_669 = &l_152[0]; + uint32_t l_670 = 9UL; + int16_t *l_671 = &g_75; + int32_t l_672 = 0x0446CA0FL; + int8_t l_673[3][6]; + int32_t l_674[9] = {(-1L),(-4L),(-1L),(-4L),(-1L),(-4L),(-1L),(-4L),(-1L)}; + int i, j, k; + for (i = 0; i < 1; i++) + l_152[i] = 0x975F8E47L; + for (i = 0; i < 6; i++) + { + for (j = 0; j < 9; j++) + { + for (k = 0; k < 4; k++) + l_176[i][j][k] = &g_149; + } + } + for (i = 0; i < 3; i++) + l_468[i] = &l_204; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 1; j++) + l_646[i][j] = 5UL; + } + for (i = 0; i < 3; i++) + l_667[i] = 255UL; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 6; j++) + l_673[i][j] = 0x09L; + } + return g_231[2][3][1].f1; +} + + +/* ------------------------------------------ */ +/* + * reads : + * writes: + */ +static int16_t func_66(uint8_t * const p_67, int64_t p_68, union U2 *** const p_69) +{ /* block id: 26 */ + return p_68; +} + + +/* ------------------------------------------ */ +/* + * reads : g_93 + * writes: g_93 + */ +static uint8_t * func_70(int64_t p_71, int32_t p_72, uint8_t * p_73) +{ /* block id: 23 */ + int32_t *l_87 = (void*)0; + int32_t *l_88 = &g_89; + int32_t *l_90 = &g_89; + int32_t *l_91[7]; + uint8_t *l_96 = &g_53[4]; + int i; + for (i = 0; i < 7; i++) + l_91[i] = &g_89; + ++g_93; + return l_96; +} + + + + +/* ---------------------------------------- */ +int main (int argc, char* argv[]) +{ + int i, j, k; + int print_hash_value = 0; + if (argc == 2 && strcmp(argv[1], "1") == 0) print_hash_value = 1; + platform_main_begin(); + crc32_gentab(); + func_1(); + transparent_crc(g_2, "g_2", print_hash_value); + for (i = 0; i < 10; i++) + { + transparent_crc(g_10[i].f0, "g_10[i].f0", print_hash_value); + transparent_crc(g_10[i].f1, "g_10[i].f1", print_hash_value); + transparent_crc(g_10[i].f2, "g_10[i].f2", print_hash_value); + transparent_crc(g_10[i].f4, "g_10[i].f4", print_hash_value); + if (print_hash_value) printf("index = [%d]\n", i); + + } + transparent_crc(g_49, "g_49", print_hash_value); + for (i = 0; i < 6; i++) + { + transparent_crc(g_53[i], "g_53[i]", print_hash_value); + if (print_hash_value) printf("index = [%d]\n", i); + + } + transparent_crc(g_75, "g_75", print_hash_value); + transparent_crc(g_89, "g_89", print_hash_value); + transparent_crc(g_92, "g_92", print_hash_value); + transparent_crc(g_93, "g_93", print_hash_value); + transparent_crc(g_101, "g_101", print_hash_value); + for (i = 0; i < 9; i++) + { + for (j = 0; j < 9; j++) + { + transparent_crc(g_111[i][j], "g_111[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_147, "g_147", print_hash_value); + transparent_crc(g_149, "g_149", print_hash_value); + transparent_crc(g_223.f0, "g_223.f0", print_hash_value); + transparent_crc(g_223.f1, "g_223.f1", print_hash_value); + transparent_crc(g_223.f2, "g_223.f2", print_hash_value); + transparent_crc(g_223.f4, "g_223.f4", print_hash_value); + transparent_crc(g_226.f0, "g_226.f0", print_hash_value); + transparent_crc(g_226.f1, "g_226.f1", print_hash_value); + for (i = 0; i < 3; i++) + { + for (j = 0; j < 1; j++) + { + for (k = 0; k < 5; k++) + { + transparent_crc(g_229[i][j][k].f0, "g_229[i][j][k].f0", print_hash_value); + transparent_crc(g_229[i][j][k].f1, "g_229[i][j][k].f1", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + for (i = 0; i < 6; i++) + { + for (j = 0; j < 9; j++) + { + for (k = 0; k < 4; k++) + { + transparent_crc(g_231[i][j][k].f1, "g_231[i][j][k].f1", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + transparent_crc(g_245, "g_245", print_hash_value); + transparent_crc(g_255.f0, "g_255.f0", print_hash_value); + transparent_crc(g_255.f1, "g_255.f1", print_hash_value); + transparent_crc(g_319, "g_319", print_hash_value); + transparent_crc(g_375, "g_375", print_hash_value); + for (i = 0; i < 8; i++) + { + for (j = 0; j < 1; j++) + { + for (k = 0; k < 4; k++) + { + transparent_crc(g_428[i][j][k].f0, "g_428[i][j][k].f0", print_hash_value); + transparent_crc(g_428[i][j][k].f1, "g_428[i][j][k].f1", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + transparent_crc(g_444, "g_444", print_hash_value); + transparent_crc(g_479, "g_479", print_hash_value); + transparent_crc(g_507, "g_507", print_hash_value); + transparent_crc(g_627, "g_627", print_hash_value); + transparent_crc(g_706, "g_706", print_hash_value); + transparent_crc(g_814.f0, "g_814.f0", print_hash_value); + transparent_crc(g_814.f1, "g_814.f1", print_hash_value); + transparent_crc(g_814.f2, "g_814.f2", print_hash_value); + transparent_crc(g_814.f4, "g_814.f4", print_hash_value); + transparent_crc(g_1007, "g_1007", print_hash_value); + transparent_crc(g_1178, "g_1178", print_hash_value); + for (i = 0; i < 10; i++) + { + for (j = 0; j < 6; j++) + { + transparent_crc(g_1198[i][j], "g_1198[i][j]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d]\n", i, j); + + } + } + transparent_crc(g_1232, "g_1232", print_hash_value); + for (i = 0; i < 3; i++) + { + for (j = 0; j < 1; j++) + { + for (k = 0; k < 5; k++) + { + transparent_crc(g_1399[i][j][k], "g_1399[i][j][k]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + for (i = 0; i < 2; i++) + { + transparent_crc(g_1574[i].f0, "g_1574[i].f0", print_hash_value); + transparent_crc(g_1574[i].f1, "g_1574[i].f1", print_hash_value); + if (print_hash_value) printf("index = [%d]\n", i); + + } + transparent_crc(g_1582, "g_1582", print_hash_value); + transparent_crc(g_1693, "g_1693", print_hash_value); + transparent_crc(g_1695, "g_1695", print_hash_value); + transparent_crc(g_1743, "g_1743", print_hash_value); + transparent_crc(g_1771, "g_1771", print_hash_value); + for (i = 0; i < 2; i++) + { + for (j = 0; j < 4; j++) + { + for (k = 0; k < 3; k++) + { + transparent_crc(g_1864[i][j][k], "g_1864[i][j][k]", print_hash_value); + if (print_hash_value) printf("index = [%d][%d][%d]\n", i, j, k); + + } + } + } + transparent_crc(g_2120, "g_2120", print_hash_value); + platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value); + return 0; +} + +/************************ statistics ************************* +XXX max struct depth: 0 +breakdown: + depth: 0, occurrence: 713 +XXX total union variables: 42 + +XXX non-zero bitfields defined in structs: 1 +XXX zero bitfields defined in structs: 0 +XXX const bitfields defined in structs: 0 +XXX volatile bitfields defined in structs: 0 +XXX structs with bitfields in the program: 32 +breakdown: + indirect level: 0, occurrence: 20 + indirect level: 1, occurrence: 6 + indirect level: 2, occurrence: 3 + indirect level: 3, occurrence: 3 +XXX full-bitfields structs in the program: 0 +breakdown: +XXX times a bitfields struct's address is taken: 14 +XXX times a bitfields struct on LHS: 0 +XXX times a bitfields struct on RHS: 30 +XXX times a single bitfield on LHS: 14 +XXX times a single bitfield on RHS: 16 + +XXX max expression depth: 42 +breakdown: + depth: 1, occurrence: 160 + depth: 2, occurrence: 29 + depth: 3, occurrence: 2 + depth: 4, occurrence: 3 + depth: 5, occurrence: 1 + depth: 6, occurrence: 2 + depth: 7, occurrence: 1 + depth: 9, occurrence: 1 + depth: 10, occurrence: 2 + depth: 12, occurrence: 1 + depth: 14, occurrence: 1 + depth: 15, occurrence: 1 + depth: 16, occurrence: 1 + depth: 17, occurrence: 3 + depth: 18, occurrence: 2 + depth: 19, occurrence: 1 + depth: 20, occurrence: 2 + depth: 22, occurrence: 1 + depth: 23, occurrence: 2 + depth: 24, occurrence: 2 + depth: 25, occurrence: 1 + depth: 26, occurrence: 2 + depth: 27, occurrence: 3 + depth: 28, occurrence: 1 + depth: 29, occurrence: 2 + depth: 30, occurrence: 1 + depth: 34, occurrence: 1 + depth: 35, occurrence: 1 + depth: 36, occurrence: 1 + depth: 38, occurrence: 1 + depth: 42, occurrence: 1 + +XXX total number of pointers: 537 + +XXX times a variable address is taken: 1354 +XXX times a pointer is dereferenced on RHS: 255 +breakdown: + depth: 1, occurrence: 229 + depth: 2, occurrence: 25 + depth: 3, occurrence: 1 +XXX times a pointer is dereferenced on LHS: 245 +breakdown: + depth: 1, occurrence: 228 + depth: 2, occurrence: 17 +XXX times a pointer is compared with null: 50 +XXX times a pointer is compared with address of another variable: 8 +XXX times a pointer is compared with another pointer: 10 +XXX times a pointer is qualified to be dereferenced: 13484 + +XXX max dereference level: 5 +breakdown: + level: 0, occurrence: 0 + level: 1, occurrence: 1642 + level: 2, occurrence: 237 + level: 3, occurrence: 148 + level: 4, occurrence: 45 + level: 5, occurrence: 1 +XXX number of pointers point to pointers: 186 +XXX number of pointers point to scalars: 314 +XXX number of pointers point to structs: 0 +XXX percent of pointers has null in alias set: 31.3 +XXX average alias set size: 1.5 + +XXX times a non-volatile is read: 1761 +XXX times a non-volatile is write: 847 +XXX times a volatile is read: 0 +XXX times read thru a pointer: 0 +XXX times a volatile is write: 0 +XXX times written thru a pointer: 0 +XXX times a volatile is available for access: 0 +XXX percentage of non-volatile access: 100 + +XXX forward jumps: 0 +XXX backward jumps: 10 + +XXX stmts: 154 +XXX max block depth: 5 +breakdown: + depth: 0, occurrence: 24 + depth: 1, occurrence: 26 + depth: 2, occurrence: 22 + depth: 3, occurrence: 27 + depth: 4, occurrence: 21 + depth: 5, occurrence: 34 + +XXX percentage a fresh-made variable is used: 14.7 +XXX percentage an existing variable is used: 85.3 +FYI: the random generator makes assumptions about the integer size. See platform.info for more details. +********************* end of statistics **********************/ + diff --git a/tests/fuzz/15.c.txt b/tests/fuzz/15.c.txt new file mode 100644 index 00000000..42eb1e0f --- /dev/null +++ b/tests/fuzz/15.c.txt @@ -0,0 +1 @@ +checksum = B1ED5468 diff --git a/tests/gl_matrix_identity.c b/tests/gl_matrix_identity.c index 9f990a77..8ca7d0cb 100644 --- a/tests/gl_matrix_identity.c +++ b/tests/gl_matrix_identity.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -38,7 +38,7 @@ void verify() { for (int x = 0; x < width*height*4; x++) { if (x % 4 != 3) sum += x * data[x]; } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = sum; REPORT_RESULT(); #endif @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) verify(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(1500); #endif diff --git a/tests/gl_ps.c b/tests/gl_ps.c index 4fa79922..d9f3b079 100644 --- a/tests/gl_ps.c +++ b/tests/gl_ps.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -219,7 +219,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_ps_packed.c b/tests/gl_ps_packed.c index 9ab99cb8..be139cd9 100644 --- a/tests/gl_ps_packed.c +++ b/tests/gl_ps_packed.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -104,7 +104,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -216,7 +216,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_ps_strides.c b/tests/gl_ps_strides.c index d88f5d0b..1ff28c94 100644 --- a/tests/gl_ps_strides.c +++ b/tests/gl_ps_strides.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -227,7 +227,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_renderers.c b/tests/gl_renderers.c index 0a8e6e78..ca6e828e 100644 --- a/tests/gl_renderers.c +++ b/tests/gl_renderers.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 0 #endif @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -180,7 +180,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_stride.c b/tests/gl_stride.c index c254ad5a..d6cf1fd2 100644 --- a/tests/gl_stride.c +++ b/tests/gl_stride.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 0 #endif @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -141,7 +141,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_vertex_buffer.c b/tests/gl_vertex_buffer.c index 6b695462..73c30d48 100644 --- a/tests/gl_vertex_buffer.c +++ b/tests/gl_vertex_buffer.c @@ -22,7 +22,7 @@ REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 0 #endif @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -184,7 +184,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/gl_vertex_buffer_pre.c b/tests/gl_vertex_buffer_pre.c index 84b76569..fb967d11 100644 --- a/tests/gl_vertex_buffer_pre.c +++ b/tests/gl_vertex_buffer_pre.c @@ -22,7 +22,7 @@ REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 0 #endif @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -166,7 +166,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/glbegin_points.c b/tests/glbegin_points.c index 9128a4f5..ae061bb2 100644 --- a/tests/glbegin_points.c +++ b/tests/glbegin_points.c @@ -150,7 +150,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#if !defined(__EMSCRIPTEN__) // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/glgettexenv.c b/tests/glgettexenv.c index a051a690..54bf2af8 100644 --- a/tests/glgettexenv.c +++ b/tests/glgettexenv.c @@ -12,7 +12,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif diff --git a/tests/hello_world.ll b/tests/hello_world.ll index 19f84851..343805a0 100644 --- a/tests/hello_world.ll +++ b/tests/hello_world.ll @@ -1,6 +1,6 @@ ; ModuleID = 'tests/hello_world.bc' target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" -target triple = "le32-unknown-nacl" +target triple = "asmjs-unknown-emscripten" @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] diff --git a/tests/module/test_stdin.c b/tests/module/test_stdin.c index 319c686c..2772fcf0 100644 --- a/tests/module/test_stdin.c +++ b/tests/module/test_stdin.c @@ -3,7 +3,7 @@ #include <stdlib.h> #include <stdio.h> #include <unistd.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -48,7 +48,7 @@ int main(int argc, char const *argv[]) // should exit out after calling main_loop once. main_loop(); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 60, 0); #else while (1) main_loop(); sleep(1); diff --git a/tests/nbody-java/native_java_lang_String.c b/tests/nbody-java/native_java_lang_String.c index 5ccf21df..c55e5412 100644 --- a/tests/nbody-java/native_java_lang_String.c +++ b/tests/nbody-java/native_java_lang_String.c @@ -10,7 +10,7 @@ JAVA_INT java_lang_String_toLowerCaseImpl___int(JAVA_OBJECT me, JAVA_INT n1) { //XMLVM_BEGIN_NATIVE[java_lang_String_toLowerCaseImpl___int] -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ return tolower(n1); #else return towlower(n1); @@ -21,7 +21,7 @@ JAVA_INT java_lang_String_toLowerCaseImpl___int(JAVA_OBJECT me, JAVA_INT n1) JAVA_INT java_lang_String_toUpperCaseImpl___int(JAVA_OBJECT me, JAVA_INT n1) { //XMLVM_BEGIN_NATIVE[java_lang_String_toUpperCaseImpl___int] -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ return toupper(n1); #else return towupper(n1); diff --git a/tests/nbody-java/native_java_lang_System.c b/tests/nbody-java/native_java_lang_System.c index 861781ca..201f8beb 100644 --- a/tests/nbody-java/native_java_lang_System.c +++ b/tests/nbody-java/native_java_lang_System.c @@ -97,7 +97,7 @@ JAVA_OBJECT java_lang_System_getEncoding___int(JAVA_INT n1) { //XMLVM_BEGIN_NATIVE[java_lang_System_getEncoding___int] //Get charset from the OS -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ return xmlvm_create_java_string("UTF-8"); #else char charset[CHARSETBUFF]; diff --git a/tests/nbody-java/xmlvm.c b/tests/nbody-java/xmlvm.c index 35e04d16..dedf1bc6 100644 --- a/tests/nbody-java/xmlvm.c +++ b/tests/nbody-java/xmlvm.c @@ -102,7 +102,7 @@ void xmlvm_init() xmlvm_clear_constant_pool_cache(); #ifndef XMLVM_NO_GC -#ifndef EMSCRIPTEN +#ifndef __EMSCRIPTEN__ GC_finalize_on_demand = 1; GC_java_finalization = 1; java_lang_Thread* finalizerThread = (java_lang_Thread*) org_xmlvm_runtime_FinalizerNotifier_startFinalizerThread__(); @@ -115,7 +115,7 @@ void xmlvm_init() void xmlvm_destroy(java_lang_Thread* mainThread) { -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ return; // Let the JS engine handle clean up #endif diff --git a/tests/nbody-java/xmlvm.h b/tests/nbody-java/xmlvm.h index 0d931565..04f645db 100644 --- a/tests/nbody-java/xmlvm.h +++ b/tests/nbody-java/xmlvm.h @@ -22,7 +22,7 @@ #ifndef __XMLVM_H__ #define __XMLVM_H__ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ // Workaround definitions for Emscripten // TODO: Determine if different solution is needed diff --git a/tests/openal_buffers.c b/tests/openal_buffers.c index 31104a33..df6d8e3f 100644 --- a/tests/openal_buffers.c +++ b/tests/openal_buffers.c @@ -1,7 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <assert.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #include <AL/al.h> #include <AL/alc.h> @@ -68,7 +68,7 @@ void iter() { // Exit once we've processed the entire clip. if (offset >= size) { -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = 0; REPORT_RESULT(); #endif @@ -87,7 +87,7 @@ int main(int argc, char* argv[]) { // // Read in the audio sample. // -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ FILE* fp = fopen("the_entertainer.wav", "rb"); #else FILE* fp = fopen("sounds/the_entertainer.wav", "rb"); @@ -176,7 +176,7 @@ int main(int argc, char* argv[]) { // // Cycle and refill the buffers until we're done. // -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 0, 0); #else while (1) { diff --git a/tests/openal_playback.cpp b/tests/openal_playback.cpp index 6a8dae38..880b6906 100644 --- a/tests/openal_playback.cpp +++ b/tests/openal_playback.cpp @@ -5,7 +5,7 @@ #include <assert.h> #include <stdint.h> #include <unistd.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -25,7 +25,7 @@ void playSource(void* arg) alGetSourcei(source, AL_SOURCE_STATE, &state); assert(state == AL_STOPPED); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = 1; REPORT_RESULT(); #endif @@ -63,7 +63,7 @@ int main() { alGenBuffers(1, buffers); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ FILE* source = fopen("audio.wav", "rb"); #else FILE* source = fopen("sounds/audio.wav", "rb"); @@ -146,7 +146,7 @@ int main() { alGetSourcei(sources[0], AL_SOURCE_STATE, &state); assert(state == AL_PLAYING); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_async_call(playSource, reinterpret_cast<void*>(sources[0]), 700); #else usleep(700000); diff --git a/tests/perspective.c b/tests/perspective.c index 72f4c50f..77998557 100644 --- a/tests/perspective.c +++ b/tests/perspective.c @@ -8,7 +8,7 @@ #include <SDL/SDL.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <GL/gl.h> #include <GL/glu.h> #include "emscripten.h" @@ -19,7 +19,7 @@ #include <stdio.h> #include <stdlib.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #define emColor4ubv(x) #else #define emColor4ubv(x) glColor4ubv(x) @@ -392,7 +392,7 @@ int main( int argc, char* argv[] ) */ one_iter(); // just one for testing purposes -#ifndef EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(2000); #endif diff --git a/tests/poppler/utils/pdftoppm.cc b/tests/poppler/utils/pdftoppm.cc index 4df0f5d8..a6865cc6 100644 --- a/tests/poppler/utils/pdftoppm.cc +++ b/tests/poppler/utils/pdftoppm.cc @@ -183,7 +183,7 @@ static void savePageSlice(PDFDoc *doc, bitmap->writePNMFile(ppmFile); } } else { -#if EMSCRIPTEN // XXX EMSCRIPTEN: avoid writing to stdout, better for benchmarking +#ifdef __EMSCRIPTEN__ // XXX EMSCRIPTEN: avoid writing to stdout, better for benchmarking printf("avoiding writing to stdout\n"); #else diff --git a/tests/python/python.le32.bc b/tests/python/python.asmjs-unknown-emscripten.bc Binary files differindex 2a6bc77c..6c25401e 100644 --- a/tests/python/python.le32.bc +++ b/tests/python/python.asmjs-unknown-emscripten.bc diff --git a/tests/runner.py b/tests/runner.py index 32575a1a..c13a16eb 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -254,7 +254,7 @@ process(sys.argv[1]) if 'uccessfully compiled asm.js code' in err and 'asm.js link error' not in err: print >> sys.stderr, "[was asm.js'ified]" elif 'asm.js' in err: # if no asm.js error, then not an odin build - raise Exception("did NOT asm.js'ify") + raise Exception("did NOT asm.js'ify: " + err) err = '\n'.join(filter(lambda line: 'uccessfully compiled asm.js code' not in line, err.split('\n'))) return err @@ -583,7 +583,7 @@ class BrowserCore(RunnerCore): def with_report_result(self, code): return r''' - #if EMSCRIPTEN + #ifdef __EMSCRIPTEN__ #include <emscripten.h> #define REPORT_RESULT_INTERNAL(sync) \ char output[1000]; \ diff --git a/tests/s3tc.c b/tests/s3tc.c index 5f7bee83..ca575ffc 100644 --- a/tests/s3tc.c +++ b/tests/s3tc.c @@ -143,7 +143,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(1500); #endif diff --git a/tests/s3tc_crunch.c b/tests/s3tc_crunch.c index c2606c8f..ae5e1228 100644 --- a/tests/s3tc_crunch.c +++ b/tests/s3tc_crunch.c @@ -195,7 +195,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(1500); #endif diff --git a/tests/sdl_alloctext.c b/tests/sdl_alloctext.c index 173be348..b7e9e6cf 100644 --- a/tests/sdl_alloctext.c +++ b/tests/sdl_alloctext.c @@ -25,7 +25,7 @@ int main() SDL_FreeSurface(text); } -#if __EMSCRIPTEN__ +#ifdef __EMSCRIPTEN__ result = 1; REPORT_RESULT(); #endif diff --git a/tests/sdl_audio_beep.cpp b/tests/sdl_audio_beep.cpp index 95a5a7e8..82001e8a 100644 --- a/tests/sdl_audio_beep.cpp +++ b/tests/sdl_audio_beep.cpp @@ -9,7 +9,7 @@ #define M_PI 3.14159265358979323846f #endif -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include "emscripten/emscripten.h" #endif @@ -170,7 +170,7 @@ void nextTest(void *unused = 0) { ++s; if (s >= NUM_ELEMS(sdlAudioFormats)) { printf("All tests done. Quit.\n"); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_cancel_main_loop(); #ifdef REPORT_RESULT int result = 1; @@ -204,7 +204,7 @@ void update() { if (size == 0 && beep) { delete beep; beep = 0; -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_async_call(nextTest, 0, 1500); #else SDL_Delay(1500); @@ -233,7 +233,7 @@ int main(int argc, char** argv) { nextTest(); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(update, 60, 0); #else while(beep) { diff --git a/tests/sdl_audio_mix_channels.c b/tests/sdl_audio_mix_channels.c index dd91d594..73d21963 100644 --- a/tests/sdl_audio_mix_channels.c +++ b/tests/sdl_audio_mix_channels.c @@ -42,7 +42,7 @@ int main(int argc, char **argv) { int lastChannel = loadAndPlay(); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = (lastChannel == -1); REPORT_RESULT(); #endif diff --git a/tests/sdl_canvas.c b/tests/sdl_canvas.c index cab48985..4420d73e 100644 --- a/tests/sdl_canvas.c +++ b/tests/sdl_canvas.c @@ -6,7 +6,7 @@ int main(int argc, char **argv) { -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ // include GL stuff, to check that we can compile hybrid 2d/GL apps extern void glBegin(int mode); extern void glBindBuffer(int target, int buffer); diff --git a/tests/sdl_canvas_size.c b/tests/sdl_canvas_size.c index 923a9014..0d184823 100644 --- a/tests/sdl_canvas_size.c +++ b/tests/sdl_canvas_size.c @@ -30,7 +30,7 @@ REDISTRIBUTION OF THIS SOFTWARE. #include <string.h> #include <assert.h> -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -46,7 +46,7 @@ int main(int argc, char *argv[]) SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); // *new* -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ // Test 1: Check that initializing video mode with size (0,0) will use the size from the <canvas> element. screen = SDL_SetVideoMode( 0, 0, 16, SDL_OPENGL ); // *changed* @@ -177,7 +177,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/sdl_canvas_twice.c b/tests/sdl_canvas_twice.c index 28a7a01c..ba62846b 100644 --- a/tests/sdl_canvas_twice.c +++ b/tests/sdl_canvas_twice.c @@ -1,6 +1,6 @@ #include <SDL/SDL.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif diff --git a/tests/sdl_fog_density.c b/tests/sdl_fog_density.c index cab6a4d2..46d4a8a1 100644 --- a/tests/sdl_fog_density.c +++ b/tests/sdl_fog_density.c @@ -165,7 +165,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(30000); #endif diff --git a/tests/sdl_fog_exp2.c b/tests/sdl_fog_exp2.c index dba0c708..f813cede 100644 --- a/tests/sdl_fog_exp2.c +++ b/tests/sdl_fog_exp2.c @@ -166,7 +166,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#if !defined(__EMSCRIPTEN__) // Wait for 3 seconds to give us a chance to see the image SDL_Delay(30000); #endif diff --git a/tests/sdl_fog_linear.c b/tests/sdl_fog_linear.c index f0805650..d7107914 100644 --- a/tests/sdl_fog_linear.c +++ b/tests/sdl_fog_linear.c @@ -167,7 +167,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(30000); #endif diff --git a/tests/sdl_fog_negative.c b/tests/sdl_fog_negative.c index 1ede63a7..f99467bb 100644 --- a/tests/sdl_fog_negative.c +++ b/tests/sdl_fog_negative.c @@ -164,7 +164,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(30000); #endif diff --git a/tests/sdl_fog_simple.c b/tests/sdl_fog_simple.c index 6c052bf5..269b7432 100644 --- a/tests/sdl_fog_simple.c +++ b/tests/sdl_fog_simple.c @@ -167,7 +167,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(30000); #endif diff --git a/tests/sdl_gfx_primitives.c b/tests/sdl_gfx_primitives.c index db0c6181..dbf9849c 100644 --- a/tests/sdl_gfx_primitives.c +++ b/tests/sdl_gfx_primitives.c @@ -1,7 +1,7 @@ #include "SDL/SDL.h" #include "SDL/SDL_gfxPrimitives.h" -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include "emscripten.h" #endif @@ -31,7 +31,7 @@ int main(int argc, char **argv) { SDL_UpdateRect(screen, 0, 0, 0, 0); -#ifndef EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Event evt; SDL_SaveBMP(screen, "native_output.bmp"); while (1) { diff --git a/tests/sdl_headless.c b/tests/sdl_headless.c index 349c5e26..6157a46d 100644 --- a/tests/sdl_headless.c +++ b/tests/sdl_headless.c @@ -6,7 +6,7 @@ int main(int argc, char **argv) { -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ // include GL stuff, to check that we can compile hybrid 2d/GL apps extern void glBegin(int mode); extern void glBindBuffer(int target, int buffer); diff --git a/tests/sdl_ogl.c b/tests/sdl_ogl.c index e7071dcd..78efd7e0 100644 --- a/tests/sdl_ogl.c +++ b/tests/sdl_ogl.c @@ -157,7 +157,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/sdl_ogl_defaultMatrixMode.c b/tests/sdl_ogl_defaultMatrixMode.c index eec2a831..6044f1ab 100644 --- a/tests/sdl_ogl_defaultMatrixMode.c +++ b/tests/sdl_ogl_defaultMatrixMode.c @@ -158,7 +158,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/sdl_ogl_p.c b/tests/sdl_ogl_p.c index 1889d926..2607f35c 100644 --- a/tests/sdl_ogl_p.c +++ b/tests/sdl_ogl_p.c @@ -150,7 +150,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/sdl_ogl_proc_alias.c b/tests/sdl_ogl_proc_alias.c index c96da81b..4c251f83 100644 --- a/tests/sdl_ogl_proc_alias.c +++ b/tests/sdl_ogl_proc_alias.c @@ -166,7 +166,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/sdl_rotozoom.c b/tests/sdl_rotozoom.c index 2c0d35df..cc0ee224 100644 --- a/tests/sdl_rotozoom.c +++ b/tests/sdl_rotozoom.c @@ -2,7 +2,7 @@ #include "SDL/SDL_image.h" #include "SDL/SDL_rotozoom.h" -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include "emscripten.h" #endif @@ -45,7 +45,7 @@ int main(int argc, char **argv) { mainloop(); -#ifndef EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Event evt; SDL_SaveBMP(screen, "native_output.bmp"); while (1) { diff --git a/tests/sdl_swsurface.c b/tests/sdl_swsurface.c index 93141857..c859dbc7 100644 --- a/tests/sdl_swsurface.c +++ b/tests/sdl_swsurface.c @@ -12,7 +12,7 @@ int main(int argc, char** argv) { SDL_Quit(); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = 1; REPORT_RESULT(); #endif diff --git a/tests/sdlglshader.c b/tests/sdlglshader.c index 9cd80097..d629ca94 100644 --- a/tests/sdlglshader.c +++ b/tests/sdlglshader.c @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ SDL_Delay(3000); #endif diff --git a/tests/sockets/test_enet_client.c b/tests/sockets/test_enet_client.c index afcdcae8..b422e70c 100644 --- a/tests/sockets/test_enet_client.c +++ b/tests/sockets/test_enet_client.c @@ -1,14 +1,14 @@ #include <stdio.h> #include <string.h> #include <enet/enet.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif ENetHost * host; void main_loop() { -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ static int counter = 0; counter++; if (counter == 100) { @@ -34,7 +34,7 @@ void main_loop() { event.channelID); int result = strcmp("packetfoo", event.packet->data); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ REPORT_RESULT(); #else exit(EXIT_SUCCESS); @@ -92,7 +92,7 @@ int main (int argc, char ** argv) exit (EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #if USE_IFRAME emscripten_run_script("console.log('adding iframe');" "var iframe = document.createElement('iframe');" @@ -104,7 +104,7 @@ int main (int argc, char ** argv) #endif #endif -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 3, 1); #else while (1) main_loop(); diff --git a/tests/sockets/test_enet_server.c b/tests/sockets/test_enet_server.c index 9a4518ac..30d86a99 100644 --- a/tests/sockets/test_enet_server.c +++ b/tests/sockets/test_enet_server.c @@ -4,7 +4,7 @@ #include <string.h> #include <enet/enet.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -29,12 +29,12 @@ void send_msg(ENetPeer *peer) { void main_loop() { static int counter = 0; -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ counter++; #endif if (counter == 100) { printf("stop!\n"); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_cancel_main_loop(); #endif return; @@ -101,7 +101,7 @@ int main (int argc, char ** argv) exit (EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 3, 1); #else while (1) main_loop(); diff --git a/tests/sockets/test_getaddrinfo.c b/tests/sockets/test_getaddrinfo.c index 1f912c69..85610473 100644 --- a/tests/sockets/test_getaddrinfo.c +++ b/tests/sockets/test_getaddrinfo.c @@ -6,7 +6,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif diff --git a/tests/sockets/test_gethostbyname.c b/tests/sockets/test_gethostbyname.c index 459c6b98..c0e11efb 100644 --- a/tests/sockets/test_gethostbyname.c +++ b/tests/sockets/test_gethostbyname.c @@ -7,7 +7,7 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif diff --git a/tests/sockets/test_getnameinfo.c b/tests/sockets/test_getnameinfo.c index c3fec6b4..dd4a0419 100644 --- a/tests/sockets/test_getnameinfo.c +++ b/tests/sockets/test_getnameinfo.c @@ -6,7 +6,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -98,4 +98,4 @@ int main() { puts("success"); return EXIT_SUCCESS; -}
\ No newline at end of file +} diff --git a/tests/sockets/test_sockets_echo_client.c b/tests/sockets/test_sockets_echo_client.c index 684d767f..58d005c4 100644 --- a/tests/sockets/test_sockets_echo_client.c +++ b/tests/sockets/test_sockets_echo_client.c @@ -10,7 +10,7 @@ #include <fcntl.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -42,7 +42,7 @@ void finish(int result) { close(server.fd); server.fd = 0; } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ REPORT_RESULT(); #endif exit(result); @@ -160,7 +160,7 @@ int main() { finish(EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 0, 0); #else while (1) main_loop(); diff --git a/tests/sockets/test_sockets_echo_server.c b/tests/sockets/test_sockets_echo_server.c index b24472e8..55898add 100644 --- a/tests/sockets/test_sockets_echo_server.c +++ b/tests/sockets/test_sockets_echo_server.c @@ -11,7 +11,7 @@ #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -186,7 +186,7 @@ int main() { } #endif -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 60, 0); #else while (1) main_loop(); diff --git a/tests/sockets/test_sockets_partial_client.c b/tests/sockets/test_sockets_partial_client.c index 61084b17..2d930516 100644 --- a/tests/sockets/test_sockets_partial_client.c +++ b/tests/sockets/test_sockets_partial_client.c @@ -10,7 +10,7 @@ #include <unistd.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -19,7 +19,7 @@ int sum = 0; void finish(int result) { close(sockfd); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ REPORT_RESULT(); #endif exit(result); @@ -108,7 +108,7 @@ int main() { finish(EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 0, 0); #else while (1) iter(); diff --git a/tests/sockets/test_sockets_partial_server.c b/tests/sockets/test_sockets_partial_server.c index f740c307..5c3621a0 100644 --- a/tests/sockets/test_sockets_partial_server.c +++ b/tests/sockets/test_sockets_partial_server.c @@ -11,7 +11,7 @@ #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -124,7 +124,7 @@ int main() { exit(EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 60, 0); #else while (1) iter(); diff --git a/tests/sockets/test_sockets_select_server_closes_connection_client_rw.c b/tests/sockets/test_sockets_select_server_closes_connection_client_rw.c index e69c3ac0..28a81cd9 100644 --- a/tests/sockets/test_sockets_select_server_closes_connection_client_rw.c +++ b/tests/sockets/test_sockets_select_server_closes_connection_client_rw.c @@ -10,7 +10,7 @@ #include <fcntl.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -24,7 +24,7 @@ msg_t writemsg; void finish(int result) { close(sockfd); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ REPORT_RESULT(); #endif exit(result); @@ -216,7 +216,7 @@ int main() { finish(EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 0, 0); #else while (1) main_loop(); diff --git a/tests/sockets/test_sockets_select_server_down_client.c b/tests/sockets/test_sockets_select_server_down_client.c index 2765a879..5b050870 100644 --- a/tests/sockets/test_sockets_select_server_down_client.c +++ b/tests/sockets/test_sockets_select_server_down_client.c @@ -10,7 +10,7 @@ #include <fcntl.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -20,7 +20,7 @@ int sockfd = -1; void finish(int result) { close(sockfd); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ REPORT_RESULT(); #endif exit(result); @@ -87,7 +87,7 @@ int main() { finish(EXIT_FAILURE); } -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 0, 0); #else while (1) iter(); diff --git a/tests/sockets/test_sockets_select_server_down_server.c b/tests/sockets/test_sockets_select_server_down_server.c index 012932cf..07c5c847 100644 --- a/tests/sockets/test_sockets_select_server_down_server.c +++ b/tests/sockets/test_sockets_select_server_down_server.c @@ -10,7 +10,7 @@ #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -47,7 +47,7 @@ int main() { close(serverfd); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(main_loop, 60, 0); #else while (1) main_loop(); sleep(1); diff --git a/tests/sockets/webrtc_host.c b/tests/sockets/webrtc_host.c index 866c875c..e482d4ae 100644 --- a/tests/sockets/webrtc_host.c +++ b/tests/sockets/webrtc_host.c @@ -9,7 +9,7 @@ #include <unistd.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -37,7 +37,7 @@ void iter() { shutdown(sock, SHUT_RDWR); close(sock); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ int result = 1; REPORT_RESULT(); exit(EXIT_SUCCESS); @@ -79,7 +79,7 @@ int main(void) hdr.msg_iov = iov; hdr.msg_iovlen = 1; -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 0, 0); #else while (!done) iter(); diff --git a/tests/sockets/webrtc_peer.c b/tests/sockets/webrtc_peer.c index dd44e93e..327782d6 100644 --- a/tests/sockets/webrtc_peer.c +++ b/tests/sockets/webrtc_peer.c @@ -9,7 +9,7 @@ #include <unistd.h> #include <sys/ioctl.h> #include <assert.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -71,7 +71,7 @@ int main(void) hdr.msg_iov = iov; hdr.msg_iovlen = 1; -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ emscripten_set_main_loop(iter, 0, 0); #else while (!done) iter(); diff --git a/tests/sqlite/sqlite3.c b/tests/sqlite/sqlite3.c index bcbb7cdd..d49e1887 100644 --- a/tests/sqlite/sqlite3.c +++ b/tests/sqlite/sqlite3.c @@ -38132,7 +38132,7 @@ static int writeJournalHdr(Pager *pPager){ u32 nHeader = (u32)pPager->pageSize;/* Size of buffer pointed to by zHeader */ u32 nWrite; /* Bytes of header sector written */ int ii; /* Loop counter */ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ u8 temp[4]; #endif @@ -38185,7 +38185,7 @@ static int writeJournalHdr(Pager *pPager){ } /* The random check-hash initialiser */ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ sqlite3_randomness(sizeof(pPager->cksumInit), temp); pPager->cksumInit = temp[0] + (((u32)temp[1]) << 8) + (((u32)temp[2]) << 16) + (((u32)temp[3]) << 24); #else @@ -52942,7 +52942,7 @@ static void dropCell(MemPage *pPage, int idx, int sz, int *pRC){ endPtr = &data[pPage->cellOffset + 2*pPage->nCell - 2]; assert( (SQLITE_PTR_TO_INT(ptr)&1)==0 ); /* ptr is always 2-byte aligned */ while( ptr<endPtr ){ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ ptr[0] = ptr[2]; ptr[1] = ptr[3]; #else @@ -53043,7 +53043,7 @@ static void insertCell( endPtr = &data[ins]; assert( (SQLITE_PTR_TO_INT(ptr)&1)==0 ); /* ptr is always 2-byte aligned */ while( ptr>endPtr ){ -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ ptr[0] = ptr[-2]; ptr[1] = ptr[-1]; #else diff --git a/tests/stat/test_mknod.c b/tests/stat/test_mknod.c index 361b2315..262c8a5f 100644 --- a/tests/stat/test_mknod.c +++ b/tests/stat/test_mknod.c @@ -32,7 +32,7 @@ void test() { // than a FIFO. so, the tests are disabled when running // natively as they'd be utterly inconsistent. // -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ // mknod a folder err = mknod("mknod-folder", S_IFDIR | 0777, 0); diff --git a/tests/stat/test_stat.c b/tests/stat/test_stat.c index f59fb3c3..e14ebdc5 100644 --- a/tests/stat/test_stat.c +++ b/tests/stat/test_stat.c @@ -55,7 +55,7 @@ void test() { assert(s.st_atime == 1200000000); assert(s.st_mtime == 1200000000); assert(s.st_ctime); -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 1); #endif @@ -73,7 +73,7 @@ void test() { assert(s.st_atime == 1200000000); assert(s.st_mtime == 1200000000); assert(s.st_ctime); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 1); #endif @@ -91,7 +91,7 @@ void test() { assert(s.st_atime == 1200000000); assert(s.st_mtime == 1200000000); assert(s.st_ctime); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 1); #endif @@ -112,7 +112,7 @@ void test() { assert(s.st_atime); assert(s.st_mtime); assert(s.st_ctime); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 0); #endif @@ -130,7 +130,7 @@ void test() { assert(s.st_atime == 1200000000); assert(s.st_mtime == 1200000000); assert(s.st_ctime); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 1); #endif @@ -148,7 +148,7 @@ void test() { assert(s.st_atime != 1200000000); // should NOT match the utime call we did for dir/file assert(s.st_mtime != 1200000000); assert(s.st_ctime); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ assert(s.st_blksize == 4096); assert(s.st_blocks == 1); #endif diff --git a/tests/test_core.py b/tests/test_core.py index c40d73f4..f67d820a 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -6,7 +6,7 @@ from tools.shared import * from runner import RunnerCore, path_from_root, checked_sanity, test_modes, get_bullet_library class T(RunnerCore): # Short name, to make it more fun to use manually on the commandline - def is_le32(self): + def is_emscripten_abi(self): return not ('i386-pc-linux-gnu' in COMPILER_OPTS or self.env.get('EMCC_LLVM_TARGET') == 'i386-pc-linux-gnu') def test_hello_world(self): @@ -504,9 +504,14 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co self.do_run(open(path_from_root('tests', 'sha1.c')).read(), 'SHA1=15dd99a1991e0b3826fede3deffc1feba42278e6') + def test_asmjs_unknown_emscripten(self): + if self.emcc_args == None: return self.skip('needs emcc') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for asmjs-unknown-emscripten target test') + self.do_run(open(path_from_root('tests', 'asmjs-unknown-emscripten.c')).read(), '') + def test_cube2md5(self): if self.emcc_args == None: return self.skip('needs emcc') - if not self.is_le32(): return self.skip('le32 needed for accurate math') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for accurate math') self.emcc_args += ['--embed-file', 'cube2md5.txt'] shutil.copyfile(path_from_root('tests', 'cube2md5.txt'), os.path.join(self.get_dir(), 'cube2md5.txt')) self.do_run(open(path_from_root('tests', 'cube2md5.cpp')).read(), open(path_from_root('tests', 'cube2md5.ok')).read()) @@ -525,18 +530,21 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co os.environ['EMCC_FAST_COMPILER'] = "0" try: old_chunk_size = os.environ.get('EMSCRIPT_MAX_CHUNK_SIZE') or '' - os.environ['EMSCRIPT_MAX_CHUNK_SIZE'] = '1' # test splitting out each function to a chunk in emscripten.py (21 functions here) - - # A good test of i64 math - if Settings.USE_TYPED_ARRAYS != 2: return self.skip('requires ta2 C-style memory aliasing') - self.do_run('', 'Usage: hashstring <seed>', - libraries=self.get_library('cube2hash', ['cube2hash.bc'], configure=None, cache_name_extra=str(x86)), - includes=[path_from_root('tests', 'cube2hash')]) - - for text, output in [('fleefl', '892BDB6FD3F62E863D63DA55851700FDE3ACF30204798CE9'), - ('fleefl2', 'AA2CC5F96FC9D540CA24FDAF1F71E2942753DB83E8A81B61'), - ('64bitisslow', '64D8470573635EC354FEE7B7F87C566FCAF1EFB491041670')]: - self.do_run('', 'hash value: ' + output, [text], no_build=True) + + for chunk_size in ['1', old_chunk_size]: # test splitting out each function to a chunk in emscripten.py (21 functions here) + print ' chunks', chunk_size + os.environ['EMSCRIPT_MAX_CHUNK_SIZE'] = chunk_size + + # A good test of i64 math + if Settings.USE_TYPED_ARRAYS != 2: return self.skip('requires ta2 C-style memory aliasing') + self.do_run('', 'Usage: hashstring <seed>', + libraries=self.get_library('cube2hash', ['cube2hash.bc'], configure=None, cache_name_extra=str(x86)), + includes=[path_from_root('tests', 'cube2hash')]) + + for text, output in [('fleefl', '892BDB6FD3F62E863D63DA55851700FDE3ACF30204798CE9'), + ('fleefl2', 'AA2CC5F96FC9D540CA24FDAF1F71E2942753DB83E8A81B61'), + ('64bitisslow', '64D8470573635EC354FEE7B7F87C566FCAF1EFB491041670')]: + self.do_run('', 'hash value: ' + output, [text], no_build=True) finally: os.environ['EMSCRIPT_MAX_CHUNK_SIZE'] = old_chunk_size finally: @@ -586,7 +594,7 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co # TODO: A version of this with int64s as well - if self.is_le32(): + if self.is_emscripten_abi(): return self.skip('LLVM marks the reads of s as fully aligned, making this test invalid') else: self.do_run(src, '*12 : 1 : 12\n328157500735811.0,23,416012775903557.0,99\n') @@ -666,7 +674,7 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co } ''' - if self.is_le32(): + if self.is_emscripten_abi(): self.do_run(src, '''16,32 0,8,8,8 16,24,24,24 @@ -848,7 +856,7 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co def test_math_lgamma(self): if self.emcc_args is None: return self.skip('requires emcc') - if not self.is_le32(): return self.skip('le32 needed for accurate math') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for accurate math') test_path = path_from_root('tests', 'math', 'lgamma') src, output = (test_path + s for s in ('.in', '.out')) @@ -1872,7 +1880,7 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co # Compressed memory. Note that sizeof() does give the fat sizes, however! self.do_run(src, '*0,0,0,1,2,3,4,5*\n*1,0,0*\n*0*\n0:1,1\n1:1,1\n2:1,1\n*12,20,5*') else: - if self.is_le32(): + if self.is_emscripten_abi(): self.do_run(src, '*0,0,0,4,8,16,20,24*\n*1,0,0*\n*0*\n0:1,1\n1:1,1\n2:1,1\n*16,24,24*') else: self.do_run(src, '*0,0,0,4,8,12,16,20*\n*1,0,0*\n*0*\n0:1,1\n1:1,1\n2:1,1\n*12,20,20*') @@ -1941,7 +1949,7 @@ def process(filename): self.do_run(open(src).read(), open(output).read().replace('waka', EMSCRIPTEN_VERSION)) def test_inlinejs(self): - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') if os.environ.get('EMCC_FAST_COMPILER') != '0': return self.skip('fastcomp only supports EM_ASM') test_path = path_from_root('tests', 'core', 'test_inlinejs') @@ -1954,7 +1962,7 @@ def process(filename): for i in range(1, 5): assert ('comment%d' % i) in out def test_inlinejs2(self): - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') if os.environ.get('EMCC_FAST_COMPILER') != '0': return self.skip('fastcomp only supports EM_ASM') test_path = path_from_root('tests', 'core', 'test_inlinejs2') @@ -2143,7 +2151,7 @@ def process(filename): def test_varargs(self): if Settings.QUANTUM_SIZE == 1: return self.skip('FIXME: Add support for this') - if not self.is_le32(): return self.skip('we do not support all varargs stuff without le32') + if not self.is_emscripten_abi(): return self.skip('we do not support all varargs stuff without asmjs-unknown-emscripten') test_path = path_from_root('tests', 'core', 'test_varargs') src, output = (test_path + s for s in ('.in', '.out')) @@ -2152,7 +2160,7 @@ def process(filename): def test_varargs_byval(self): if Settings.USE_TYPED_ARRAYS != 2: return self.skip('FIXME: Add support for this') - if self.is_le32(): return self.skip('clang cannot compile this code with that target yet') + if self.is_emscripten_abi(): return self.skip('clang cannot compile this code with that target yet') src = r''' #include <stdio.h> @@ -2776,8 +2784,8 @@ The current type of b is: 9 else: Settings.NAMED_GLOBALS = 1 - if not self.is_le32(): - self.skip('need le32 for dlfcn support') + if not self.is_emscripten_abi(): + self.skip('need asmjs-unknown-emscripten for dlfcn support') return False else: return True @@ -3614,7 +3622,7 @@ int main() def test_strtod(self): if self.emcc_args is None: return self.skip('needs emcc for libc') - if not self.is_le32(): return self.skip('le32 needed for accurate math') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for accurate math') src = r''' #include <stdio.h> @@ -3770,7 +3778,7 @@ int main() def test_sscanf(self): if self.emcc_args is None: return self.skip('needs emcc for libc') - if not self.is_le32(): return self.skip('le32 needed for accurate math') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for accurate math') test_path = path_from_root('tests', 'core', 'test_sscanf') src, output = (test_path + s for s in ('.in', '.out')) @@ -4174,7 +4182,7 @@ def process(filename): def test_utf32(self): if self.emcc_args is None: return self.skip('need libc for wcslen()') - if not self.is_le32(): return self.skip('this test uses inline js, which requires le32') + if not self.is_emscripten_abi(): return self.skip('this test uses inline js, which requires asmjs-unknown-emscripten') self.do_run(open(path_from_root('tests', 'utf32.cpp')).read(), 'OK.') self.do_run(open(path_from_root('tests', 'utf32.cpp')).read(), 'OK.', args=['-fshort-wchar']) @@ -4231,13 +4239,13 @@ def process(filename): def test_fs_nodefs_rw(self): if self.emcc_args is None: return self.skip('requires emcc') - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') src = open(path_from_root('tests', 'fs', 'test_nodefs_rw.c'), 'r').read() self.do_run(src, 'success', force_c=True, js_engines=[NODE_JS]) def test_unistd_access(self): self.clear() - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'access.c'), 'r').read() expected = open(path_from_root('tests', 'unistd', 'access.out'), 'r').read() @@ -4245,7 +4253,7 @@ def process(filename): self.do_run(src, expected, js_engines=[NODE_JS]) def test_unistd_curdir(self): - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') src = open(path_from_root('tests', 'unistd', 'curdir.c'), 'r').read() expected = open(path_from_root('tests', 'unistd', 'curdir.out'), 'r').read() self.do_run(src, expected) @@ -4276,7 +4284,7 @@ def process(filename): def test_unistd_truncate(self): self.clear() - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'truncate.c'), 'r').read() expected = open(path_from_root('tests', 'unistd', 'truncate.out'), 'r').read() @@ -4305,7 +4313,7 @@ def process(filename): def test_unistd_unlink(self): self.clear() if self.emcc_args is None: return self.skip('requires emcc') - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'unlink.c'), 'r').read() Building.COMPILER_TEST_OPTS += ['-D' + fs] @@ -4313,7 +4321,7 @@ def process(filename): def test_unistd_links(self): self.clear() - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') for fs in ['MEMFS', 'NODEFS']: if WINDOWS and fs == 'NODEFS': print >> sys.stderr, 'Skipping NODEFS part of this test for test_unistd_links on Windows, since it would require administrative privileges.' @@ -4333,7 +4341,7 @@ def process(filename): def test_unistd_io(self): self.clear() - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') if self.run_name == 'o2': return self.skip('non-asm optimized builds can fail with inline js') if self.emcc_args is None: return self.skip('requires emcc') for fs in ['MEMFS', 'NODEFS']: @@ -4344,7 +4352,7 @@ def process(filename): def test_unistd_misc(self): if self.emcc_args is None: return self.skip('requires emcc') - if not self.is_le32(): return self.skip('le32 needed for inline js') + if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js') for fs in ['MEMFS', 'NODEFS']: src = open(path_from_root('tests', 'unistd', 'misc.c'), 'r').read() expected = open(path_from_root('tests', 'unistd', 'misc.out'), 'r').read() @@ -4835,7 +4843,7 @@ def process(filename): def test_sqlite(self): # gcc -O3 -I/home/alon/Dev/emscripten/tests/sqlite -ldl src.c if self.emcc_args is None: return self.skip('Very slow without ta2, and we would also need to include dlmalloc manually without emcc') - if not self.is_le32(): return self.skip('fails on x86 due to a legalization issue on llvm 3.3') + if not self.is_emscripten_abi(): return self.skip('fails on x86 due to a legalization issue on llvm 3.3') if Settings.QUANTUM_SIZE == 1: return self.skip('TODO FIXME') self.banned_js_engines = [NODE_JS] # OOM in older node @@ -5102,12 +5110,12 @@ def process(filename): def test_python(self): if self.emcc_args is None: return self.skip('requires emcc') if Settings.QUANTUM_SIZE == 1: return self.skip('TODO: make this work') - if not self.is_le32(): return self.skip('fails on non-le32') # FIXME + if not self.is_emscripten_abi(): return self.skip('fails on not asmjs-unknown-emscripten') # FIXME #Settings.EXPORTED_FUNCTIONS += ['_PyRun_SimpleStringFlags'] # for the demo - if self.is_le32(): - bitcode = path_from_root('tests', 'python', 'python.le32.bc') + if self.is_emscripten_abi(): + bitcode = path_from_root('tests', 'python', 'python.asmjs-unknown-emscripten.bc') else: bitcode = path_from_root('tests', 'python', 'python.small.bc') @@ -5153,8 +5161,8 @@ def process(filename): if '_noasm' in shortname and Settings.ASM_JS: print self.skip('case "%s" not relevant for asm.js' % shortname) continue - if '_le32' in shortname and not self.is_le32(): - print self.skip('case "%s" not relevant for non-le32 target' % shortname) + if '_eua' in shortname and not self.is_emscripten_abi(): + print self.skip('case "%s" not relevant for not asmjs-unknown-emscripten target' % shortname) continue if '_fastcomp' in shortname and not os.environ.get('EMCC_FAST_COMPILER') != '0': print self.skip('case "%s" not relevant for non-fastcomp' % shortname) diff --git a/tests/test_float_literals.cpp b/tests/test_float_literals.cpp index fdae2764..2920fbd1 100644 --- a/tests/test_float_literals.cpp +++ b/tests/test_float_literals.cpp @@ -4,7 +4,7 @@ #include <stdio.h> #include <stdlib.h> -#if defined(_MSC_VER) || defined(EMSCRIPTEN) +#if defined(_MSC_VER) || defined(__EMSCRIPTEN__) #define FLOAT_NAN ((float)std::numeric_limits<float>::quiet_NaN()) #define FLOAT_INF ((float)std::numeric_limits<float>::infinity()) #else @@ -12,7 +12,7 @@ #define FLOAT_INF ((float)INFINITY) #endif -#if defined(_MSC_VER) || defined(EMSCRIPTEN) +#if defined(_MSC_VER) || defined(__EMSCRIPTEN__) #define DOUBLE_NAN ((double)std::numeric_limits<double>::quiet_NaN()) #define DOUBLE_INF ((double)std::numeric_limits<double>::infinity()) #else diff --git a/tests/test_other.py b/tests/test_other.py index 69f8d5c0..f5a4ebc9 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -919,8 +919,8 @@ This pointer might make sense in another type signature: i: _my_func for test_opts, expected_ranges in [ ([], { 100: (190, 500), - 250: (200, 500), - 500: (250, 500), + 250: (200, 600), + 500: (250, 700), 1000: (230, 1000), 2000: (380, 2000), 5000: (500, 5000), @@ -2391,3 +2391,40 @@ int main() { assert 'emcc: warning: unaligned store' in output[1] assert '@line 9 "src.cpp"' in output[1] + def test_no_exit_runtime(self): + open('code.cpp', 'w').write(r''' +#include <stdio.h> + +template<int x> +struct Waste { + Waste() { + printf("coming around %d\n", x); + } + ~Waste() { + printf("going away %d\n", x); + } +}; + +Waste<1> w1; +Waste<2> w2; +Waste<3> w3; +Waste<4> w4; +Waste<5> w5; + +int main(int argc, char **argv) { + return 0; +} +''') + + for no_exit in [0, 1]: + for opts in [0, 1]: + print no_exit, opts + Popen([PYTHON, EMCC, '-O' + str(opts), 'code.cpp', '-s', 'NO_EXIT_RUNTIME=' + str(no_exit)]).communicate() + output = run_js(os.path.join(self.get_dir(), 'a.out.js'), stderr=PIPE, full_output=True, engine=NODE_JS) + src = open('a.out.js').read() + exit = 1-no_exit + assert 'coming around' in output + assert ('going away' in output) == exit, 'destructors should not run if no exit' + assert ('_ZN5WasteILi2EED1Ev' in src) == exit, 'destructors should not appear if no exit' + assert ('atexit(' in src) == exit, 'atexit should not appear or be called' + diff --git a/tests/test_sanity.py b/tests/test_sanity.py index 5713c99c..f78ff1c5 100644 --- a/tests/test_sanity.py +++ b/tests/test_sanity.py @@ -15,6 +15,8 @@ def wipe(): def mtime(filename): return os.stat(filename).st_mtime +SANITY_MESSAGE = 'Emscripten: Running sanity checks' + class sanity(RunnerCore): @classmethod def setUpClass(self): @@ -279,7 +281,6 @@ fi del os.environ['EM_IGNORE_SANITY'] def test_emcc(self): - SANITY_MESSAGE = 'Emscripten: Running sanity checks' SANITY_FAIL_MESSAGE = 'sanity check failed to run' # emcc should check sanity if no ${EM_CONFIG}_sanity @@ -318,6 +319,10 @@ fi output = self.check_working(EMCC) self.assertNotContained(SANITY_MESSAGE, output) + # also with -v, with or without inputs + output = self.check_working([EMCC, '-v'], SANITY_MESSAGE) + output = self.check_working([EMCC, '-v', path_from_root('tests', 'hello_world.c')], SANITY_MESSAGE) + # Make sure the test runner didn't do anything to the setup output = self.check_working(EMCC) self.assertNotContained(SANITY_MESSAGE, output) @@ -436,6 +441,7 @@ fi output = self.do([PYTHON, EMCC, '--clear-cache']) assert ERASING_MESSAGE in output assert not os.path.exists(EMCC_CACHE) + assert SANITY_MESSAGE in output # Changing LLVM_ROOT, even without altering .emscripten, clears the cache ensure_cache() @@ -489,7 +495,7 @@ fi try: old = os.environ.get('EMCC_LLVM_TARGET') or '' for compiler in [EMCC, EMXX]: - for target in ['i386-pc-linux-gnu', 'le32-unknown-nacl']: + for target in ['i386-pc-linux-gnu', 'asmjs-unknown-emscripten']: print compiler, target os.environ['EMCC_LLVM_TARGET'] = target out, err = Popen([PYTHON, EMCC, path_from_root('tests', 'hello_world.cpp'), '-v'], stdout=PIPE, stderr=PIPE).communicate() diff --git a/tests/tex_nonbyte.c b/tests/tex_nonbyte.c index 960d0efb..ffeb9f24 100644 --- a/tests/tex_nonbyte.c +++ b/tests/tex_nonbyte.c @@ -22,7 +22,7 @@ RESULTING FROM THE USE, MODIFICATION, OR REDISTRIBUTION OF THIS SOFTWARE. */ -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ #define USE_GLEW 1 #endif @@ -118,7 +118,7 @@ int main(int argc, char *argv[]) glClearColor( 0, 0, 0, 0 ); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL #endif @@ -192,7 +192,7 @@ int main(int argc, char *argv[]) SDL_GL_SwapBuffers(); -#if !EMSCRIPTEN +#ifndef __EMSCRIPTEN__ // Wait for 3 seconds to give us a chance to see the image SDL_Delay(3000); #endif diff --git a/tests/unistd/unlink.c b/tests/unistd/unlink.c index 9f532325..a15baab8 100644 --- a/tests/unistd/unlink.c +++ b/tests/unistd/unlink.c @@ -7,7 +7,7 @@ #include <string.h> #include <unistd.h> #include <sys/stat.h> -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif @@ -23,7 +23,7 @@ static void create_file(const char *path, const char *buffer, int mode) { void setup() { mkdir("working", 0777); -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ EM_ASM( #if NODEFS FS.mount(NODEFS, { root: '.' }, 'working'); diff --git a/tests/uuid/test.c b/tests/uuid/test.c index dc2c6589..f5f84011 100644 --- a/tests/uuid/test.c +++ b/tests/uuid/test.c @@ -59,7 +59,7 @@ int main() { // The following lets the browser test exit cleanly. int result = 1; - #if EMSCRIPTEN + #if defined(__EMSCRIPTEN__) #ifdef REPORT_RESULT REPORT_RESULT(); #endif diff --git a/tools/shared.py b/tools/shared.py index b170972b..b7a186fc 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -361,7 +361,7 @@ def find_temp_directory(): # we re-check sanity when the settings are changed) # We also re-check sanity and clear the cache when the version changes -EMSCRIPTEN_VERSION = '1.12.1' +EMSCRIPTEN_VERSION = '1.12.2' def generate_sanity(): return EMSCRIPTEN_VERSION + '|' + get_llvm_target() + '|' + LLVM_ROOT + '|' + get_clang_version() @@ -618,7 +618,7 @@ except: # Target choice. Must be synced with src/settings.js (TARGET_*) def get_llvm_target(): - return os.environ.get('EMCC_LLVM_TARGET') or 'le32-unknown-nacl' # 'i386-pc-linux-gnu' + return os.environ.get('EMCC_LLVM_TARGET') or 'asmjs-unknown-emscripten' LLVM_TARGET = get_llvm_target() # COMPILER_OPTS: options passed to clang when generating bitcode for us @@ -626,19 +626,28 @@ try: COMPILER_OPTS # Can be set in EM_CONFIG, optionally except: COMPILER_OPTS = [] -COMPILER_OPTS = COMPILER_OPTS + ['-m32', '-DEMSCRIPTEN', '-D__EMSCRIPTEN__', - '-fno-math-errno', - #'-fno-threadsafe-statics', # disabled due to issue 1289 +COMPILER_OPTS = COMPILER_OPTS + [#'-fno-threadsafe-statics', # disabled due to issue 1289 '-target', LLVM_TARGET] -if LLVM_TARGET == 'le32-unknown-nacl': - COMPILER_OPTS = filter(lambda opt: opt != '-m32', COMPILER_OPTS) # le32 target is 32-bit anyhow, no need for -m32 - COMPILER_OPTS += ['-U__native_client__', '-U__pnacl__', '-U__ELF__'] # The nacl target is originally used for Google Native Client. Emscripten is not NaCl, so remove the platform #define, when using their triple. - -# Remove various platform specific defines, and set little endian -COMPILER_STANDARDIZATION_OPTS = ['-U__i386__', '-U__i386', '-Ui386', '-U__STRICT_ANSI__', '-D__IEEE_LITTLE_ENDIAN', - '-U__SSE__', '-U__SSE_MATH__', '-U__SSE2__', '-U__SSE2_MATH__', '-U__MMX__', - '-U__APPLE__', '-U__linux__'] +# COMPILER_STANDARDIZATION_OPTS: Options to correct various predefined macro options. +COMPILER_STANDARDIZATION_OPTS = [] + +# When we're not using an appropriate target triple, use -m32 to get i386, which we +# can mostly make work. +if LLVM_TARGET != 'asmjs-unknown-emscripten' and LLVM_TARGET != 'le32-unknown-nacl': + COMPILER_OPTS += ['-m32'] + COMPILER_STANDARDIZATION_OPTS += ['-U__i386__', '-U__i386', '-Ui386', + '-U__SSE__', '-U__SSE_MATH__', '-U__SSE2__', '-U__SSE2_MATH__', '-U__MMX__', + '-U__APPLE__', '-U__linux__'] + +# With the asmjs-unknown-emscripten target triple, clang sets up language modes +# and predefined macros properly. When using the other targets, we have to set things +# up manually. +if LLVM_TARGET != 'asmjs-unknown-emscripten': + COMPILER_OPTS += ['-fno-math-errno'] + COMPILER_STANDARDIZATION_OPTS += ['-D__IEEE_LITTLE_ENDIAN'] + COMPILER_OPTS += ['-DEMSCRIPTEN', '-D__EMSCRIPTEN__', '-fno-math-errno', + '-U__native_client__', '-U__pnacl__', '-U__ELF__'] USE_EMSDK = not os.environ.get('EMMAKEN_NO_SDK') @@ -658,8 +667,10 @@ if USE_EMSDK: '-Xclang', '-isystem' + path_from_root('system', 'include', 'SDL'), ] EMSDK_OPTS += COMPILER_STANDARDIZATION_OPTS - if LLVM_TARGET != 'le32-unknown-nacl': - EMSDK_CXX_OPTS = ['-nostdinc++'] # le32 target does not need -nostdinc++ + # For temporary compatibility, treat 'le32-unknown-nacl' as 'asmjs-unknown-emscripten'. + if LLVM_TARGET != 'asmjs-unknown-emscripten' and \ + LLVM_TARGET != 'le32-unknown-pnacl': + EMSDK_CXX_OPTS = ['-nostdinc++'] # asmjs-unknown-emscripten target does not need -nostdinc++ else: EMSDK_CXX_OPTS = [] COMPILER_OPTS += EMSDK_OPTS @@ -675,9 +686,12 @@ else: try: if 'gcparam' not in str(SPIDERMONKEY_ENGINE): + new_spidermonkey = SPIDERMONKEY_ENGINE if type(SPIDERMONKEY_ENGINE) is str: - SPIDERMONKEY_ENGINE = [SPIDERMONKEY_ENGINE] - SPIDERMONKEY_ENGINE += ['-e', "gcparam('maxBytes', 1024*1024*1024);"] # Our very large files need lots of gc heap + new_spidermonkey = [SPIDERMONKEY_ENGINE] + new_spidermonkey += ['-e', "gcparam('maxBytes', 1024*1024*1024);"] # Our very large files need lots of gc heap + JS_ENGINES = map(lambda x: x if x != SPIDERMONKEY_ENGINE else new_spidermonkey, JS_ENGINES) + SPIDERMONKEY_ENGINE = new_spidermonkey except NameError: pass |