From 97b05d19563070cb5f75eb3351f66686ec0d4bfe Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 24 Feb 2014 16:18:31 -0800 Subject: [PATCH 01/13] update fuzz testers for fastcomp by default --- tests/fuzz/test.sh | 10 +++++----- tests/fuzz/testpp.sh | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/fuzz/test.sh b/tests/fuzz/test.sh index 7e6b896635b43..9099f5e9eebe2 100755 --- a/tests/fuzz/test.sh +++ b/tests/fuzz/test.sh @@ -7,11 +7,11 @@ rm *.out *.bc *.js gcc $@ -I/home/alon/Dev/csmith/runtime -o n1.out &> /dev/null /home/alon/Dev/fastcomp/build/Release/bin/clang $@ -I/home/alon/Dev/csmith/runtime -o n2.out &> /dev/null /home/alon/Dev/fastcomp/build/Release/bin/clang $@ -I/home/alon/Dev/csmith/runtime -emit-llvm -c -o bc.bc &> o -~/Dev/emscripten/emcc $@ -I/home/alon/Dev/csmith/runtime -o js.out.js &> /dev/null -~/Dev/emscripten/emcc $@ -s UNALIGNED_MEMORY=1 -I/home/alon/Dev/csmith/runtime -o ua.out.js &> /dev/null -~/Dev/emscripten/emcc $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o sh.out.js &> /dev/null -EMCC_FAST_COMPILER=1 ~/Dev/emscripten/emcc $@ -I/home/alon/Dev/csmith/runtime -o fc.out.js &> /dev/null -EMCC_FAST_COMPILER=1 ~/Dev/emscripten/emcc $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o fc-sh.out.js &> /dev/null +EMCC_FAST_COMPILER=0 ~/Dev/emscripten/emcc $@ -I/home/alon/Dev/csmith/runtime -o js.out.js &> /dev/null +EMCC_FAST_COMPILER=0~/Dev/emscripten/emcc $@ -s UNALIGNED_MEMORY=1 -I/home/alon/Dev/csmith/runtime -o ua.out.js &> /dev/null +EMCC_FAST_COMPILER=0~/Dev/emscripten/emcc $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o sh.out.js &> /dev/null +~/Dev/emscripten/emcc $@ -I/home/alon/Dev/csmith/runtime -o fc.out.js &> /dev/null +~/Dev/emscripten/emcc $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o fc-sh.out.js &> /dev/null echo "run n1" ./n1.out &> n1 echo "run n2" diff --git a/tests/fuzz/testpp.sh b/tests/fuzz/testpp.sh index 8e9f4185a8412..3f060693efa9a 100755 --- a/tests/fuzz/testpp.sh +++ b/tests/fuzz/testpp.sh @@ -7,11 +7,11 @@ rm *.out *.bc *.js g++ $@ -I/home/alon/Dev/csmith/runtime -o n1.out &> /dev/null /home/alon/Dev/fastcomp/build/Release/bin/clang++ $@ -I/home/alon/Dev/csmith/runtime -o n2.out &> /dev/null /home/alon/Dev/fastcomp/build/Release/bin/clang++ $@ -I/home/alon/Dev/csmith/runtime -emit-llvm -c -o bc.bc &> o -~/Dev/emscripten/em++ $@ -I/home/alon/Dev/csmith/runtime -o js.out.js &> /dev/null -~/Dev/emscripten/em++ $@ -s UNALIGNED_MEMORY=1 -I/home/alon/Dev/csmith/runtime -o ua.out.js &> /dev/null -~/Dev/emscripten/em++ $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o sh.out.js &> /dev/null -EMCC_FAST_COMPILER=1 ~/Dev/emscripten/em++ $@ -I/home/alon/Dev/csmith/runtime -o fc.out.js &> /dev/null -EMCC_FAST_COMPILER=1 ~/Dev/emscripten/em++ $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o fc-sh.out.js &> /dev/null +EMCC_FAST_COMPILER=0~/Dev/emscripten/em++ $@ -I/home/alon/Dev/csmith/runtime -o js.out.js &> /dev/null +EMCC_FAST_COMPILER=0~/Dev/emscripten/em++ $@ -s UNALIGNED_MEMORY=1 -I/home/alon/Dev/csmith/runtime -o ua.out.js &> /dev/null +EMCC_FAST_COMPILER=0~/Dev/emscripten/em++ $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o sh.out.js &> /dev/null +~/Dev/emscripten/em++ $@ -I/home/alon/Dev/csmith/runtime -o fc.out.js &> /dev/null +~/Dev/emscripten/em++ $@ -s SAFE_HEAP=1 -I/home/alon/Dev/csmith/runtime -o fc-sh.out.js &> /dev/null echo "run n1" ./n1.out &> n1 echo "run n2" From 80de5f33b5f3ce2b7d938b2f1a1909c1cca81733 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 24 Feb 2014 21:32:27 -0800 Subject: [PATCH 02/13] warn on emscripten, llvm and clang versions not matching --- tools/shared.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/shared.py b/tools/shared.py index 2072fec688d77..b170972be63c8 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -305,9 +305,24 @@ def check_fastcomp(): print >> sys.stderr, '===========================================================================' logging.critical('you can fall back to the older (pre-fastcomp) compiler core, although that is not recommended, see https://github.com/kripken/emscripten/wiki/LLVM-Backend') return False + + # look for a source tree under the llvm binary directory. if there is one, look for emscripten-version.txt files + d = os.path.dirname(LLVM_COMPILER) + while d != os.path.dirname(d): + if os.path.exists(os.path.join(d, 'emscripten-version.txt')): + llvm_version = open(os.path.join(d, 'emscripten-version.txt')).read().strip() + if os.path.exists(os.path.join(d, 'tools', 'clang', 'emscripten-version.txt')): + clang_version = open(os.path.join(d, 'tools', 'clang', 'emscripten-version.txt')).read().strip() + else: + clang_version = '?' + if EMSCRIPTEN_VERSION != llvm_version or EMSCRIPTEN_VERSION != clang_version: + logging.error('Emscripten, llvm and clang versions do not match, this is dangerous (%s, %s, %s)', EMSCRIPTEN_VERSION, llvm_version, clang_version) + logging.error('Make sure to use the same branch in each repo, and to be up-to-date on each. See https://github.com/kripken/emscripten/wiki/LLVM-Backend') + break + d = os.path.dirname(d) return True except Exception, e: - logging.warning('cound not check fastcomp: %s' % str(e)) + logging.warning('could not check fastcomp: %s' % str(e)) return True EXPECTED_NODE_VERSION = (0,8,0) From 18a74170ffeae49db9ba858bc72e1dc81beecef5 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Tue, 25 Feb 2014 11:39:29 -0800 Subject: [PATCH 03/13] add fuzz testcase --- tests/fuzz/11.c | 1570 +++++++++++++++++++++++++++++++++++++++++++ tests/fuzz/11.c.txt | 1 + 2 files changed, 1571 insertions(+) create mode 100644 tests/fuzz/11.c create mode 100644 tests/fuzz/11.c.txt diff --git a/tests/fuzz/11.c b/tests/fuzz/11.c new file mode 100644 index 0000000000000..5d5644fea119f --- /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 0000000000000..d878ac9def4d9 --- /dev/null +++ b/tests/fuzz/11.c.txt @@ -0,0 +1 @@ +checksum = F3170034 From e024e7f3acfcfdcf153e675fdd15555949523f97 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 12 Feb 2014 20:34:46 -0800 Subject: [PATCH 04/13] Fix a variety of pylint warnings. --- emcc | 58 +++++++++++++++++++++++++-------------------------- emscripten.py | 8 +++---- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/emcc b/emcc index 102b7f5dd342a..7157f89c8c92c 100755 --- a/emcc +++ b/emcc @@ -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 Files and directories to be excluded from + --exclude-file 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 ), defines what will be generated: @@ -524,13 +524,13 @@ 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 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 @@ -729,7 +729,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 +805,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]) @@ -930,7 +930,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') @@ -957,7 +957,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 +973,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 +999,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 +1011,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 +1032,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 +1082,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 +1093,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 +1101,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)) @@ -1334,7 +1334,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 +1391,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 +1404,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 +1528,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 +1558,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 +1660,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 +1840,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 6b49a3cc31f63..4001a100eb626 100755 --- a/emscripten.py +++ b/emscripten.py @@ -9,7 +9,7 @@ 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 @@ -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) From 9232a22863aa8c2204079d19e4b24381b8fcbb88 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 18 Feb 2014 16:41:01 -0800 Subject: [PATCH 05/13] Fix a copy+pasto. --- src/intertyper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intertyper.js b/src/intertyper.js index 10822e487c9f9..4e91261ee7ecc 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -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)); From e6f7d1edbe66e4ee676413de57a96222add7a3fd Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 18 Feb 2014 16:41:21 -0800 Subject: [PATCH 06/13] Minor code simplifications. --- src/relooper/Relooper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/relooper/Relooper.cpp b/src/relooper/Relooper.cpp index 14c203e0f3baf..c11de0999518a 100644 --- a/src/relooper/Relooper.cpp +++ b/src/relooper/Relooper.cpp @@ -17,8 +17,8 @@ typedef std::string ministring; #endif -template bool contains(const T& container, const U& contained) { - return container.find(contained) != container.end(); +template 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; From 264a5a91c450b510bcee1d257372ee5d9750879b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 20 Feb 2014 17:24:22 -0800 Subject: [PATCH 07/13] Introduce the asmjs-unknown-emscripten target triple. --- emcc | 14 ++++++++------ emscripten.py | 8 ++++---- scons-tools/emscripten.py | 2 +- src/intertyper.js | 4 ++-- src/jsifier.js | 4 ++-- src/library.js | 10 +++++----- src/parseTools.js | 6 +++--- src/runtime.js | 4 ++-- src/settings.js | 4 ++-- tools/shared.py | 13 ++++++++----- 10 files changed, 37 insertions(+), 32 deletions(-) diff --git a/emcc b/emcc index 7157f89c8c92c..b8ccbdcfe54c1 100755 --- a/emcc +++ b/emcc @@ -591,7 +591,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)) @@ -1161,7 +1161,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' @@ -1214,10 +1214,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: diff --git a/emscripten.py b/emscripten.py index 4001a100eb626..cb9eefabd5535 100755 --- a/emscripten.py +++ b/emscripten.py @@ -538,7 +538,7 @@ def math_fix(g): ''.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 fix_dot_zero(m): 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 math_fix(g): 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 diff --git a/scons-tools/emscripten.py b/scons-tools/emscripten.py index 4c48083e9ff39..af85f1065e084 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 4e91261ee7ecc..7743ce62b96bd 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); diff --git a/src/jsifier.js b/src/jsifier.js index c1ca893b3aef5..56dc9d261beac 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -1413,7 +1413,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 +1710,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 5df5ff206b21d..18a794fd8878c 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)); @@ -2859,7 +2859,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) { @@ -4178,7 +4178,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/parseTools.js b/src/parseTools.js index fe56580ef36fa..4fb7619698fb0 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/runtime.js b/src/runtime.js index fecd3b68f75de..97de74730e27d 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 1c6b998ed0648..7f9fbabf07bea 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/tools/shared.py b/tools/shared.py index b170972be63c8..a9a3fa4e7512e 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -618,7 +618,7 @@ def clean_temp(): # 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 @@ -631,8 +631,9 @@ def get_llvm_target(): #'-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 +# For temporary compatibility, treat 'le32-unknown-nacl' as 'asmjs-unknown-emscripten'. +if LLVM_TARGET == 'asmjs-unknown-emscripten' or LLVM_TARGET == 'le32-unknown-nacl': + COMPILER_OPTS = filter(lambda opt: opt != '-m32', COMPILER_OPTS) # asmjs-unknown-emscripten 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 @@ -658,8 +659,10 @@ def get_llvm_target(): '-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 From 377e75950fd04ed2705befe00b0c46f0e88a0cf7 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 21 Feb 2014 08:11:33 -0800 Subject: [PATCH 08/13] Update the tests to use asmjs-unknown-emscripten. --- tests/cases/2xi40.ll | 4 +- tests/cases/514_ta2.ll | 4 +- tests/cases/aliasbitcast.ll | 4 +- tests/cases/atomicrmw.ll | 4 +- tests/cases/atomicrmw_dec.ll | 4 +- tests/cases/atomicrmw_unaligned.ll | 4 +- tests/cases/bigdouble.ll | 4 +- tests/cases/boolret_fastcomp.ll | 4 +- tests/cases/breakinthemiddle.ll | 4 +- tests/cases/breakinthemiddle2.ll | 4 +- tests/cases/caall.ll | 4 +- tests/cases/callwithstructural64_ta2.ll | 4 +- tests/cases/callwithstructural_ta2.ll | 4 +- tests/cases/complexphi.ll | 4 +- tests/cases/ctors_cast.ll | 4 +- tests/cases/dash.ll | 4 +- tests/cases/dollar.ll | 4 +- tests/cases/emptyalloca.ll | 4 +- .../{emptyasm_le32.ll => emptyasm_aue.ll} | 4 +- tests/cases/entry3.ll | 4 +- tests/cases/fptosi.ll | 4 +- tests/cases/funcptr.ll | 4 +- tests/cases/fuzz6_ta2.ll | 4 +- tests/cases/gepaddoverflow.ll | 4 +- tests/cases/i24_mem_ta2.ll | 4 +- tests/cases/i96_ashr_ta2.ll | 4 +- tests/cases/i96shiftnon32_ta2.ll | 4 +- tests/cases/inttoptr.ll | 4 +- tests/cases/invokebitcast.ll | 4 +- tests/cases/invokeundef.ll | 4 +- tests/cases/legalizer_b_ta2.ll | 4 +- tests/cases/legalizer_ta2.ll | 4 +- tests/cases/loadbitcastgep.ll | 4 +- tests/cases/muli33_ta2.ll | 4 +- tests/cases/oob_ta2.ll | 4 +- tests/cases/phi24_ta2.ll | 4 +- tests/cases/phicubed.ll | 4 +- tests/cases/phientryimplicit.ll | 4 +- tests/cases/phientryimplicitmix.ll | 4 +- tests/cases/phientryimplicitmoar.ll | 4 +- tests/cases/philoop_ta2.ll | 4 +- tests/cases/phiptrtoint.ll | 4 +- tests/cases/phiself.ll | 4 +- tests/cases/ptrtoi64.ll | 4 +- tests/cases/ptrtoint_blockaddr.ll | 4 +- tests/cases/sillybitcast.ll | 4 +- tests/cases/sillybitcast2.ll | 4 +- tests/cases/sillyfuncast.ll | 4 +- tests/cases/storebigfloat.ll | 4 +- tests/cases/storestruct.ll | 4 +- tests/cases/structinparam.ll | 4 +- tests/cases/structphiparam.ll | 4 +- tests/cases/sub_11_0.ll | 4 +- tests/cases/switch64_ta2.ll | 4 +- tests/cases/switch64b_ta2.ll | 4 +- tests/cases/uadd_overflow_ta2.ll | 4 +- tests/cases/zeroembedded.ll | 4 +- tests/cases/zeroextarg.ll | 4 +- tests/embind/build_benchmark | 2 +- tests/hello_world.ll | 2 +- ....bc => python.asmjs-unknown-emscripten.bc} | Bin 7810608 -> 7814552 bytes tests/test_core.py | 58 +++++++++--------- tests/test_sanity.py | 2 +- 63 files changed, 148 insertions(+), 148 deletions(-) rename tests/cases/{emptyasm_le32.ll => emptyasm_aue.ll} (86%) rename tests/python/{python.le32.bc => python.asmjs-unknown-emscripten.bc} (95%) diff --git a/tests/cases/2xi40.ll b/tests/cases/2xi40.ll index 592f1ba49fa6b..03c918c871b86 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 ab36324258ded..d435cac14b8ca 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 5e5f13aa453d7..de46cdd41a6cc 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 31529250c8217..abbcc7a635bcb 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 0ff08a5dcf1e7..edb5bd8f235c9 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 31529250c8217..abbcc7a635bcb 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 cd58c08b6ff05..e96b10af51434 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 a20cd0014c805..1b968778186be 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 6e05b85387f65..4c43bbd00742e 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 2f8c1c91c35f0..301b62c3aec37 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 2cc231ecff4a1..ffbf29d859d14 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 d16b0e87a1f8d..56b0442c1e1ef 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 bc6f852abcd6d..88a3d755b637d 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 e79e6f1b33574..0d1677f3edd7e 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 d94b1d63cde28..707b552893150 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 6833a42e3304c..6f727820e350d 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 7d730d6ac2278..8f0c1dd718f89 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 f12a416185e9b..0c03c645ed5f3 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 similarity index 86% rename from tests/cases/emptyasm_le32.ll rename to tests/cases/emptyasm_aue.ll index 8f6b606e10a22..65d9e2133c4b1 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 6888d0a8f2b11..7e154e2c62f99 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 71bc6af8c8fe2..caf9b7544b36a 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 ef869c3324382..ffc1ad1d62559 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 dea3a21d8fd29..225493f901b4d 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 11246c1d17ce2..258e2cc5e46bd 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 550389fe9979f..995c9f8bbbc9f 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 83966168e8260..da6410f978dfb 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 55e845751244c..815d71eae511d 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 c1b40a74e4af0..e225336c7b95d 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 ec090b0dd87a0..63239a7bf57b6 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 2f13e7abea163..17b14a3f35e3c 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 a621410076058..fcbfda20be8ed 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 6f153ad2416f1..e7f71f157c649 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 cfb88a0d97b6a..daba67c4367a3 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 b33b04f731be8..7a427731810b6 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 b95d28dac80ea..51b622b5ad200 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 18577fee6cedc..17edb228118f5 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 5fc3208bdbbfd..7079dc63c8347 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 c237457cc1ed5..3249bb8d30028 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 527c761f933f8..7696f5a9e3313 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 0f07cc4464838..eca7276e0b5df 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 5036c7baf13cc..1afec6106cec6 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 d682dc06a1e59..617ada495956a 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 0a06fcca20a66..b61b970fc77d6 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 5898f5298b4a8..099297423bff6 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 6adc2c5b21c39..08370650ce452 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 50a54da95619c..020a6e84885e4 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 02cf861583c2d..275760c5d6342 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 33598104dfcd4..2f2f7fe62342d 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 b940f5caee0b9..a7c6c2da4ad3f 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 3e99619596a42..1bc0bffbd49eb 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 d81f5e672dc4a..93f486a085626 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 fadf4d299cfcb..b5d05c17af8d8 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 d4094556930c0..59f70c7ff049e 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 1a6d52f3aaa97..f30c078ffe9d9 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 4364725fc7839..beb644e04afb1 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 e827cb38439e8..19c2908bb792a 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 167fe278986f5..b1394893d861c 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 a3caa74cdb03f..ff42741bdcfaf 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/embind/build_benchmark b/tests/embind/build_benchmark index 3d5d816b760d0..742394067a643 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/hello_world.ll b/tests/hello_world.ll index 19f848516f09e..343805a03c99a 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/python/python.le32.bc b/tests/python/python.asmjs-unknown-emscripten.bc similarity index 95% rename from tests/python/python.le32.bc rename to tests/python/python.asmjs-unknown-emscripten.bc index 2a6bc77c0fee409a4b64603d89b49961bf690b7a..6c25401e91014434da96e9664b286663402fb70a 100644 GIT binary patch delta 210025 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�PD&uA(9+~TPHjZ4%Eqc>Ty0*zL|$8)|j8m5k@ zn#fRQFi~WOLmAbmIGmnP$sv(Z5!YAsg^N36#=!6a6QnJ~UEm%sTx*ewRY%WIrY6J( zy3Op=E_t|mFbJLq0L`#!dXuyj&ZLD=0jeQ&TrK@Yb>jWx7v*RwThzbaCR^VwCz~U5 zz%l$+2Hmk5oUA!~^RL!@M}|JCB|sz+lBHacsqsoIBq;)P=QFs^jtn_BF8b#blORZU zP4kJJ?NGf|7Pp28VIL7-PJb1UuO>~#E0ofren`HBu5JyvLMioJ1p(fuD!^y4jn4Wr zv>us-sd+BoiXkwY_1@(6ux!f3doIy=b&*FRIYU_|$(k9-ji1?Wa%;~B>43d5g=hef z%omae1oFq$X@|r*S84%U)vYVPNs^0~8TuvSw*Qg;2AmS~D)XxdfN?NKlXPEn$rM+r z&PVbOOxq&Gy7XMpvm+J}`O1i}0I+f~wIdAKp?Y1%?^h4B8wK&!{So2mbPa_y0hz^u zKnP?J>s-z0M_;K(t1cq#ex?{K^oswI9|%-BSj_w^7?q>Ft0D6)VmBnzmF*pd~6EVuv zDMRQ5*dabku1KAF3q9~se2yN_W*g6te2=?ETP7HEoG`X$D95G5_zsDlXl&K1Uet*U zSJ@y?pBqCdUL|nn3bA@9v+&nOd?1u5-M#Y7pv|A=JXU9PkC6|J`6@B!D~PCEF_(5av=q-(4fQ<{@*6VWtLol7hmksBc8v zX4JcG*cbL=F3gyeD~=Kg3X~n_UvhUKB7cxfJL;r;Ly}#XZbuer{kjWf+hdq_*qF_b zH=x=WN@bU=2ASmJVE%n3IOJh$2mParxQzS;aE_t}YQ=KAAbDWua9{L$78d@Oyph${JfZJw<a%;^32;It+9J|8 z(T)f;mHqT24Y${r;A%8YzqjqmHyCx5Q)VOyZlhJ|Iqu5kxF^BHZi_U5ZU!#RNPS<} zzI$r^d|LUf_sM$}cKq0icy{j4<>&}bUY3vb4xhI2U~qISA-%<(9WCl|`vvZ_7K11~ z^n!nuDD+&8;+x!FVPeMV`fN?4V4chHC*(O)4FelQ^Cfn)p^X=E!wtn6VB&;YUx;SO z4-yQLudt7RiiTq~>4^tTS$tZ%m5+9iq3M={VoHL(rz!+Za8|I$qWP(AmrtAhfjt{%a`X58!(`a73l5QDg7YzXvUn`*|1$aemX zp^ghI-gAcs=C8Nq^#-5Bi?ksz{aVkuX3~(D_Cyb10vI;5WmFn~z)P)FRzWl~m8}bp zIhbyL;gu`L(OieXyf%eNcEZ=u6E4j2Zx?hh!6U|Hd1FMP4B7S7@%SUNOm00}Y%Zx_f!?t12o+wnzrP}^iW(6n<#P;`5L+cYx|9=Io-iONUB?W{kw1q7FfF4l`?rQ+cSyN#7GvATn@*&lMrBt9MR#g>4CKaq?v^;j~RYeaOj?_pD+r@PR5|OI` zou>0B^!=w3Q~TQ6W?>+o1qqMLb7=OSAWt;Snn6)E(mC3s9MQmP4<9gEBkmiWOIY=X zHXCh}kPpU}MXtR3%JPl_bk$|-MrN+;{6^+TaI(dFNRQCiWX}M4-q^$eXgme#i*PTy z(pZ(ZWSD3YH|xCXlqrtMK)iStROM02_hg7U>V(L$H!=V8*=#!(kXOW{Y!~9ZIjt(c z7Vcbx%^o#)pX`+rt)+Vgv6_(_jyh~I@7k!z^R2g;HrfrCg^k8;KaEY}aPyDfi&i7y#Nq**KldEiG0N@JZ51?JKeD z&=w|kbBI+VqO7wjoUENsJR?(ly+LB=AR+DvQ?F9^dXdI|Y_EK`4wtKEv0`B%#;9X>E%D>jbH{-~Je`S7H)bRyTruH6HH;uhg z4UN6hJ{o(anRd{4UayS*2{Sv;b?m?UEdCK0JjF(M1MIQsAh<>2wURW`0QkGdbKNg* z_FzH2wQV}55tLeF-+saf+25HcBN)PHDdwss6|Y}eZ$~u7;z%wGyul0 zRf3G|-g#h@%@6uGx0_f!4Z(G29&!WkJDO=(O#Z=*a9O8J)vw!hBhR@NetqN;A%$(Q zK_4q;&dd4A;pclBz`fr26)1LQjeO{dJ1a2b>vRfVGUxToQB_QO7G?wngYyllA9kG{ z?|?08rJnF724?1*eojnkU}Nd(w_Wq51SbrgWcRi*><3*#bMU)?Awd^KRjai+IQeAqGv z1Ys`16M{+@nRNaI^6^7lz|$>9pOa?Rw%`iSpFvDHpx=5gKJ{K%Rpe1cNNAi1+|-VHn75Ofn1flC|CoU-TE5JX3}_GK~mLtJD@ zdP9+NOUu^;HR(~TuacTMo7qkRuK)iGRzc`)jQ{?fpkdGqp?S0O}1<@r`8sFNWE*sDAlnTRVGCD&obGmbalgLtE2E zD)_-NP1-6ERnXD+N_CI^u@`>{FTC*UL$f0y`QXR}iGl!A%vchJMv8Si#L}QCz*0rO z;%rhU7;n-ATr2eS^lD%FuXWr3dZ2Dis{jF`t6+{sJ3hBD;cgS^I#yxm>wekYTgjtu zY8E|o`BCY7?KKQ}?ig`q+J$*r7(n0P?dg>Lp3H2WFC_0t6^rN}Qk6&20~y@XJW9I@ zT9=Z6S${V;>g-8jX4!U-zZ|P;qPj6Ji*z!13KPrjChMjW93jO`-~?xs3wuAlbl2uG zVk$4~^{MN%plU8Vr0Vhtqh8tsxcP9KhhC9N-5~C*_;!6XrYNs1lBLR;AM7G&>N|RH z;si*IZ8&oJwY%{7EDY+<$X6{gXzscS@L%D298UPJS9L!056&Pk6 zZ<^=a<#dAzJ;1*4!*b#498PLydVt?)Aa_z-xsP`JTGUC+g_9(%YA!4}+M(`d=%L5hoi%9H0mcLfV)%WQa>bzbN;Kf;g2> zzTis}7+?hN+69KeK6@$%T*fO$qY$6tMZ@UWB@%0@M&D-s$NAkaiI9O&YFYL)jp4FQ zzmlt<5dVN#Yb4+yT12OR#AjHe;BCi(&QQcXLl0C3(*t$f+vJ4W5!d(NLXPg5m@lON z(yjiQo?5Xjibyvte-as1mB4XZBir@ipd1J|il540Qu5Q@k;xnBd;&acJmV z=ge{KS8bO81+CM`ZX8g%teQRsZWdu%muww;WkgrN05Rbgvpf(zD961SzT;@(Su)hk z(D@aK-j85`Ck=2JR}jNEevVvIUHR5Up0Ab6q#5Ljr^Xe|L1sjfPVogjki-3ko-WU$ z2g=kcazf2nk_CCjYU}d+a0A&14({m${w)`4JnIU-rSGdP!uPSk;0NhOe7Ss^vplB8 zKP1XTVr^ZS+V}^mJjbp16WO#11$DEo*5D_5g97jgs^EyaE>;%X&N?`lTAA_LN#>20 zY*#&)5FOvUt>#20~Dw9jczqNM>Zd^5Kf=y^+!tb+K^1x`SySWQ6mr2kpkth*3 z5Lv3NK1)(R9WyFSti@X z-_rwHIX&<~Tt*M{4jB(fF3&5{T%=T%)2)$^v_fYo-uLrey7MyYdW$ z)qyQ**$?&*KKb@UXJDvVlM+e*m<{8dsGrmj0x(yi4}If8FSBhi@njOJc_lf5OSG*> zm(;8t8|p1|hVI-*h-wtu@~^w{kRy8CLeSv#372eS(=vgT3VSl%I_}uPrYXooR76^S_pr0IV0lDgvI){mm6?-va3l z5UzFZI+X_iHyB|7*1pr~K!6}*emT-miG$Kh9Eox=bt!csDyO7QE7H3zSwouaZ~KOr zyUnbaH`i^3R~WX+x`Dm??tYN0ZfjOOqW8O2+(7Pkvu4Zhz|i~l!2`rrvL1co1_+)r#7ga3_7F%=Tj{zNjR5vnsza(_W+RkS`iQ&;t* z0T)Y!6oR5Gco#EsQVjhL=RwMA7ZbpW#&8D$0y`+WBmkf&AQE-~IRv$O9)wvEc|>St zdHq4KqdTOAsDI{*8W4t#I{LI{)UIM%)^3X&#svuy`In;kg~`qnt$L zD@h|D<*9e*2p(BKc{$BGnKNM)%RP2t>D5bm70!OnT)&?Zh^vcEg={ql!= z)nX}IVZ{${Y}hr)GCqR@9?*zc>m2REv1^M?InJj|-q)zV6Wi`>G`%q}v+G-B#y4x_qos7O}&91gQ?-bXGhe618p`zk3B*jdt^@%989M!bo}wKje-KBoEv<$ zbA@L^#|C(6{q7H9zWispXlw8Aw_}kLf850%T8azh@vvCa@i9g-ph9$!@VO8ygMBz# zWU+ggpWn@2x%N-I8lF;fp$)CbDa*_0^^wS=`x!Co{%juk zjG4QV*7;&Xv0Pmt>0L|v<|!?zs`O96(F;vS{GGxMC_6vL31*T?o}vERk;TCQ=t6_K z;~mXc=a_HtZ9^z@Cp+$ur@gJOHQ2YJqZBppcu7F{Gtq>(;p*Kz%1dAGaR`=$N#lj_9nW_ z6Ea@_PYO1z`x>D>N3~UAeMvXw^bdJuhRS^(3XQPAg+9@XyK017#f5{6+|Aylj>f zKsp7qX_Gn%X5r+nrjF`LsKVuoVojPj`$J5?>Ut}i)!Dbr##1F;%Im5R++>pv84hlo zCr&rP--$LTO7#lybl>0y349o~F7%nQr8#21iJ-A>j{L2MPPg?gMmqYjAm_FQAL%Jm zt*k}LRINEnJ=a(52@K2S@CYEb@F@^(fH(G`voM^0+~~`fF45No#>F^3b3&a+4ruF+ z90>{@7q21UZJ}mFsvbqI#8HE1hF12U97f8%T6z$_;fSq!j4KA!1Q4Rqy5g=TjY)Ch$KS_OiaEHnhGLy$%x=Tsv9Ze zo^K<>FNA(Rd>bQ`XR)S2IL_Uo?G=||TvPmTt#&D3gCNu6Cl%egYK7UCOp@sb*};FI zeSj&p)*RIS5UF0F>8)3wb#c??-s{=mQROqi8j{T zc#o*LPF<0SSSeRu@qe>g;5-@_Q32h-Vwn{J*c6Rh!37;3Ottu9Me%*y* z16FRWXgznN+kfsAw~3alsmI+-M*ud*Z zwy9-0P=`b{L0rx8C95F3{d2L+HFQP~?p){vl9Z6Sj(k1a>qZvp2=Bcb9!>pu&~=>t z)l*~uzC8zA7k-Us3=-~P`W79#TjfaX2*~dwE z@*Gj}3dUZlO2%HP3)Uy|&E2d72`YS8BU@D4#iA07edXG;X62)LjI8&(fr6u$cZ{(% zWz%O7>&Imt00Id4{V59YTE`C`tN;L80Yc(AIhtg#jF9uCI-W#M1 zf_7@>VoUa}&a+P0^gAx&ZUDH|UG<-5{R8Ou-1V&!eTHRjf~vB(H)IL6-nx>DH9Hdr zh}-3TZE~^5Jz^91IQsrD8!R6>Ws_u#i^5mNOgFW2kYfg(rSa=l_ub6{yE`YTV$*RZ z)|5TCrWvuyEA4=coY3V7B@QQCU2>8X$vYBzw zCzhK^4^$=71Ep%?8I>9IKr=Uuo>7-h57db$JzrCu!A*={*HDXxksnrld~H1lZ*;n0 ztN5GIiC?_ualX@v!EMpceg;XM#0)7wbjNKq_wB(D)|T z6!NRgiWcNcxl$0JcTV3Das7(;FaO+uXE^(?W<7GicmtAbd`0I*Y-67>)PxuAxB;)C z`v#@@s%HHs#$9+6Xb`VpaLfXOFrk<9NHW!4QtrQSN6Av9<|rT4%8QVK8?*HIc_IQeaAs0VRHH6hfPlfnj*0@|tRi5X$>Esfs z6z^rv0XV>NoaPUE5PcJFW4X^2ljtTgNLg$AD9I!GQ94(ur0y+M`iXy~$3TUG{=GyU z9{3d8Nw@qB*ZRZlWt!S!*FVn2vSK+u5Ezu9WDgeoj&ce~y6r`U)vdF9ZeO-hL8Wnz zASsg9tGy*6x80PL4((N#K*PTE;wV^oPlTjE;KIjd`vstYPgMB-lgT$_*BPyLZQXex z1D)|kvq>NZxpSZ&OG2cIA4Urp_`qiJ)KoTeGsrbi*9DVydPSx#SyF>_eO`|4Rh=jS zmqwDh60*Sc+Bi_mKtn9vmge%uDA6XZf3Z3MfwF3=h({u!R5>OCVMMf=7Rp{IQ=X0gu*BlwKy2{ z1w#A3BTS_MR@1hU>Mp%lSshPypusqpYmAbwkfXHtgk1YH@op~+BsuC7D_p`oDWJra zv5};vtOPV6h9I7i9W9@MfXC4hmFvMqlp?W(X3o`hHMoqEv>8Q(OUcdx0mAXKw-5;ls%n;x zsF7{2cacgK`V|0>lK<}XZ#RVNg!rN$Rga=f7t-|=X#8>;XLIr={hI{3O!Zgf0nk=f zlsJ*UscWKB*yLjE&cyHL(k~?EE!xWdNqAS}ykz*ZO>E;2(CcAns=iBs?r4;^_5iLs z_FhW8zAED=k~fzCfQ#`sammSd9+basXwaKBn%{_kvgftHI(n+9Il0|>BOmKtgW-OHO&N} z#pLuQCw@avj)3hf)p@=6nQ0-eb*xlV+4Z(3F3*0V0eFmvCdltAYvz(GlorQjj@W`` zqg!jDO?DU==OSD@xKlCNG;H$5N^DrSNr7$l1^v3pl$g7yl_={t#n`f5=cE7BKOJ3x zlcbRPqtt`b=y8SklmL5I>dm|4Bos?`R>jex9&F>a!I9c4H={vj69%D;Y{>9zN_mzq|02d&!m<{tMa|Me|vhnVS)z*goAz1Z*;d{i7 z2GC|xpI`;iQfzQ{9KeX5pfzObve!*DM*M$*d~{E22Q~2BQPf*^iqv9W#VTH67QLl9 z`3^I87#8`XoHX>s*7ccXh4Deh-i4)W`$jlO0W?hVXj;~pJb5uT9FP=eU9y#j z^PX8FprvT*?9;rVY;86mSKUsOvTOSNO>7+{#wcFaH!T&HVvYDK(z@-|?G%ef@<1E` zC`jx5a+dM7_~NsEue?4|{ZlTX^s%djjV1&BMZHcR5XH=iEZYr*?kC>+rkZ<3KzC+@-~VV#k+6Ub`9E zo*H@jLxLIY2m29rQkHeE8$lbqy7IuSWIc(pFfOm0zbe#dA~NOgEZ20;MyxEK#g9t3~E5A(n06uzl|i6FZBM&gPz6)UTh^_sylwJfKEc_;EWLNqD` z9Utxjl8;t)0 zv%Ele{^C&C_;bu0))46t*}4qfL&yW%c`4YH=vsnC(IT77*(TQlk+qiez|<_JU7 zs&10wfN12bba8RiUyy7vLdhO<0&Vex@M54&0@tsWbIhnIt5^y%mqu_T-c3qHKdH7( z(nhXHhQ792G<+n4xE#(T{@{UOYa#GJFwG?yc5RWS=Ij_ZBiH4`%hz@jzNLkK#q95l zE-hR%A2ajvUhf7?%6~6Y9HW2E=Dwv;NVDcH`Ia`#P66Df6Wz6cC+$#6LM@L?3^7xCv{)n&SIVX$!{Lk@t)&10M`egZY0@C zF4cOJi8e$YrRsqo3~knhXPzGt#UxA>Ew2aBuo zEVrbW0>A9!# zK1NXRnF_ZH9YlPtZ1|D1*E6**S_&0=%9t<4xu*{a#`NTi(VDtFH%cViWDV`%JC$!=8@{jqLue_<*mM843jhB;*woFsq zb_gSycSbKTX1#veWKGH{?(?YCj*aI0>}Zkfn+is^YWG`#(C2!sOXEu99(w$8^zz3< z-6<_jS-Fo0R1FtF8ud836$^J`x3oYIjIbjdg3KD3wrEB`g6zJWIXtU^Cq+^t>3PTh zlipicwC$uhoTK&AaAk)T%tkiwefMdmb2yQ&z?x<49E=M0(wfz^{X;%;x1jceKUk6_ zJYy_^+^%uDsPP|Az50e;w}Szq%=b9)Dj3$vQFU5f;bv^PpHV>}lZHdh=)Uw;eUtxX z_~5SeB5jJ~uK$=Y6n4QKaMNnF%~x4@Ef~b6I>LIVgoVe;_Ej=oGXkg2faYzk-XR(L zy3txsR-Hn-KFK30S!X4)f>VcCN@TqbG}zN8Uo{bIQY@}wtj(5I3%&%w3xAN+<*y6$ z+!OkiBY2L4CtM|%vRGwRv$o*1q5umDxf}H5;+F*4R(yV)QbCa97i(78K2|Aa}J07 zN0oJ3-}gnp4BFA6h=@1l*+qRGV)f#7trI*UQFhmC=o80aC{NI*Wr&tyiF8!8L?S!f z0LYKu%_Fg_SSSpD-OoAZGXjH7=c;n`#&%=V-m*7@F_P@HW@MoGOgI?aW zPCY^J?=dG2;XV(dAh5ELA7R|3WEZY5>t}DB;7P5(u)RDyZvOat082%KlC5M1)g>3J zs}zf`GG(T$`Vmoh2TH?k($$b^YGXwg_R;iZ)W>#_vwe@z>u`wZ1PuB~l=8ELo>d_+ zB#HY&VQMga$T+7<`2^Q)kIzZnj>PNHw=wiYHSh5_=t)b7T%~8?5h8O8a(=NQuVpM; z;b_ASp{Ns|QeE9K!p5nVD65|MV_e)>q^gb~e=IFgza-J{ZaaaX3YSl%VD{&EV~H1? zon-T_@S$clKFHW9O;7;_erWhBz~&GZ$m5lK4w9AeKiKZ+>e?B^UkJ3?Jg8Ea>%?MoJopCg4U--Df%ykN_I)1R4@RN=KFUqL0}1X_Q$X)$xf3_Iokg1J-9+qQ zs7{v_Tlj~NT!)uAg-dZ&f|*mdQucWh^WjR@FYcm$E=`ZOBz_JT=^-P&y6P_`6AzY~ zv~xJE<0dw);^*0g7FaKKyp{+JY?yY^diYpiBx)M0j2ZwZD$Xj|qb4S7wyR`(WK_TE zMFTKVps(mqd)4Vx#f<5JutQK$RqzOwt^JWXIc-bdWddf$(0IxQtK#)w=q2(}{ zJEYwt&yGj9ru-D~qmvi+dL(v%@Vn7W>=-d2;SJn8RodSTOEKFf&Wdgn@MnxlSi_{^C~SD^{#Wf4RII z_}8PL*hy?RfnWQZY;_&v)eDgEJw+@yhB9?N_3HYSaQKXt z3FrF#IT14F=O;KT;|s_XAfqomPSs?+kKcga(_It-rtt+`=D9x@DN**boY8jpihvCg z*tvHu#psvBQ720^kG9?ujJx9ja(B>HlJQ%a66>Fcn#dTibD$OWzLODeU1Lbg2-@H9 z-lHJhtr}_#8k4OATfc?#4+J>O3dZdn8dDBuaXFvS`L>D-wu^m0Mf%33zB;j-D2SJ; zUS*2@4+|TtYlwfz>=UWc#C7@eq0+%|BjvYQl*uWI{vF@gvnCDc6?Nwso*ejMh_G*3MB?5gQ zDsHDNpuv>^-j9H`%$HIwPRnRz-q@=u(+MD`5Ge)VzaCMrX7RbpC(Mcj*Lqi=N(zxH z8Tgtj`51Kr^DH(15DsnRLchLGJj<|R+PJ$YxyMg+lO=sPJ<>*(nVOkMQZP| z-XWhsC*Y8W=tc#plj&Icvn4A+h|m9^-saUK^T!#*Lp~gMUb|y@OeA%HOxx88$Y5C*fKG zsCZagq^uaejK6PC3YMGyHj5lEY0Cnj5ZzyQk?Dj`TUjQWf9x4N>szb`gUXL#CrIhWXX9~229R+`XJ;r=nznh zz-$lx*Et00!r)ie@DeUbXC^i&?kZ8rfIvX*?Tl5Hk3Wc+){xXtw~rtZyjyft;zI9G zJXJH2A^KbHk&W+MoaetXO#VNOvV|+KQRe7{SLk^xFptWDzXag(G7q*P>JAT02=B?wqHr^rmwuL)NFz0Wzi=cjmU>s*_8p(ID39%#* zIkl*-<~{#4a~}n_O<8_}Unw+qvbC9)b@SPr1``jCGnhDiN5IBH?auXuAIjuiKz5QZ zJqn^EBUq{4xcbS_NWUvY%ksbD;CG!d>=YM}9&5L5xYY0{?y1o-0Qmd$oBll}(EXIL z+%ocR82I#3Rf3UxN*~swp6}iA`{Ic?33W?vLM#5McUJs0jC!1U6_cy}9ofw6Q4MIC zjAhaYx{Rgc_C|-{4|>>=)N3cPF!*;bL{FxX2DZD^jD%sORpy=Nx|< z66m>ha|j&_{1%F_E7EZ2bywstc~FWBzL}aWV=~Twkiky3Y@?bPVJD5cagd^71^4FB zP0U65cR*+9#B#E$#R50Koi~*#uD!O?y6U$pkl6o%!z(gzdMv}EVs5z2V8L(HzGOBE zh=@lOb4l)O9pAZuK*dx;>qY0<-vF9d?G^@+s!QDyW4p}>R`-H?JWZl%@T=bZPwd_Ynz>6-pOwa z^soh+J@6z9{*>Tf&#V2;i+&-ccpp!quaX__X5MAwOTUD~{PmSO#o}f3W!1G3otunI zQaF(|oVKubI&J^=0JXZB9_?bqmwDZ1&Te%4G%}xdDOpaSLxTyllF${NX0t`%5rp6! zH-6rFbGNK7@<{~BFc>6{gO5OgLByEbS9wHbIi}i8CAOhZB#bk+j8_o__)OjQ;zAh@ zZ;?8lXuy*E}yNaVZ~7zj3x zoYkIihM?h4dx^U=>Y@1;)&k|KkH__gkwPZM1N%PFs${Wx8`)y?X<&l5Z~0v6-5g*U ze;Q#8k=nhUOzXWbVV?HS_ar21GRr{84Pm#?-?G+C8YH#_@T|29NU~l8>aCq*Q z^#C81_aeX;PN>h38ozMY^GuaOEEE31EQxXW{>cC8_|0r3P>_rZXO62PZbRl7e+U0s z-hFktSVVmZwcv!>aRXOvk7rI_jo5WFwA`;`nFHNCe8B8TmIFdV6+OQ&-e$b3LBQi3 z0h+;e%Xw1?kJlmtE1Sn@l5?TAAn|NPf3TGQmw4a&Mf0;@mC4pTVm^I);cJ%J0mM*s zQ53wvt3f2|dc+j4Y97qHkV4Yt3xZP?0^A|`hos7sPm(djbZodEwDMpw#KC{+HP{LTCYjvH&zcMt=rYOQ&Be*~5WqX$N0vyusrdcnW}u zDrmEA<)Xi$w147CI~(DVeP9wjq+?dh%r2VB1I`;Qd%QALP5&4WM7zaL>8BkW#rj{F z_e}-UKD*}ziKy|c9DEqNeH%0-)po`qscS{pjmsNC99L5~-b%2p+e;Gk6v0Dm`+elj zY18o!%C0_U++=?|W`1FFNHX4_^cS~N(2Op<%wUmDa9~SD)FpinjKV9($*m(>R?2$S z&cvU%aC>)&}e5IPTmcihmhC*C7mRSLo z{_e7+$2SnDp5eK$uP*RA59n-Sxeq}Tk=D@R{D{0l~<7scRVdV~0P zWN73PRfz-c)`L4rbu|^FWb$M6+a=e@R3{dEm(@*)_VCR~=WZ3wOhY~!`y|9x5`t5TB5-*NzHi7T=!$#5AgO(bBQZ93N3Je8Q7Hu4)h=`> zbOH3R5=rP zJFRL(e&p`-jtF&?v4pz&vb49B_ghxrpBoqfF)B>n&K_{KY=b|S9Rd#na!x=Jz{SgK zmdz2_&wY$TEcfR-14Ov*d??q8^U+k(<1=Qt6B}_bSl%FCF%{^iP8?_0Czwu+l^4-A z>Z+CYRb;H-QBQX}>@Yi4tsZksK)-e@>^f_tvYAhr6w6tywmAR8Hl*yUr_5CQ(zRqe ztW(QdxGXgx4{(w-JY}35el^AZ=6Y@I<~RJ2-@jrbGwo;okS%=1%v|^@sRu#rE|$9u z*I1**CswniQ%|K?rZg^tmNLlR+JJyC$0>|26F!3lJuP$qvo{bHL9Rx^f3a^5Tvjh> z;VbJw6Tl}ox0>XC{+ysNPrt!iJn9Ft&pfdmkEIRu*7@c(C%&`U?Xg;1jNcP) zXO6gw??h8rVsMs6@Buf@-WjCnl?r~%+lV-22CE$upCn(sSvS~RsK^~)1g6}ZV-Czw z<{s_i!m{R*Q8vf|c!?Fy1{nua?z9mQ_?;dMDK}(LaZ^2WHZMk67d#H&9A;oDO<8VD zB;mnBHA)8_r>!j2D0;}++X0$IlB&=ngen53k$QUFLRzXo|D#~XVnmrVaD4Bg z&n65H|9B7k>#+tOz~9imv?1021_6XYAKN!nYS`ivDCFD`Sh}%PiCQ(%U3i(~N9rXK zjp98b^Sb1uK3#l!VkoGUX8A}HY6)N(Fy#oC?pkmp0Z_cF_;*b>Yk`}z+?Dr$i0@9Z z%?Dn4%$O~Soim_^g(tVL7 z%Nd`pB&By^pCSYhRi+-(zBx+D&O27}ljPN?R!}hZYF$&=(KoI~8gQKkV-ASS@r$pM|E`YQ}16JOhdZ_p-AbHcE({>Wg})NxId%xb1lUDf2~ z-dfqr5hjKme)b7WIKfogBpZrDG#~qsb!twKuRaQdf9T;M{o@skhO#^t#Jbwdz3UQ= zkP*Vx+0i2U`Z^$eX8X2LXzV#JLKq6e5_CIv z>XcR7zmk+%n_8@@*_@BH{qt^hZRsKii6a#3IU};uzn!Q;H75DU##`_@r*E@Csvu3% z_7W$XIBi9}S~g(8d+(jAV-?u}(CUVfS9}K<4A*P7CyEro6L{lHIqOD*1C{{aZKt=z z<%B{okq0@2*9Tb$ivgzOCj?vBJ1V}5p!v2O?V#i&!9$)Om3R5!LzMz5xRU2&^+?@nX6^*>&pziW0fzn>VX-P`ldHGC2~sfS8$npEB4 zd-*wdrgoJBZbkAWBAggspiB8~bqVhO(S4pLwQGNx?FjrxLI^a&c-5SPU&W9C9jzEZ zr?wTVN+#nie>{?*uNV=zAJWdbtH+5N=F5+v&?2xgOOt^v#n0$ld0Z>gX>0vT&k2$M(AlzT6kaesSo4- zM8~x*wOj-OU;;1dhhh-xE2M}XtpWdM93Dq2(=$a*cc?bezA$6aJ%1xUi?!g0er)

n)Z?y-&LDxT)rvP= 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 z zH{yL^-H7Zi!HIa&6M(_YWeAL=MBhb^rsaP^0{&62;g9(tBu%*p&Wy60u0G4q>bPQE%~*wy4X|J4z}=aS=Yu8vsvLo#=6bwu*l$)|Ew zN2qI)^X^kKXii%Y;eQ6Lp(h8k)V}|!iQN4;y%pIwCp*K{iXI{s{W)UUnA1{dlb+qG zC8t{?^jVa>#hKHN7H%%dhDeguBq3&5_8XQxE_BMz{xgVUwhNKlvjr!v?51#cPxj|6 zInCF?x)a%l{eq0+TU3ME8SPCw>mL0%xt%ag%*-K17XF~^!TZq zd40R$V9c}oeH4Z$FFah^*h`eAc)qPU_3FQmX)@V$ZkUk&SB{AV5B=9~bAs7~<$+B( LLSWO}pf3LhBGRZ0Z1+fAmD+w($ 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 aMS$AbCzN51ZB`_&G`cMkjBaoFhW`)U&G)td diff --git a/tests/test_core.py b/tests/test_core.py index 19bb9ca1dcdcd..789ea77647dc7 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -6,7 +6,7 @@ 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): @@ -506,7 +506,7 @@ def test_sha1(self): 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()) @@ -586,7 +586,7 @@ def test_unaligned(self): # 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 +666,7 @@ def test_align64(self): } ''' - 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 +848,7 @@ def test_math_hyperbolic(self): 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 +1872,7 @@ def test_pystruct(self): # 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 +1941,7 @@ def test_emscripten_get_compiler_setting(self): 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 +1954,7 @@ def test_inlinejs(self): 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 +2143,7 @@ def test_pack(self): 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 +2152,7 @@ def test_varargs(self): 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 @@ -2776,8 +2776,8 @@ def can_dlfcn(self): 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 +3614,7 @@ def test_rand(self): 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 @@ -3770,7 +3770,7 @@ def test_fnmatch(self): 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')) @@ -4152,7 +4152,7 @@ def test_utf(self): 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']) @@ -4209,13 +4209,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() @@ -4223,7 +4223,7 @@ def test_unistd_access(self): 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) @@ -4254,7 +4254,7 @@ def test_unistd_pathconf(self): 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() @@ -4283,7 +4283,7 @@ def test_unistd_login(self): 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] @@ -4291,7 +4291,7 @@ def test_unistd_unlink(self): 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.' @@ -4311,7 +4311,7 @@ def test_unistd_sleep(self): 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']: @@ -4322,7 +4322,7 @@ def test_unistd_io(self): 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() @@ -4813,7 +4813,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 @@ -5080,12 +5080,12 @@ def clean(text): 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') @@ -5131,8 +5131,8 @@ def test_cases(self): 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_sanity.py b/tests/test_sanity.py index 5713c99ca5ae6..07582d28085f2 100644 --- a/tests/test_sanity.py +++ b/tests/test_sanity.py @@ -489,7 +489,7 @@ def test_nostdincxx(self): 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() From c600155b1fef26a248d6467a89030328db0fedab Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 24 Feb 2014 08:46:09 -0800 Subject: [PATCH 09/13] Begin using the Emscripten toolchain in clang. With the Emscripten toolchain, we can make clang do more of what we need directly rather than in the wrapper scripts. --- system/include/EGL/eglplatform.h | 2 +- system/include/SDL/SDL_config_minimal.h | 2 +- system/include/SDL/SDL_stdinc.h | 2 +- system/include/emscripten/emscripten.h | 12 +-- system/include/jansson.h | 2 +- system/lib/compiler-rt/int_endianness.h | 2 +- system/lib/dlmalloc.c | 2 +- tests/asmjs-unknown-emscripten.c | 98 +++++++++++++++++++++++++ tests/test_core.py | 5 ++ tools/shared.py | 33 ++++++--- 10 files changed, 136 insertions(+), 24 deletions(-) create mode 100644 tests/asmjs-unknown-emscripten.c diff --git a/system/include/EGL/eglplatform.h b/system/include/EGL/eglplatform.h index 2db2cc4794f28..77e885a83bcba 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 ea0cec10d7ddc..18951f1854360 100644 --- a/system/include/SDL/SDL_config_minimal.h +++ b/system/include/SDL/SDL_config_minimal.h @@ -33,7 +33,7 @@ #include #include -#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 c4ce7ccd92feb..508ecdb41caf8 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 -#elif defined(EMSCRIPTEN) || defined(HAVE_STDINT_H) +#elif defined(__EMSCRIPTEN__) || defined(HAVE_STDINT_H) # include #endif #ifdef HAVE_CTYPE_H diff --git a/system/include/emscripten/emscripten.h b/system/include/emscripten/emscripten.h index 852a8e0d981b0..c36bec6323832 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 /* 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 diff --git a/system/include/jansson.h b/system/include/jansson.h index 04c345e979f82..53715fcc21e03 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 1790535503cfb..fa294c49eb2c2 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 ce2c25f100ac2..04e9e47b60c23 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/asmjs-unknown-emscripten.c b/tests/asmjs-unknown-emscripten.c new file mode 100644 index 0000000000000..36071964650b9 --- /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 +#include +#include +#include + +#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/test_core.py b/tests/test_core.py index 789ea77647dc7..7d6199ffab5bd 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -504,6 +504,11 @@ def test_sha1(self): 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_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for accurate math') diff --git a/tools/shared.py b/tools/shared.py index a9a3fa4e7512e..e6be09d03537c 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -626,20 +626,29 @@ def get_llvm_target(): 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] -# For temporary compatibility, treat 'le32-unknown-nacl' as 'asmjs-unknown-emscripten'. -if LLVM_TARGET == 'asmjs-unknown-emscripten' or LLVM_TARGET == 'le32-unknown-nacl': - COMPILER_OPTS = filter(lambda opt: opt != '-m32', COMPILER_OPTS) # asmjs-unknown-emscripten 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'] +if LLVM_TARGET == 'le32-unknown-nacl': + COMPILER_OPTS += ['-DEMSCRIPTEN', '-D__EMSCRIPTEN__', '-fno-math-errno', + '-U__native_client__', '-U__pnacl__', '-U__ELF__'] USE_EMSDK = not os.environ.get('EMMAKEN_NO_SDK') From 3317f2cd793893073619a87a462da26c505ba9eb Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 24 Feb 2014 08:46:38 -0800 Subject: [PATCH 10/13] Use __EMSCRIPTEN__ instead of EMSCRIPTEN in tests. --- tests/799.cpp | 2 +- tests/aniso.c | 2 +- tests/box2d/Benchmark.cpp | 8 ++++---- tests/cube_explosion.c | 4 ++-- tests/cubegeom.c | 4 ++-- tests/cubegeom_color.c | 6 +++--- tests/cubegeom_color2.c | 4 ++-- tests/cubegeom_fog.c | 4 ++-- tests/cubegeom_glew.c | 2 +- tests/cubegeom_mt.c | 4 ++-- tests/cubegeom_normal.c | 4 ++-- tests/cubegeom_normal_dap.c | 4 ++-- tests/cubegeom_normal_dap_far.c | 4 ++-- tests/cubegeom_normal_dap_far_glda.c | 4 ++-- tests/cubegeom_normal_dap_far_glda_quad.c | 4 ++-- tests/cubegeom_normal_dap_far_range.c | 4 ++-- tests/cubegeom_pre.c | 4 ++-- tests/cubegeom_pre2.c | 4 ++-- tests/cubegeom_pre2_vao.c | 4 ++-- tests/cubegeom_pre2_vao2.c | 4 ++-- tests/cubegeom_pre3.c | 4 ++-- tests/cubegeom_pre_vao.c | 4 ++-- tests/cubegeom_proc.c | 4 ++-- tests/cubegeom_texturematrix.c | 4 ++-- tests/gl_matrix_identity.c | 6 +++--- tests/gl_ps.c | 6 +++--- tests/gl_ps_packed.c | 6 +++--- tests/gl_ps_strides.c | 6 +++--- tests/gl_renderers.c | 6 +++--- tests/gl_stride.c | 6 +++--- tests/gl_vertex_buffer.c | 6 +++--- tests/gl_vertex_buffer_pre.c | 6 +++--- tests/glbegin_points.c | 2 +- tests/glgettexenv.c | 2 +- tests/module/test_stdin.c | 4 ++-- tests/nbody-java/native_java_lang_String.c | 4 ++-- tests/nbody-java/native_java_lang_System.c | 2 +- tests/nbody-java/xmlvm.c | 4 ++-- tests/nbody-java/xmlvm.h | 2 +- tests/openal_buffers.c | 8 ++++---- tests/openal_playback.cpp | 8 ++++---- tests/perspective.c | 6 +++--- tests/poppler/utils/pdftoppm.cc | 2 +- tests/runner.py | 2 +- tests/s3tc.c | 2 +- tests/s3tc_crunch.c | 2 +- tests/sdl_alloctext.c | 2 +- tests/sdl_audio_beep.cpp | 8 ++++---- tests/sdl_audio_mix_channels.c | 2 +- tests/sdl_canvas.c | 2 +- tests/sdl_canvas_size.c | 6 +++--- tests/sdl_canvas_twice.c | 2 +- tests/sdl_fog_density.c | 2 +- tests/sdl_fog_exp2.c | 2 +- tests/sdl_fog_linear.c | 2 +- tests/sdl_fog_negative.c | 2 +- tests/sdl_fog_simple.c | 2 +- tests/sdl_gfx_primitives.c | 4 ++-- tests/sdl_headless.c | 2 +- tests/sdl_ogl.c | 2 +- tests/sdl_ogl_defaultMatrixMode.c | 2 +- tests/sdl_ogl_p.c | 2 +- tests/sdl_ogl_proc_alias.c | 2 +- tests/sdl_rotozoom.c | 4 ++-- tests/sdl_swsurface.c | 2 +- tests/sdlglshader.c | 2 +- tests/sockets/test_enet_client.c | 10 +++++----- tests/sockets/test_enet_server.c | 8 ++++---- tests/sockets/test_getaddrinfo.c | 2 +- tests/sockets/test_gethostbyname.c | 2 +- tests/sockets/test_getnameinfo.c | 4 ++-- tests/sockets/test_sockets_echo_client.c | 6 +++--- tests/sockets/test_sockets_echo_server.c | 4 ++-- tests/sockets/test_sockets_partial_client.c | 6 +++--- tests/sockets/test_sockets_partial_server.c | 4 ++-- ...ckets_select_server_closes_connection_client_rw.c | 6 +++--- .../sockets/test_sockets_select_server_down_client.c | 6 +++--- .../sockets/test_sockets_select_server_down_server.c | 4 ++-- tests/sockets/webrtc_host.c | 6 +++--- tests/sockets/webrtc_peer.c | 4 ++-- tests/sqlite/sqlite3.c | 8 ++++---- tests/stat/test_mknod.c | 2 +- tests/stat/test_stat.c | 12 ++++++------ tests/test_float_literals.cpp | 4 ++-- tests/tex_nonbyte.c | 6 +++--- tests/unistd/unlink.c | 4 ++-- tests/uuid/test.c | 2 +- 87 files changed, 179 insertions(+), 179 deletions(-) diff --git a/tests/799.cpp b/tests/799.cpp index 6c4c9b184584c..aa3213af58794 100644 --- a/tests/799.cpp +++ b/tests/799.cpp @@ -6,7 +6,7 @@ #include #include -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #endif diff --git a/tests/aniso.c b/tests/aniso.c index 443e50aa73bf4..b925149d3d369 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/box2d/Benchmark.cpp b/tests/box2d/Benchmark.cpp index 4fd7965113e55..6c9b3c5ba8603 100644 --- a/tests/box2d/Benchmark.cpp +++ b/tests/box2d/Benchmark.cpp @@ -25,7 +25,7 @@ typedef struct { #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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/cube_explosion.c b/tests/cube_explosion.c index 0c6eb674819b1..a899f068d38b9 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 e749045b2ee86..950439ec5fb67 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 ff30e1a9e7c83..0d2b6ecb4fde6 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 76d71d00db90d..76bbb119ecb5b 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 cae6ca2df19fd..50d2843be6549 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 210e1c60896b0..96f401c67522a 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 b4ad28a710940..cbfcbfdf27a2b 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 02655edff4a60..e56286fbd61c2 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 752911a8c82f0..594aec05629f2 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 35a068d9456c1..da28f77577732 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 849245b8e7ebf..ee38145876539 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 93c157a4c03ea..91f60031869a4 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 17691ce954f0a..3f041668eb62d 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 40b03cf72cae2..70e3435f7defc 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 df04ae31044b3..88c825413278c 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 733c8fc60bba8..5abe1868e27a2 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 6909683341ea8..d2d55597583ed 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 ceaa757e2ed51..81c8758946127 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 8c598143e8fa9..4f7adf9e4e4ec 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 e80b9b31bd390..2dfe85ae314fc 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 abb667eb258c6..218243441fa51 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/gl_matrix_identity.c b/tests/gl_matrix_identity.c index 9f990a778a375..8ca7d0cb70dec 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 4fa799224a5df..d9f3b0792d964 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 9ab99cb894453..be139cd943347 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 d88f5d0b31592..1ff28c9422482 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 0a8e6e7843e5f..ca6e828e479e8 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 c254ad5a83015..d6cf1fd2dd04b 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 6b69546208e56..73c30d482c6f1 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 84b76569c1417..fb967d11f5463 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 9128a4f5621e1..ae061bb2af51e 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 a051a69048646..54bf2af8e50f2 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/module/test_stdin.c b/tests/module/test_stdin.c index 319c686ce8fae..2772fcf0b5477 100644 --- a/tests/module/test_stdin.c +++ b/tests/module/test_stdin.c @@ -3,7 +3,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 5ccf21dfa6975..c55e5412f6208 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 861781ca4a73a..201f8beb7edf2 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 35e04d161c82c..dedf1bc69db6c 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 0d931565ed666..04f645db0d428 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 31104a33a2e87..df6d8e3f6c08c 100644 --- a/tests/openal_buffers.c +++ b/tests/openal_buffers.c @@ -1,7 +1,7 @@ #include #include #include -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #include #include @@ -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 6a8dae389084b..880b69062717e 100644 --- a/tests/openal_playback.cpp +++ b/tests/openal_playback.cpp @@ -5,7 +5,7 @@ #include #include #include -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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(sources[0]), 700); #else usleep(700000); diff --git a/tests/perspective.c b/tests/perspective.c index 72f4c50f8a9ae..7799855724d7c 100644 --- a/tests/perspective.c +++ b/tests/perspective.c @@ -8,7 +8,7 @@ #include -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #include #include "emscripten.h" @@ -19,7 +19,7 @@ #include #include -#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 4df0f5d8f56e2..a6865cc62eca6 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/runner.py b/tests/runner.py index 32575a1afd3f6..ba43e15acb6c6 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -583,7 +583,7 @@ def run_browser(self, html_file, message, expectedResult=None): def with_report_result(self, code): return r''' - #if EMSCRIPTEN + #ifdef __EMSCRIPTEN__ #include #define REPORT_RESULT_INTERNAL(sync) \ char output[1000]; \ diff --git a/tests/s3tc.c b/tests/s3tc.c index 5f7bee83dbf74..ca575ffc2c42f 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 c2606c8f9602e..ae5e1228d0e38 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 173be3480687d..b7e9e6cfa3a4b 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 95a5a7e8c05f1..82001e8a5d741 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 dd91d594f8809..73d219639ed9d 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 cab48985b11b3..4420d73ed5507 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 923a90147dfb3..0d1848231deff 100644 --- a/tests/sdl_canvas_size.c +++ b/tests/sdl_canvas_size.c @@ -30,7 +30,7 @@ REDISTRIBUTION OF THIS SOFTWARE. #include #include -#ifdef EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 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 28a7a01c0f9a3..ba62846bfeb55 100644 --- a/tests/sdl_canvas_twice.c +++ b/tests/sdl_canvas_twice.c @@ -1,6 +1,6 @@ #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #endif diff --git a/tests/sdl_fog_density.c b/tests/sdl_fog_density.c index cab6a4d27a497..46d4a8a1288f1 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 dba0c708bb951..f813cede5dd58 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 f0805650a6151..d7107914f1a7e 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 1ede63a7cf6e4..f99467bb2be66 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 6c052bf57922e..269b74321dd13 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 db0c61811a53d..dbf9849c98013 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 349c5e2699b1c..6157a46d0d01b 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 e7071dcd1f75d..78efd7e08a57c 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 eec2a83159591..6044f1ab5adfc 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 1889d92640c0e..2607f35cbed7e 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 c96da81b651ed..4c251f8353efb 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 2c0d35df2dc2a..cc0ee22473b79 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 93141857625ca..c859dbc749847 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 9cd80097e9716..d629ca942f2ec 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 afcdcae8d9170..b422e70c9b255 100644 --- a/tests/sockets/test_enet_client.c +++ b/tests/sockets/test_enet_client.c @@ -1,14 +1,14 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 9a4518ac82884..30d86a9901a68 100644 --- a/tests/sockets/test_enet_server.c +++ b/tests/sockets/test_enet_server.c @@ -4,7 +4,7 @@ #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 1f912c69b69d6..85610473f2047 100644 --- a/tests/sockets/test_getaddrinfo.c +++ b/tests/sockets/test_getaddrinfo.c @@ -6,7 +6,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #endif diff --git a/tests/sockets/test_gethostbyname.c b/tests/sockets/test_gethostbyname.c index 459c6b9840cb7..c0e11efbe79d5 100644 --- a/tests/sockets/test_gethostbyname.c +++ b/tests/sockets/test_gethostbyname.c @@ -7,7 +7,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #endif diff --git a/tests/sockets/test_getnameinfo.c b/tests/sockets/test_getnameinfo.c index c3fec6b487c63..dd4a04196cb48 100644 --- a/tests/sockets/test_getnameinfo.c +++ b/tests/sockets/test_getnameinfo.c @@ -6,7 +6,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 684d767f741cb..58d005c499b60 100644 --- a/tests/sockets/test_sockets_echo_client.c +++ b/tests/sockets/test_sockets_echo_client.c @@ -10,7 +10,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 b24472e8f4410..55898add7b069 100644 --- a/tests/sockets/test_sockets_echo_server.c +++ b/tests/sockets/test_sockets_echo_server.c @@ -11,7 +11,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 61084b171257b..2d930516f9b36 100644 --- a/tests/sockets/test_sockets_partial_client.c +++ b/tests/sockets/test_sockets_partial_client.c @@ -10,7 +10,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 f740c307468cf..5c3621a0cc744 100644 --- a/tests/sockets/test_sockets_partial_server.c +++ b/tests/sockets/test_sockets_partial_server.c @@ -11,7 +11,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 e69c3ac076574..28a81cd94ba43 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 #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 2765a87979990..5b05087053e69 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 #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 012932cf27941..07c5c84754804 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 #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 866c875c3029b..e482d4aec8c05 100644 --- a/tests/sockets/webrtc_host.c +++ b/tests/sockets/webrtc_host.c @@ -9,7 +9,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 dd44e93ee471f..327782d61234d 100644 --- a/tests/sockets/webrtc_peer.c +++ b/tests/sockets/webrtc_peer.c @@ -9,7 +9,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 bcbb7cdd1da97..d49e1887a86f3 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( ptrendPtr ){ -#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 361b23157cdb8..262c8a5f7ea36 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 f59fb3c32cf95..e14ebdc5f1f2a 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_float_literals.cpp b/tests/test_float_literals.cpp index fdae2764056a7..2920fbd14d97c 100644 --- a/tests/test_float_literals.cpp +++ b/tests/test_float_literals.cpp @@ -4,7 +4,7 @@ #include #include -#if defined(_MSC_VER) || defined(EMSCRIPTEN) +#if defined(_MSC_VER) || defined(__EMSCRIPTEN__) #define FLOAT_NAN ((float)std::numeric_limits::quiet_NaN()) #define FLOAT_INF ((float)std::numeric_limits::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::quiet_NaN()) #define DOUBLE_INF ((double)std::numeric_limits::infinity()) #else diff --git a/tests/tex_nonbyte.c b/tests/tex_nonbyte.c index 960d0efb4cffa..ffeb9f24eef6a 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 9f5323253085f..a15baab8f693b 100644 --- a/tests/unistd/unlink.c +++ b/tests/unistd/unlink.c @@ -7,7 +7,7 @@ #include #include #include -#if EMSCRIPTEN +#ifdef __EMSCRIPTEN__ #include #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 dc2c6589010bd..f5f84011091d6 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 From de5271f3c1ffce1cd91496fddde37708662c92c8 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 24 Feb 2014 08:47:10 -0800 Subject: [PATCH 11/13] Fix the banned_js_engines mechanism. --- tools/shared.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/shared.py b/tools/shared.py index e6be09d03537c..92186c2c11482 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -687,9 +687,12 @@ def get_llvm_target(): 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 From 8b3529dd9e46fd40021d06df34bdddce5900a0d6 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 24 Feb 2014 08:47:28 -0800 Subject: [PATCH 12/13] Make the "did NOT asm.js'ify" error message more --- tests/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/runner.py b/tests/runner.py index ba43e15acb6c6..c13a16eb8d9c8 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -254,7 +254,7 @@ def validate_asmjs(self, err): 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 From 94d5b3cc8e9d2be5faf7379816393ebd1d297a71 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Tue, 25 Feb 2014 12:27:28 -0800 Subject: [PATCH 13/13] 1.12.2 --- tools/shared.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/shared.py b/tools/shared.py index 92186c2c11482..cb6c840231098 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()