kaist-cp / cs420

KAIST CS420: Compiler Design (2023 Spring)
412 stars 27 forks source link

[Question] Fuzzer cannot reduce on server #351

Closed Lee-Janggun closed 2 years ago

Lee-Janggun commented 2 years ago

I am trying to fuzz on homework 1, but cannot reduce with the given instructions.

First, I tried

 python3 tests/fuzz.py -p  

Which worked fine. Then, I tried

python3 tests/fuzz.py -p -r

Which resulted in the following error

Building KECC..
    Finished release [optimized] target(s) in 0.04s
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LC_CTYPE = "C.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

C-Reduce cannot run because the interestingness test does not return
zero. Please ensure that it does so not only in the directory where
you are invoking C-Reduce, but also in an arbitrary temporary
directory containing only the files that are being reduced. In other
words, running these commands:

  DIR=`mktemp -d`
  cp /home/s20223506/cs420-Homework/tests/test_reduced.c $DIR
  cd $DIR
  /home/s20223506/cs420-Homework/tests/reduce-criteria.sh
  echo $?

should result in "0" being echoed to the terminal.

See "creduce --help" for more information.

Traceback (most recent call last):
  File "tests/fuzz.py", line 278, in <module>
    creduce(tests_dir, fuzz_arg)
  File "tests/fuzz.py", line 200, in creduce
    raise Exception("Reducing test_reduced.c by `{}` failed with exit code {}.".format(" ".join(args), proc.returncode))
Exception: Reducing test_reduced.c by `creduce --tidy ./reduce-criteria.sh test_reduced.c` failed with exit code 1.

It seems some stuff are not installed on the server. Is there anything I can do here?

Lee-Janggun commented 2 years ago

For anyone else struggling: I did manual binary search to reduce the example.

minseongg commented 2 years ago

It looks like similar issue with https://github.com/kaist-cp/cs420/issues/337#issuecomment-1060612432.

Could you please check your test_polished.c is a buggy input program by following the instructions in the above issue? I don't think these locale warnings are related to reducing the code.

Lee-Janggun commented 2 years ago

By "buggy input program", you mean test_polished.c after python3 tests/fuzz.py --print has failed right?

My current (modified to be incorrect) implementation has the following error on python3 tests/fuzz.py --print.

Test case #0 (skipped: 0)
Traceback (most recent call last):
  File "tests/fuzz.py", line 304, in <module>
    fuzz(tests_dir, fuzz_arg, args.num, args.easy)
  File "tests/fuzz.py", line 249, in fuzz
    raise Exception("Test `{}` failed with exit code {}.".format(" ".join(args), proc.returncode))
Exception: Test `/home/s20223506/cs420-Homework/target/release/fuzz -p /home/s20223506/cs420-Homework/tests/test_polished.c` failed with exit code 101

When I then run python3 tests/fuzz.py --print --reduce, I get the error mentioned above.

minseongg commented 2 years ago

Hmm it's strange..

By "buggy input program", you mean test_polished.c after python3 tests/fuzz.py --print has failed write?

Yes. If you can reproduce the error, then what is the output of cargo run --features=build-bin --release --bin fuzz -- -p test_polished.c (on tests/ directory)? Fuzzer starts to reduce the code when the output contains assertion failed. Otherwise, it returns the error which you got.

Lee-Janggun commented 2 years ago

I get this

thread 'main' panicked at 'parse failed while parsing the output from implemented printer: ParseError(SyntaxError(SyntaxError { source: "# 1 \"/tmp/.tmp52xirw/temp.c\"\n# 1 \"<built-in>\"\n# 1 \"<command-line>\"\n# 31 \"<command-line>\"\n# 1 \"/usr/include/stdc-predef.h\" 1 3 4\n# 32 \"<command-line>\" 2\n# 1 \"/tmp/.tmp52xirw/temp.c\"\ntypedef unsigned char __u_char;\n\ntypedef unsigned short int __u_short;\n\ntypedef unsigned int __u_int;\n\ntypedef unsigned long int __u_long;\n\ntypedef __signed char __int8_t;\n\ntypedef unsigned char __uint8_t;\n\ntypedef __signed short int __int16_t;\n\ntypedef unsigned short int __uint16_t;\n\ntypedef __signed int __int32_t;\n\ntypedef unsigned int __uint32_t;\n\ntypedef __signed long int __int64_t;\n\ntypedef unsigned long int __uint64_t;\n\ntypedef __int8_t __int_least8_t;\n\ntypedef __uint8_t __uint_least8_t;\n\ntypedef __int16_t __int_least16_t;\n\ntypedef __uint16_t __uint_least16_t;\n\ntypedef __int32_t __int_least32_t;\n\ntypedef __uint32_t __uint_least32_t;\n\ntypedef __int64_t __int_least64_t;\n\ntypedef __uint64_t __uint_least64_t;\n\ntypedef long int __quad_t;\n\ntypedef unsigned long int __u_quad_t;\n\ntypedef long int __intmax_t;\n\ntypedef unsigned long int __uintmax_t;\n\ntypedef unsigned long int __dev_t;\n\ntypedef unsigned int __uid_t;\n\ntypedef unsigned int __gid_t;\n\ntypedef unsigned long int __ino_t;\n\ntypedef unsigned long int __ino64_t;\n\ntypedef unsigned int __mode_t;\n\ntypedef unsigned long int __nlink_t;\n\ntypedef long int __off_t;\n\ntypedef long int __off64_t;\n\ntypedef int __pid_t;\n\ntypedef struct {\n  int __val[2];\n} __fsid_t;\n\ntypedef long int __clock_t;\n\ntypedef unsigned long int __rlim_t;\n\ntypedef unsigned long int __rlim64_t;\n\ntypedef unsigned int __id_t;\n\ntypedef long int __time_t;\n\ntypedef unsigned int __useconds_t;\n\ntypedef long int __suseconds_t;\n\ntypedef int __daddr_t;\n\ntypedef int __key_t;\n\ntypedef int __clockid_t;\n\ntypedef void * __timer_t;\n\ntypedef long int __blksize_t;\n\ntypedef long int __blkcnt_t;\n\ntypedef long int __blkcnt64_t;\n\ntypedef unsigned long int __fsblkcnt_t;\n\ntypedef unsigned long int __fsblkcnt64_t;\n\ntypedef unsigned long int __fsfilcnt_t;\n\ntypedef unsigned long int __fsfilcnt64_t;\n\ntypedef long int __fsword_t;\n\ntypedef long int __ssize_t;\n\ntypedef long int __syscall_slong_t;\n\ntypedef unsigned long int __syscall_ulong_t;\n\ntypedef __off64_t __loff_t;\n\ntypedef char * __caddr_t;\n\ntypedef long int __intptr_t;\n\ntypedef unsigned int __socklen_t;\n\ntypedef int __sig_atomic_t;\n\ntypedef float float_t;\n\ntypedef double double_t;\n\nint __fpclassify(double __value);\n\nint __signbit(double __value);\n\nint __isinf(double __value);\n\nint __finite(double __value);\n\nint __isnan(double __value);\n\nint __iseqsig(double __x, double __y);\n\nint __issignaling(double __value);\n\ndouble acos(double __x);\n\ndouble asin(double __x);\n\ndouble atan(double __x);\n\ndouble atan2(double __y, double __x);\n\ndouble cos(double __x);\n\ndouble sin(double __x);\n\ndouble tan(double __x);\n\ndouble cosh(double __x);\n\ndouble sinh(double __x);\n\ndouble tanh(double __x);\n\ndouble acosh(double __x);\n\ndouble asinh(double __x);\n\ndouble atanh(double __x);\n\ndouble exp(double __x);\n\ndouble frexp(double __x, int * __exponent);\n\ndouble ldexp(double __x, int __exponent);\n\ndouble log(double __x);\n\ndouble log10(double __x);\n\ndouble modf(double __x, double * __iptr);\n\ndouble expm1(double __x);\n\ndouble log1p(double __x);\n\ndouble logb(double __x);\n\ndouble exp2(double __x);\n\ndouble log2(double __x);\n\ndouble pow(double __x, double __y);\n\ndouble sqrt(double __x);\n\ndouble hypot(double __x, double __y);\n\ndouble cbrt(double __x);\n\ndouble ceil(double __x);\n\ndouble fabs(double __x);\n\ndouble floor(double __x);\n\ndouble fmod(double __x, double __y);\n\nint isinf(double __value);\n\nint finite(double __value);\n\ndouble drem(double __x, double __y);\n\ndouble significand(double __x);\n\ndouble copysign(double __x, double __y);\n\ndouble nan(const char * __tagb);\n\nint isnan(double __value);\n\ndouble j0(double);\n\ndouble j1(double);\n\ndouble jn(int, double);\n\ndouble y0(double);\n\ndouble y1(double);\n\ndouble yn(int, double);\n\ndouble erf(double);\n\ndouble erfc(double);\n\ndouble lgamma(double);\n\ndouble tgamma(double);\n\ndouble gamma(double);\n\ndouble lgamma_r(double, int * __signgamp);\n\ndouble rint(double __x);\n\ndouble nextafter(double __x, double __y);\n\ndouble nexttoward(double __x, double __y);\n\ndouble remainder(double __x, double __y);\n\ndouble scalbn(double __x, int __n);\n\nint ilogb(double __x);\n\ndouble scalbln(double __x, long int __n);\n\ndouble nearbyint(double __x);\n\ndouble round(double __x);\n\ndouble trunc(double __x);\n\ndouble remquo(double __x, double __y, int * __quo);\n\nlong int lrint(double __x);\n\nlong long int llrint(double __x);\n\nlong int lround(double __x);\n\nlong long int llround(double __x);\n\ndouble fdim(double __x, double __y);\n\ndouble fmax(double __x, double __y);\n\ndouble fmin(double __x, double __y);\n\ndouble fma(double __x, double __y, double __z);\n\ndouble scalb(double __x, double __n);\n\nint __fpclassifyf(float __value);\n\nint __signbitf(float __value);\n\nint __isinff(float __value);\n\nint __finitef(float __value);\n\nint __isnanf(float __value);\n\nint __iseqsigf(float __x, float __y);\n\nint __issignalingf(float __value);\n\nfloat acosf(float __x);\n\nfloat asinf(float __x);\n\nfloat atanf(float __x);\n\nfloat atan2f(float __y, float __x);\n\nfloat cosf(float __x);\n\nfloat sinf(float __x);\n\nfloat tanf(float __x);\n\nfloat coshf(float __x);\n\nfloat sinhf(float __x);\n\nfloat tanhf(float __x);\n\nfloat acoshf(float __x);\n\nfloat asinhf(float __x);\n\nfloat atanhf(float __x);\n\nfloat expf(float __x);\n\nfloat frexpf(float __x, int * __exponent);\n\nfloat ldexpf(float __x, int __exponent);\n\nfloat logf(float __x);\n\nfloat log10f(float __x);\n\nfloat modff(float __x, float * __iptr);\n\nfloat expm1f(float __x);\n\nfloat log1pf(float __x);\n\nfloat logbf(float __x);\n\nfloat exp2f(float __x);\n\nfloat log2f(float __x);\n\nfloat powf(float __x, float __y);\n\nfloat sqrtf(float __x);\n\nfloat hypotf(float __x, float __y);\n\nfloat cbrtf(float __x);\n\nfloat ceilf(float __x);\n\nfloat fabsf(float __x);\n\nfloat floorf(float __x);\n\nfloat fmodf(float __x, float __y);\n\nint isinff(float __value);\n\nint finitef(float __value);\n\nfloat dremf(float __x, float __y);\n\nfloat significandf(float __x);\n\nfloat copysignf(float __x, float __y);\n\nfloat nanf(const char * __tagb);\n\nint isnanf(float __value);\n\nfloat j0f(float);\n\nfloat j1f(float);\n\nfloat jnf(int, float);\n\nfloat y0f(float);\n\nfloat y1f(float);\n\nfloat ynf(int, float);\n\nfloat erff(float);\n\nfloat erfcf(float);\n\nfloat lgammaf(float);\n\nfloat tgammaf(float);\n\nfloat gammaf(float);\n\nfloat lgammaf_r(float, int * __signgamp);\n\nfloat rintf(float __x);\n\nfloat nextafterf(float __x, float __y);\n\nfloat nexttowardf(float __x, double __y);\n\nfloat remainderf(float __x, float __y);\n\nfloat scalbnf(float __x, int __n);\n\nint ilogbf(float __x);\n\nfloat scalblnf(float __x, long int __n);\n\nfloat nearbyintf(float __x);\n\nfloat roundf(float __x);\n\nfloat truncf(float __x);\n\nfloat remquof(float __x, float __y, int * __quo);\n\nlong int lrintf(float __x);\n\nlong long int llrintf(float __x);\n\nlong int lroundf(float __x);\n\nlong long int llroundf(float __x);\n\nfloat fdimf(float __x, float __y);\n\nfloat fmaxf(float __x, float __y);\n\nfloat fminf(float __x, float __y);\n\nfloat fmaf(float __x, float __y, float __z);\n\nfloat scalbf(float __x, float __n);\n\nint __fpclassifyl(double __value);\n\nint __signbitl(double __value);\n\nint __isinfl(double __value);\n\nint __finitel(double __value);\n\nint __isnanl(double __value);\n\nint __iseqsigl(double __x, double __y);\n\nint __issignalingl(double __value);\n\ndouble acosl(double __x);\n\ndouble asinl(double __x);\n\ndouble atanl(double __x);\n\ndouble atan2l(double __y, double __x);\n\ndouble cosl(double __x);\n\ndouble sinl(double __x);\n\ndouble tanl(double __x);\n\ndouble coshl(double __x);\n\ndouble sinhl(double __x);\n\ndouble tanhl(double __x);\n\ndouble acoshl(double __x);\n\ndouble asinhl(double __x);\n\ndouble atanhl(double __x);\n\ndouble expl(double __x);\n\ndouble frexpl(double __x, int * __exponent);\n\ndouble ldexpl(double __x, int __exponent);\n\ndouble logl(double __x);\n\ndouble log10l(double __x);\n\ndouble modfl(double __x, double * __iptr);\n\ndouble expm1l(double __x);\n\ndouble log1pl(double __x);\n\ndouble logbl(double __x);\n\ndouble exp2l(double __x);\n\ndouble log2l(double __x);\n\ndouble powl(double __x, double __y);\n\ndouble sqrtl(double __x);\n\ndouble hypotl(double __x, double __y);\n\ndouble cbrtl(double __x);\n\ndouble ceill(double __x);\n\ndouble fabsl(double __x);\n\ndouble floorl(double __x);\n\ndouble fmodl(double __x, double __y);\n\nint isinfl(double __value);\n\nint finitel(double __value);\n\ndouble dreml(double __x, double __y);\n\ndouble significandl(double __x);\n\ndouble copysignl(double __x, double __y);\n\ndouble nanl(const char * __tagb);\n\nint isnanl(double __value);\n\ndouble j0l(double);\n\ndouble j1l(double);\n\ndouble jnl(int, double);\n\ndouble y0l(double);\n\ndouble y1l(double);\n\ndouble ynl(int, double);\n\ndouble erfl(double);\n\ndouble erfcl(double);\n\ndouble lgammal(double);\n\ndouble tgammal(double);\n\ndouble gammal(double);\n\ndouble lgammal_r(double, int * __signgamp);\n\ndouble rintl(double __x);\n\ndouble nextafterl(double __x, double __y);\n\ndouble nexttowardl(double __x, double __y);\n\ndouble remainderl(double __x, double __y);\n\ndouble scalbnl(double __x, int __n);\n\nint ilogbl(double __x);\n\ndouble scalblnl(double __x, long int __n);\n\ndouble nearbyintl(double __x);\n\ndouble roundl(double __x);\n\ndouble truncl(double __x);\n\ndouble remquol(double __x, double __y, int * __quo);\n\nlong int lrintl(double __x);\n\nlong long int llrintl(double __x);\n\nlong int lroundl(double __x);\n\nlong long int llroundl(double __x);\n\ndouble fdiml(double __x, double __y);\n\ndouble fmaxl(double __x, double __y);\n\ndouble fminl(double __x, double __y);\n\ndouble fmal(double __x, double __y, double __z);\n\ndouble scalbl(double __x, double __n);\n\nint __fpclassifyf128(double __value);\n\nint __signbitf128(double __value);\n\nint __isinff128(double __value);\n\nint __finitef128(double __value);\n\nint __isnanf128(double __value);\n\nint __iseqsigf128(double __x, double __y);\n\nint __issignalingf128(double __value);\n\nint signgam;\n\ntypedef long unsigned int size_t;\n\nvoid * memcpy(void * __dest, const void * __src, size_t __n);\n\nvoid * memmove(void * __dest, const void * __src, size_t __n);\n\nvoid * memccpy(void * __dest, const void * __src, int __c, size_t __n);\n\nvoid * memset(void * __s, int __c, size_t __n);\n\nint memcmp(const void * __s1, const void * __s2, size_t __n);\n\nvoid * memchr(const void * __s, int __c, size_t __n);\n\nchar * strcpy(char * __dest, const char * __src);\n\nchar * strncpy(char * __dest, const char * __src, size_t __n);\n\nchar * strcat(char * __dest, const char * __src);\n\nchar * strncat(char * __dest, const char * __src, size_t __n);\n\nint strcmp(const char * __s1, const char * __s2);\n\nint strncmp(const char * __s1, const char * __s2, size_t __n);\n\nint strcoll(const char * __s1, const char * __s2);\n\nsize_t strxfrm(char * __dest, const char * __src, size_t __n);\n\nstruct __locale_struct {\n  struct __locale_data * __locales[13];\n  const unsigned short int * __ctype_b;\n  const int * __ctype_tolower;\n  const int * __ctype_toupper;\n  const char * __names[13];\n} ;\n\ntypedef struct __locale_struct * __locale_t;\n\ntypedef __locale_t locale_t;\n\nint strcoll_l(const char * __s1, const char * __s2, locale_t __l);\n\nsize_t strxfrm_l(char * __dest, const char * __src, size_t __n, locale_t __l);\n\nchar * strdup(const char * __s);\n\nchar * strndup(const char * __string, size_t __n);\n\nchar * strchr(const char * __s, int __c);\n\nchar * strrchr(const char * __s, int __c);\n\nsize_t strcspn(const char * __s, const char * __reject);\n\nsize_t strspn(const char * __s, const char * __accept);\n\nchar * strpbrk(const char * __s, const char * __accept);\n\nchar * strstr(const char * __haystack, const char * __needle);\n\nchar * strtok(char * __s, const char * __delim);\n\nchar * __strtok_r(char * __s, const char * __delim, char * * __save_ptr);\n\nchar * strtok_r(char * __s, const char * __delim, char * * __save_ptr);\n\nsize_t strlen(const char * __s);\n\nsize_t strnlen(const char * __string, size_t __maxlen);\n\nchar * strerror(int __errnum);\n\nint strerror_r(int __errnum, char * __buf, size_t __buflen);\n\nchar * strerror_l(int __errnum, locale_t __l);\n\nint bcmp(const void * __s1, const void * __s2, size_t __n);\n\nvoid bcopy(const void * __src, void * __dest, size_t __n);\n\nvoid bzero(void * __s, size_t __n);\n\nchar * index(const char * __s, int __c);\n\nchar * rindex(const char * __s, int __c);\n\nint ffs(int __i);\n\nint ffsl(long int __l);\n\nint ffsll(long long int __ll);\n\nint strcasecmp(const char * __s1, const char * __s2);\n\nint strncasecmp(const char * __s1, const char * __s2, size_t __n);\n\nint strcasecmp_l(const char * __s1, const char * __s2, locale_t __loc);\n\nint strncasecmp_l(const char * __s1, const char * __s2, size_t __n, locale_t __loc);\n\nvoid explicit_bzero(void * __s, size_t __n);\n\nchar * strsep(char * * __stringp, const char * __delim);\n\nchar * strsignal(int __sig);\n\nchar * __stpcpy(char * __dest, const char * __src);\n\nchar * stpcpy(char * __dest, const char * __src);\n\nchar * __stpncpy(char * __dest, const char * __src, size_t __n);\n\nchar * stpncpy(char * __dest, const char * __src, size_t __n);\n\ntypedef __int8_t int8_t;\n\ntypedef __int16_t int16_t;\n\ntypedef __int32_t int32_t;\n\ntypedef __int64_t int64_t;\n\ntypedef __uint8_t uint8_t;\n\ntypedef __uint16_t uint16_t;\n\ntypedef __uint32_t uint32_t;\n\ntypedef __uint64_t uint64_t;\n\ntypedef __int_least8_t int_least8_t;\n\ntypedef __int_least16_t int_least16_t;\n\ntypedef __int_least32_t int_least32_t;\n\ntypedef __int_least64_t int_least64_t;\n\ntypedef __uint_least8_t uint_least8_t;\n\ntypedef __uint_least16_t uint_least16_t;\n\ntypedef __uint_least32_t uint_least32_t;\n\ntypedef __uint_least64_t uint_least64_t;\n\ntypedef __signed char int_fast8_t;\n\ntypedef long int int_fast16_t;\n\ntypedef long int int_fast32_t;\n\ntypedef long int int_fast64_t;\n\ntypedef unsigned char uint_fast8_t;\n\ntypedef unsigned long int uint_fast16_t;\n\ntypedef unsigned long int uint_fast32_t;\n\ntypedef unsigned long int uint_fast64_t;\n\ntypedef long int intptr_t;\n\ntypedef unsigned long int uintptr_t;\n\ntypedef __intmax_t intmax_t;\n\ntypedef __uintmax_t uintmax_t;\n\nvoid __assert_fail(const char * __assertion, const char * __file, unsigned int __line, const char * __function);\n\nvoid __assert_perror_fail(int __errnum, const char * __file, unsigned int __line, const char * __function);\n\nvoid __assert(const char * __assertion, const char * __file, int __line);\n\ntypedef struct {\n  int __count;\n  struct {\n  unsigned int __wch;\n  char __wchb[4];\n} __value;\n} __mbstate_t;\n\ntypedef struct _G_fpos_t {\n  __off_t __pos;\n  __mbstate_t __state;\n} __fpos_t;\n\ntypedef struct _G_fpos64_t {\n  __off64_t __pos;\n  __mbstate_t __state;\n} __fpos64_t;\n\nstruct _IO_FILE ;\n\ntypedef struct _IO_FILE __FILE;\n\nstruct _IO_FILE ;\n\ntypedef struct _IO_FILE FILE;\n\nstruct _IO_FILE ;\n\nstruct _IO_marker ;\n\nstruct _IO_codecvt ;\n\nstruct _IO_wide_data ;\n\ntypedef void _IO_lock_t;\n\nstruct _IO_FILE {\n  int _flags;\n  char * _IO_read_ptr;\n  char * _IO_read_end;\n  char * _IO_read_base;\n  char * _IO_write_base;\n  char * _IO_write_ptr;\n  char * _IO_write_end;\n  char * _IO_buf_base;\n  char * _IO_buf_end;\n  char * _IO_save_base;\n  char * _IO_backup_base;\n  char * _IO_save_end;\n  struct _IO_marker * _markers;\n  struct _IO_FILE * _chain;\n  int _fileno;\n  int _flags2;\n  __off_t _old_offset;\n  unsigned short _cur_column;\n  __signed char _vtable_offset;\n  char _shortbuf[1];\n  _IO_lock_t * _lock;\n  __off64_t _offset;\n  struct _IO_codecvt * _codecvt;\n  struct _IO_wide_data * _wide_data;\n  struct _IO_FILE * _freeres_list;\n  void * _freeres_buf;\n  size_t __pad5;\n  int _mode;\n  char _unused2[10];\n} ;\n\ntypedef __off_t off_t;\n\ntypedef __ssize_t ssize_t;\n\ntypedef __fpos_t fpos_t;\n\nFILE * stdin;\n\nFILE * stdout;\n\nFILE * stderr;\n\nint remove(const char * __filename);\n\nint rename(const char * __old, const char * __new);\n\nint renameat(int __oldfd, const char * __old, int __newfd, const char * __new);\n\nFILE * tmpfile(void);\n\nchar * tmpnam(char * __s);\n\nchar * tmpnam_r(char * __s);\n\nchar * tempnam(const char * __dir, const char * __pfx);\n\nint fclose(FILE * __stream);\n\nint fflush(FILE * __stream);\n\nint fflush_unlocked(FILE * __stream);\n\nFILE * fopen(const char * __filename, const char * __modes);\n\nFILE * freopen(const char * __filename, const char * __modes, FILE * __stream);\n\nFILE * fdopen(int __fd, const char * __modes);\n\nFILE * fmemopen(void * __s, size_t __len, const char * __modes);\n\nFILE * open_memstream(char * * __bufloc, size_t * __sizeloc);\n\nvoid setbuf(FILE * __stream, char * __buf);\n\nint setvbuf(FILE * __stream, char * __buf, int __modes, size_t __n);\n\nvoid setbuffer(FILE * __stream, char * __buf, size_t __size);\n\nvoid setlinebuf(FILE * __stream);\n\nint fgetc(FILE * __stream);\n\nint getc(FILE * __stream);\n\nint getchar(void);\n\nint getc_unlocked(FILE * __stream);\n\nint getchar_unlocked(void);\n\nint fgetc_unlocked(FILE * __stream);\n\nint fputc(int __c, FILE * __stream);\n\nint putc(int __c, FILE * __stream);\n\nint putchar(int __c);\n\nint fputc_unlocked(int __c, FILE * __stream);\n\nint putc_unlocked(int __c, FILE * __stream);\n\nint putchar_unlocked(int __c);\n\nint getw(FILE * __stream);\n\nint putw(int __w, FILE * __stream);\n\nchar * fgets(char * __s, int __n, FILE * __stream);\n\n__ssize_t __getdelim(char * * __lineptr, size_t * __n, int __delimiter, FILE * __stream);\n\n__ssize_t getdelim(char * * __lineptr, size_t * __n, int __delimiter, FILE * __stream);\n\n__ssize_t getline(char * * __lineptr, size_t * __n, FILE * __stream);\n\nint fputs(const char * __s, FILE * __stream);\n\nint puts(const char * __s);\n\nint ungetc(int __c, FILE * __stream);\n\nsize_t fread(void * __ptr, size_t __size, size_t __n, FILE * __stream);\n\nsize_t fwrite(const void * __ptr, size_t __size, size_t __n, FILE * __s);\n\nsize_t fread_unlocked(void * __ptr, size_t __size, size_t __n, FILE * __stream);\n\nsize_t fwrite_unlocked(const void * __ptr, size_t __size, size_t __n, FILE * __stream);\n\nint fseek(FILE * __stream, long int __off, int __whence);\n\nlong int ftell(FILE * __stream);\n\nvoid rewind(FILE * __stream);\n\nint fseeko(FILE * __stream, __off_t __off, int __whence);\n\n__off_t ftello(FILE * __stream);\n\nint fgetpos(FILE * __stream, fpos_t * __pos);\n\nint fsetpos(FILE * __stream, const fpos_t * __pos);\n\nvoid clearerr(FILE * __stream);\n\nint feof(FILE * __stream);\n\nint ferror(FILE * __stream);\n\nvoid clearerr_unlocked(FILE * __stream);\n\nint feof_unlocked(FILE * __stream);\n\nint ferror_unlocked(FILE * __stream);\n\nvoid perror(const char * __s);\n\nint sys_nerr;\n\nint fileno(FILE * __stream);\n\nint fileno_unlocked(FILE * __stream);\n\nFILE * popen(const char * __command, const char * __modes);\n\nint pclose(FILE * __stream);\n\nchar * ctermid(char * __s);\n\nvoid flockfile(FILE * __stream);\n\nint ftrylockfile(FILE * __stream);\n\nvoid funlockfile(FILE * __stream);\n\nint __uflow(FILE * );\n\nint __overflow(FILE * , int);\n\nvoid platform_main_begin(void) {\n}\n\nvoid platform_main_end(uint32_t crc, int flag) {\n}\n\nint8_t ( safe_unary_minus_func_int8_t_s)(int8_t si) {\n  return (-(si));\n}\n\nint8_t ( safe_add_func_int8_t_s_s)(int8_t si1, int8_t si2) {\n  return (((si1) + (si2)));\n}\n\nint8_t ( safe_sub_func_int8_t_s_s)(int8_t si1, int8_t si2) {\n  return (((si1) - (si2)));\n}\n\nint8_t ( safe_mul_func_int8_t_s_s)(int8_t si1, int8_t si2) {\n  return (((si1) * (si2)));\n}\n\nint8_t ( safe_mod_func_int8_t_s_s)(int8_t si1, int8_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (-(128)))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) % (si2)))));\n}\n\nint8_t ( safe_div_func_int8_t_s_s)(int8_t si1, int8_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (-(128)))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) / (si2)))));\n}\n\nint8_t ( safe_lshift_func_int8_t_s_s)(int8_t left, int right) {\n  return (((((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) || (((left) > (((127) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nint8_t ( safe_lshift_func_int8_t_s_u)(int8_t left, unsigned int right) {\n  return (((((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) || (((left) > (((127) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nint8_t ( safe_rshift_func_int8_t_s_s)(int8_t left, int right) {\n  return (((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nint8_t ( safe_rshift_func_int8_t_s_u)(int8_t left, unsigned int right) {\n  return (((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nint16_t ( safe_unary_minus_func_int16_t_s)(int16_t si) {\n  return (-(si));\n}\n\nint16_t ( safe_add_func_int16_t_s_s)(int16_t si1, int16_t si2) {\n  return (((si1) + (si2)));\n}\n\nint16_t ( safe_sub_func_int16_t_s_s)(int16_t si1, int16_t si2) {\n  return (((si1) - (si2)));\n}\n\nint16_t ( safe_mul_func_int16_t_s_s)(int16_t si1, int16_t si2) {\n  return (((si1) * (si2)));\n}\n\nint16_t ( safe_mod_func_int16_t_s_s)(int16_t si1, int16_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(32767)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) % (si2)))));\n}\n\nint16_t ( safe_div_func_int16_t_s_s)(int16_t si1, int16_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(32767)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) / (si2)))));\n}\n\nint16_t ( safe_lshift_func_int16_t_s_s)(int16_t left, int right) {\n  return (((((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) || (((left) > (((32767) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nint16_t ( safe_lshift_func_int16_t_s_u)(int16_t left, unsigned int right) {\n  return (((((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) || (((left) > (((32767) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nint16_t ( safe_rshift_func_int16_t_s_s)(int16_t left, int right) {\n  return (((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nint16_t ( safe_rshift_func_int16_t_s_u)(int16_t left, unsigned int right) {\n  return (((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nint32_t ( safe_unary_minus_func_int32_t_s)(int32_t si) {\n  return (((((si) == (((-(2147483647)) - (1))))) ? (si) : (-(si))));\n}\n\nint32_t ( safe_add_func_int32_t_s_s)(int32_t si1, int32_t si2) {\n  return (((((((((((si1) > (0))) && (((si2) > (0))))) && (((si1) > (((2147483647) - (si2))))))) || (((((((si1) < (0))) && (((si2) < (0))))) && (((si1) < (((((-(2147483647)) - (1))) - (si2))))))))) ? (si1) : (((si1) + (si2)))));\n}\n\nint32_t ( safe_sub_func_int32_t_s_s)(int32_t si1, int32_t si2) {\n  return (((((((((si1) ^ (si2))) & (((((((si1) ^ (((((si1) ^ (si2))) & (~(2147483647)))))) - (si2))) ^ (si2))))) < (0))) ? (si1) : (((si1) - (si2)))));\n}\n\nint32_t ( safe_mul_func_int32_t_s_s)(int32_t si1, int32_t si2) {\n  return (((((((((((((((si1) > (0))) && (((si2) > (0))))) && (((si1) > (((2147483647) / (si2))))))) || (((((((si1) > (0))) && (((si2) <= (0))))) && (((si2) < (((((-(2147483647)) - (1))) / (si1))))))))) || (((((((si1) <= (0))) && (((si2) > (0))))) && (((si1) < (((((-(2147483647)) - (1))) / (si2))))))))) || (((((((((si1) <= (0))) && (((si2) <= (0))))) && (((si1) != (0))))) && (((si2) < (((2147483647) / (si1))))))))) ? (si1) : (((si1) * (si2)))));\n}\n\nint32_t ( safe_mod_func_int32_t_s_s)(int32_t si1, int32_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(2147483647)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) % (si2)))));\n}\n\nint32_t ( safe_div_func_int32_t_s_s)(int32_t si1, int32_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(2147483647)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) / (si2)))));\n}\n\nint32_t ( safe_lshift_func_int32_t_s_s)(int32_t left, int right) {\n  return (((((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) || (((left) > (((2147483647) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nint32_t ( safe_lshift_func_int32_t_s_u)(int32_t left, unsigned int right) {\n  return (((((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) || (((left) > (((2147483647) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nint32_t ( safe_rshift_func_int32_t_s_s)(int32_t left, int right) {\n  return (((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nint32_t ( safe_rshift_func_int32_t_s_u)(int32_t left, unsigned int right) {\n  return (((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nint64_t ( safe_unary_minus_func_int64_t_s)(int64_t si) {\n  return (((((si) == (((-(9223372036854775807L)) - (1))))) ? (si) : (-(si))));\n}\n\nint64_t ( safe_add_func_int64_t_s_s)(int64_t si1, int64_t si2) {\n  return (((((((((((si1) > (0))) && (((si2) > (0))))) && (((si1) > (((9223372036854775807L) - (si2))))))) || (((((((si1) < (0))) && (((si2) < (0))))) && (((si1) < (((((-(9223372036854775807L)) - (1))) - (si2))))))))) ? (si1) : (((si1) + (si2)))));\n}\n\nint64_t ( safe_sub_func_int64_t_s_s)(int64_t si1, int64_t si2) {\n  return (((((((((si1) ^ (si2))) & (((((((si1) ^ (((((si1) ^ (si2))) & (~(9223372036854775807L)))))) - (si2))) ^ (si2))))) < (0))) ? (si1) : (((si1) - (si2)))));\n}\n\nint64_t ( safe_mul_func_int64_t_s_s)(int64_t si1, int64_t si2) {\n  return (((((((((((((((si1) > (0))) && (((si2) > (0))))) && (((si1) > (((9223372036854775807L) / (si2))))))) || (((((((si1) > (0))) && (((si2) <= (0))))) && (((si2) < (((((-(9223372036854775807L)) - (1))) / (si1))))))))) || (((((((si1) <= (0))) && (((si2) > (0))))) && (((si1) < (((((-(9223372036854775807L)) - (1))) / (si2))))))))) || (((((((((si1) <= (0))) && (((si2) <= (0))))) && (((si1) != (0))))) && (((si2) < (((9223372036854775807L) / (si1))))))))) ? (si1) : (((si1) * (si2)))));\n}\n\nint64_t ( safe_mod_func_int64_t_s_s)(int64_t si1, int64_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(9223372036854775807L)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) % (si2)))));\n}\n\nint64_t ( safe_div_func_int64_t_s_s)(int64_t si1, int64_t si2) {\n  return (((((((si2) == (0))) || (((((si1) == (((-(9223372036854775807L)) - (1))))) && (((si2) == (-(1)))))))) ? (si1) : (((si1) / (si2)))));\n}\n\nint64_t ( safe_lshift_func_int64_t_s_s)(int64_t left, int right) {\n  return (((((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) || (((left) > (((9223372036854775807L) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nint64_t ( safe_lshift_func_int64_t_s_u)(int64_t left, unsigned int right) {\n  return (((((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) || (((left) > (((9223372036854775807L) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nint64_t ( safe_rshift_func_int64_t_s_s)(int64_t left, int right) {\n  return (((((((((left) < (0))) || ((((int) (right)) < (0))))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nint64_t ( safe_rshift_func_int64_t_s_u)(int64_t left, unsigned int right) {\n  return (((((((left) < (0))) || ((((unsigned int) (right)) >= (32))))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nuint8_t ( safe_unary_minus_func_uint8_t_u)(uint8_t ui) {\n  return (-(ui));\n}\n\nuint8_t ( safe_add_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2) {\n  return (((ui1) + (ui2)));\n}\n\nuint8_t ( safe_sub_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2) {\n  return (((ui1) - (ui2)));\n}\n\nuint8_t ( safe_mul_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2) {\n  return ((((unsigned int) (ui1)) * ((unsigned int) (ui2))));\n}\n\nuint8_t ( safe_mod_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) % (ui2)))));\n}\n\nuint8_t ( safe_div_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) / (ui2)))));\n}\n\nuint8_t ( safe_lshift_func_uint8_t_u_s)(uint8_t left, int right) {\n  return ((((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) || (((left) > (((255) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nuint8_t ( safe_lshift_func_uint8_t_u_u)(uint8_t left, unsigned int right) {\n  return ((((((((unsigned int) (right)) >= (32))) || (((left) > (((255) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nuint8_t ( safe_rshift_func_uint8_t_u_s)(uint8_t left, int right) {\n  return ((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nuint8_t ( safe_rshift_func_uint8_t_u_u)(uint8_t left, unsigned int right) {\n  return ((((((unsigned int) (right)) >= (32))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nuint16_t ( safe_unary_minus_func_uint16_t_u)(uint16_t ui) {\n  return (-(ui));\n}\n\nuint16_t ( safe_add_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2) {\n  return (((ui1) + (ui2)));\n}\n\nuint16_t ( safe_sub_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2) {\n  return (((ui1) - (ui2)));\n}\n\nuint16_t ( safe_mul_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2) {\n  return ((((unsigned int) (ui1)) * ((unsigned int) (ui2))));\n}\n\nuint16_t ( safe_mod_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) % (ui2)))));\n}\n\nuint16_t ( safe_div_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) / (ui2)))));\n}\n\nuint16_t ( safe_lshift_func_uint16_t_u_s)(uint16_t left, int right) {\n  return ((((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) || (((left) > (((65535) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nuint16_t ( safe_lshift_func_uint16_t_u_u)(uint16_t left, unsigned int right) {\n  return ((((((((unsigned int) (right)) >= (32))) || (((left) > (((65535) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nuint16_t ( safe_rshift_func_uint16_t_u_s)(uint16_t left, int right) {\n  return ((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nuint16_t ( safe_rshift_func_uint16_t_u_u)(uint16_t left, unsigned int right) {\n  return ((((((unsigned int) (right)) >= (32))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nuint32_t ( safe_unary_minus_func_uint32_t_u)(uint32_t ui) {\n  return (-(ui));\n}\n\nuint32_t ( safe_add_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2) {\n  return (((ui1) + (ui2)));\n}\n\nuint32_t ( safe_sub_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2) {\n  return (((ui1) - (ui2)));\n}\n\nuint32_t ( safe_mul_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2) {\n  return ((((unsigned int) (ui1)) * ((unsigned int) (ui2))));\n}\n\nuint32_t ( safe_mod_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) % (ui2)))));\n}\n\nuint32_t ( safe_div_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) / (ui2)))));\n}\n\nuint32_t ( safe_lshift_func_uint32_t_u_s)(uint32_t left, int right) {\n  return ((((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) || (((left) > (((4294967295U) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nuint32_t ( safe_lshift_func_uint32_t_u_u)(uint32_t left, unsigned int right) {\n  return ((((((((unsigned int) (right)) >= (32))) || (((left) > (((4294967295U) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nuint32_t ( safe_rshift_func_uint32_t_u_s)(uint32_t left, int right) {\n  return ((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nuint32_t ( safe_rshift_func_uint32_t_u_u)(uint32_t left, unsigned int right) {\n  return ((((((unsigned int) (right)) >= (32))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nuint64_t ( safe_unary_minus_func_uint64_t_u)(uint64_t ui) {\n  return (-(ui));\n}\n\nuint64_t ( safe_add_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2) {\n  return (((ui1) + (ui2)));\n}\n\nuint64_t ( safe_sub_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2) {\n  return (((ui1) - (ui2)));\n}\n\nuint64_t ( safe_mul_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2) {\n  return ((((unsigned long long) (ui1)) * ((unsigned long long) (ui2))));\n}\n\nuint64_t ( safe_mod_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) % (ui2)))));\n}\n\nuint64_t ( safe_div_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2) {\n  return (((((ui2) == (0))) ? (ui1) : (((ui1) / (ui2)))));\n}\n\nuint64_t ( safe_lshift_func_uint64_t_u_s)(uint64_t left, int right) {\n  return ((((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) || (((left) > (((18446744073709551615UL) >> ((int) (right)))))))) ? (left) : (((left) << ((int) (right))))));\n}\n\nuint64_t ( safe_lshift_func_uint64_t_u_u)(uint64_t left, unsigned int right) {\n  return ((((((((unsigned int) (right)) >= (32))) || (((left) > (((18446744073709551615UL) >> ((unsigned int) (right)))))))) ? (left) : (((left) << ((unsigned int) (right))))));\n}\n\nuint64_t ( safe_rshift_func_uint64_t_u_s)(uint64_t left, int right) {\n  return ((((((((int) (right)) < (0))) || ((((int) (right)) >= (32))))) ? (left) : (((left) >> ((int) (right))))));\n}\n\nuint64_t ( safe_rshift_func_uint64_t_u_u)(uint64_t left, unsigned int right) {\n  return ((((((unsigned int) (right)) >= (32))) ? (left) : (((left) >> ((unsigned int) (right))))));\n}\n\nfloat ( safe_add_func_float_f_f)(float sf1, float sf2) {\n  return (((((((((0.5f) * (sf1))) + (((0.5f) * (sf2))))) > (((0.5f) * (3.40282346638528859811704183484516925e+38f))))) ? (sf1) : (((sf1) + (sf2)))));\n}\n\nfloat ( safe_sub_func_float_f_f)(float sf1, float sf2) {\n  return (((((((((0.5f) * (sf1))) - (((0.5f) * (sf2))))) > (((0.5f) * (3.40282346638528859811704183484516925e+38f))))) ? (sf1) : (((sf1) - (sf2)))));\n}\n\nfloat ( safe_mul_func_float_f_f)(float sf1, float sf2) {\n  return (((((((((1.0p-100f) * (sf1))) * (((1.0p-28f) * (sf2))))) > (((1.0p-100f) * (((1.0p-28f) * (3.40282346638528859811704183484516925e+38f))))))) ? (sf1) : (((sf1) * (sf2)))));\n}\n\nfloat ( safe_div_func_float_f_f)(float sf1, float sf2) {\n  return (((((((sf2) < (1.0f))) && (((((sf2) == (0.0f))) || (((((((1.0p-49f) * (sf1))) / (((1.0p100f) * (sf2))))) > (((1.0p-100f) * (((1.0p-49f) * (3.40282346638528859811704183484516925e+38f))))))))))) ? (sf1) : (((sf1) / (sf2)))));\n}\n\ndouble ( safe_add_func_double_f_f)(double sf1, double sf2) {\n  return (((((fabs(((((0.5) * (sf1))) + (((0.5) * (sf2)))))) > (((0.5) * ((double) (1.79769313486231570814527423731704357e+308)))))) ? (sf1) : (((sf1) + (sf2)))));\n}\n\ndouble ( safe_sub_func_double_f_f)(double sf1, double sf2) {\n  return (((((fabs(((((0.5) * (sf1))) - (((0.5) * (sf2)))))) > (((0.5) * ((double) (1.79769313486231570814527423731704357e+308)))))) ? (sf1) : (((sf1) - (sf2)))));\n}\n\ndouble ( safe_mul_func_double_f_f)(double sf1, double sf2) {\n  return (((((fabs(((((1.0p-100) * (sf1))) * (((1.0p-924) * (sf2)))))) > (((1.0p-100) * (((1.0p-924) * ((double) (1.79769313486231570814527423731704357e+308)))))))) ? (sf1) : (((sf1) * (sf2)))));\n}\n\ndouble ( safe_div_func_double_f_f)(double sf1, double sf2) {\n  return (((((((fabs(sf2)) < (1.0))) && (((((sf2) == (0.0))) || (((fabs(((((1.0p-974) * (sf1))) / (((1.0p100) * (sf2)))))) > (((1.0p-100) * (((1.0p-974) * ((double) (1.79769313486231570814527423731704357e+308)))))))))))) ? (sf1) : (((sf1) / (sf2)))));\n}\n\nint32_t ( safe_convert_func_float_to_int32_t)(float sf1) {\n  return (((((((sf1) <= (((-(2147483647)) - (1))))) || (((sf1) >= (2147483647))))) ? (2147483647) : ((int32_t) (sf1))));\n}\n\nuint32_t crc32_tab[256];\n\nuint32_t crc32_context = 0xFFFFFFFFUL;\n\nvoid crc32_gentab(void) {\n  uint32_t crc;\n  const uint32_t poly = 0xEDB88320UL;\n  int i, j;\n  for (((i) = (0)); ((i) < (256)); (i)++) {\n    ((crc) = (i));\n    for (((j) = (8)); ((j) > (0)); (j)--) {\n      if (((crc) & (1))) {\n        ((crc) = (((((crc) >> (1))) ^ (poly))));\n      } else {\n        ((crc) >>= (1));\n      }\n    }\n    (((crc32_tab)[(i)]) = (crc));\n  }\n}\n\nvoid crc32_byte(uint8_t b) {\n  ((crc32_context) = (((((((crc32_context) >> (8))) & (0x00FFFFFF))) ^ ((crc32_tab)[(((((crc32_context) ^ (b))) & (0xFF)))]))));\n}\n\nvoid crc32_8bytes(uint64_t val) {\n  crc32_byte(((((val) >> (0))) & (0xff)));\n  crc32_byte(((((val) >> (8))) & (0xff)));\n  crc32_byte(((((val) >> (16))) & (0xff)));\n  crc32_byte(((((val) >> (24))) & (0xff)));\n  crc32_byte(((((val) >> (32))) & (0xff)));\n  crc32_byte(((((val) >> (40))) & (0xff)));\n  crc32_byte(((((val) >> (48))) & (0xff)));\n  crc32_byte(((((val) >> (56))) & (0xff)));\n}\n\nvoid transparent_crc(uint64_t val, int flag) {\n  crc32_8bytes(val);\n  if (flag) {\n  }\n}\n\nvoid transparent_crc_bytes(char * ptr, int nbytes, int flag) {\n  int i;\n  for (((i) = (0)); ((i) < (nbytes)); (i)++) {\n    crc32_byte((ptr)[(i)]);\n  }\n  if (flag) {\n  }\n}\n\nuint32_t func_1(void);\n\nuint32_t func_1(void) {\n  int32_t l_2 = 0xE91A049FL;\n  return (l_2);\n}\n\nint main(void) {\n  int print_hash_value = 0;\n  platform_main_begin();\n  crc32_gentab();\n  func_1();\n  platform_main_end(((crc32_context) ^ (0xFFFFFFFFUL)),print_hash_value);\n  return ((unsigned char) (crc32_context));\n}\n", line: 1353, column: 22, offset: 33849, expected: {"->", "^", "==", "<<", "<<=", ".", "&&", "++", ">", "^=", "<=", "||", "-", "[", ">=", ">>=", "%=", "-=", "*", "/", "--", "?", "[0-9]", ")", "<", "*=", "&=", "|", "+", "%", ">>", "=", "/=", "|=", "!=", "&", ",", "(", "[eE]", "+="} }))', src/tests.rs:91:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I also get test_reduced.c, but it is the same as test_polished.

minseongg commented 2 years ago

We fixed reduce criteria for fuzzer. (https://github.com/kaist-cp/kecc-public/commit/bce209c613e432430866a7500fda35ac27e1e055)

Could you check if there is still an error?

Lee-Janggun commented 2 years ago

There is no error now, but the reduced result is meaningless

test_polished.c ```C # 1 "" # 1 "" # 1 "" # 31 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 32 "" 2 # 1 "" # 10 "" # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h" 1 3 4 # 11 "" 2 # 1 "/usr/include/math.h" 1 3 4 # 27 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 33 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 461 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 # 452 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 453 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 # 454 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 462 "/usr/include/features.h" 2 3 4 # 485 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 # 486 "/usr/include/features.h" 2 3 4 # 34 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 2 3 4 # 28 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 # 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 # 31 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef __int8_t __int_least8_t; typedef __uint8_t __uint_least8_t; typedef __int16_t __int_least16_t; typedef __uint16_t __uint_least16_t; typedef __int32_t __int_least32_t; typedef __uint32_t __uint_least32_t; typedef __int64_t __int_least64_t; typedef __uint64_t __uint_least64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; typedef long int __intmax_t; typedef unsigned long int __uintmax_t; # 141 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 # 142 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 # 143 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; typedef int __sig_atomic_t; # 38 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 # 41 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 # 120 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 # 121 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 2 3 4 # 44 "/usr/include/math.h" 2 3 4 # 138 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 # 139 "/usr/include/math.h" 2 3 4 # 149 "/usr/include/math.h" 3 4 typedef float float_t; typedef double double_t; # 190 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 # 191 "/usr/include/math.h" 2 3 4 # 233 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 # 234 "/usr/include/math.h" 2 3 4 # 289 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 int __fpclassify (double __value) ; int __signbit (double __value) ; int __isinf (double __value) ; int __finite (double __value) ; int __isnan (double __value) ; int __iseqsig (double __x, double __y) ; int __issignaling (double __value) ; # 290 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double acos (double __x) ; double asin (double __x) ; double atan (double __x) ; double atan2 (double __y, double __x) ; double cos (double __x) ; double sin (double __x) ; double tan (double __x) ; double cosh (double __x) ; double sinh (double __x) ; double tanh (double __x) ; # 85 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double acosh (double __x) ; double asinh (double __x) ; double atanh (double __x) ; double exp (double __x) ; double frexp (double __x, int *__exponent) ; double ldexp (double __x, int __exponent) ; double log (double __x) ; double log10 (double __x) ; double modf (double __x, double *__iptr) ; # 119 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double expm1 (double __x) ; double log1p (double __x) ; double logb (double __x) ; double exp2 (double __x) ; double log2 (double __x) ; double pow (double __x, double __y) ; double sqrt (double __x) ; double hypot (double __x, double __y) ; double cbrt (double __x) ; double ceil (double __x) ; double fabs (double __x) ; double floor (double __x) ; double fmod (double __x, double __y) ; # 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isinf (double __value) ; int finite (double __value) ; double drem (double __x, double __y) ; double significand (double __x) ; double copysign (double __x, double __y) ; double nan (const char *__tagb) ; # 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isnan (double __value) ; double j0 (double) ; double j1 (double) ; double jn (int, double) ; double y0 (double) ; double y1 (double) ; double yn (int, double) ; double erf (double) ; double erfc (double) ; double lgamma (double) ; double tgamma (double) ; double gamma (double) ; double lgamma_r (double, int *__signgamp) ; double rint (double __x) ; double nextafter (double __x, double __y) ; double nexttoward (double __x, double __y) ; # 272 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double remainder (double __x, double __y) ; double scalbn (double __x, int __n) ; int ilogb (double __x) ; # 290 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double scalbln (double __x, long int __n) ; double nearbyint (double __x) ; double round (double __x) ; double trunc (double __x) ; double remquo (double __x, double __y, int *__quo) ; long int lrint (double __x) ; __extension__ long long int llrint (double __x) ; long int lround (double __x) ; __extension__ long long int llround (double __x) ; double fdim (double __x, double __y) ; double fmax (double __x, double __y) ; double fmin (double __x, double __y) ; double fma (double __x, double __y, double __z) ; # 400 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double scalb (double __x, double __n) ; # 291 "/usr/include/math.h" 2 3 4 # 306 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 int __fpclassifyf (float __value) ; int __signbitf (float __value) ; int __isinff (float __value) ; int __finitef (float __value) ; int __isnanf (float __value) ; int __iseqsigf (float __x, float __y) ; int __issignalingf (float __value) ; # 307 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float acosf (float __x) ; float asinf (float __x) ; float atanf (float __x) ; float atan2f (float __y, float __x) ; float cosf (float __x) ; float sinf (float __x) ; float tanf (float __x) ; float coshf (float __x) ; float sinhf (float __x) ; float tanhf (float __x) ; # 85 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float acoshf (float __x) ; float asinhf (float __x) ; float atanhf (float __x) ; float expf (float __x) ; float frexpf (float __x, int *__exponent) ; float ldexpf (float __x, int __exponent) ; float logf (float __x) ; float log10f (float __x) ; float modff (float __x, float *__iptr) ; # 119 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float expm1f (float __x) ; float log1pf (float __x) ; float logbf (float __x) ; float exp2f (float __x) ; float log2f (float __x) ; float powf (float __x, float __y) ; float sqrtf (float __x) ; float hypotf (float __x, float __y) ; float cbrtf (float __x) ; float ceilf (float __x) ; float fabsf (float __x) ; float floorf (float __x) ; float fmodf (float __x, float __y) ; # 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isinff (float __value) ; int finitef (float __value) ; float dremf (float __x, float __y) ; float significandf (float __x) ; float copysignf (float __x, float __y) ; float nanf (const char *__tagb) ; # 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isnanf (float __value) ; float j0f (float) ; float j1f (float) ; float jnf (int, float) ; float y0f (float) ; float y1f (float) ; float ynf (int, float) ; float erff (float) ; float erfcf (float) ; float lgammaf (float) ; float tgammaf (float) ; float gammaf (float) ; float lgammaf_r (float, int *__signgamp) ; float rintf (float __x) ; float nextafterf (float __x, float __y) ; float nexttowardf (float __x, double __y) ; # 272 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float remainderf (float __x, float __y) ; float scalbnf (float __x, int __n) ; int ilogbf (float __x) ; # 290 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float scalblnf (float __x, long int __n) ; float nearbyintf (float __x) ; float roundf (float __x) ; float truncf (float __x) ; float remquof (float __x, float __y, int *__quo) ; long int lrintf (float __x) ; __extension__ long long int llrintf (float __x) ; long int lroundf (float __x) ; __extension__ long long int llroundf (float __x) ; float fdimf (float __x, float __y) ; float fmaxf (float __x, float __y) ; float fminf (float __x, float __y) ; float fmaf (float __x, float __y, float __z) ; # 400 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 float scalbf (float __x, float __n) ; # 308 "/usr/include/math.h" 2 3 4 # 349 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 int __fpclassifyl (double __value) ; int __signbitl (double __value) ; int __isinfl (double __value) ; int __finitel (double __value) ; int __isnanl (double __value) ; int __iseqsigl (double __x, double __y) ; int __issignalingl (double __value) ; # 350 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double acosl (double __x) ; double asinl (double __x) ; double atanl (double __x) ; double atan2l (double __y, double __x) ; double cosl (double __x) ; double sinl (double __x) ; double tanl (double __x) ; double coshl (double __x) ; double sinhl (double __x) ; double tanhl (double __x) ; # 85 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double acoshl (double __x) ; double asinhl (double __x) ; double atanhl (double __x) ; double expl (double __x) ; double frexpl (double __x, int *__exponent) ; double ldexpl (double __x, int __exponent) ; double logl (double __x) ; double log10l (double __x) ; double modfl (double __x, double *__iptr) ; # 119 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double expm1l (double __x) ; double log1pl (double __x) ; double logbl (double __x) ; double exp2l (double __x) ; double log2l (double __x) ; double powl (double __x, double __y) ; double sqrtl (double __x) ; double hypotl (double __x, double __y) ; double cbrtl (double __x) ; double ceill (double __x) ; double fabsl (double __x) ; double floorl (double __x) ; double fmodl (double __x, double __y) ; # 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isinfl (double __value) ; int finitel (double __value) ; double dreml (double __x, double __y) ; double significandl (double __x) ; double copysignl (double __x, double __y) ; double nanl (const char *__tagb) ; # 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 int isnanl (double __value) ; double j0l (double) ; double j1l (double) ; double jnl (int, double) ; double y0l (double) ; double y1l (double) ; double ynl (int, double) ; double erfl (double) ; double erfcl (double) ; double lgammal (double) ; double tgammal (double) ; double gammal (double) ; double lgammal_r (double, int *__signgamp) ; double rintl (double __x) ; double nextafterl (double __x, double __y) ; double nexttowardl (double __x, double __y) ; # 272 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double remainderl (double __x, double __y) ; double scalbnl (double __x, int __n) ; int ilogbl (double __x) ; # 290 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double scalblnl (double __x, long int __n) ; double nearbyintl (double __x) ; double roundl (double __x) ; double truncl (double __x) ; double remquol (double __x, double __y, int *__quo) ; long int lrintl (double __x) ; __extension__ long long int llrintl (double __x) ; long int lroundl (double __x) ; __extension__ long long int llroundl (double __x) ; double fdiml (double __x, double __y) ; double fmaxl (double __x, double __y) ; double fminl (double __x, double __y) ; double fmal (double __x, double __y, double __z) ; # 400 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 double scalbl (double __x, double __n) ; # 351 "/usr/include/math.h" 2 3 4 # 420 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 int __fpclassifyf128 (double __value) ; int __signbitf128 (double __value) ; int __isinff128 (double __value) ; int __finitef128 (double __value) ; int __isnanf128 (double __value) ; int __iseqsigf128 (double __x, double __y) ; int __issignalingf128 (double __value) ; # 421 "/usr/include/math.h" 2 3 4 # 773 "/usr/include/math.h" 3 4 int signgam; # 853 "/usr/include/math.h" 3 4 # 1338 "/usr/include/math.h" 3 4 # 12 "" 2 # 1 "/usr/include/csmith/csmith.h" 1 # 40 "/usr/include/csmith/csmith.h" # 1 "/usr/include/string.h" 1 3 4 # 26 "/usr/include/string.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/string.h" 2 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 # 209 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 typedef long unsigned int size_t; # 34 "/usr/include/string.h" 2 3 4 # 43 "/usr/include/string.h" 3 4 void *memcpy (void * __dest, const void * __src, size_t __n) ; void *memmove (void *__dest, const void *__src, size_t __n) ; void *memccpy (void * __dest, const void * __src, int __c, size_t __n) ; void *memset (void *__s, int __c, size_t __n) ; int memcmp (const void *__s1, const void *__s2, size_t __n) ; # 91 "/usr/include/string.h" 3 4 void *memchr (const void *__s, int __c, size_t __n) ; # 122 "/usr/include/string.h" 3 4 char *strcpy (char * __dest, const char * __src) ; char *strncpy (char * __dest, const char * __src, size_t __n) ; char *strcat (char * __dest, const char * __src) ; char *strncat (char * __dest, const char * __src, size_t __n) ; int strcmp (const char *__s1, const char *__s2) ; int strncmp (const char *__s1, const char *__s2, size_t __n) ; int strcoll (const char *__s1, const char *__s2) ; size_t strxfrm (char * __dest, const char * __src, size_t __n) ; # 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; }; typedef struct __locale_struct *__locale_t; # 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 typedef __locale_t locale_t; # 154 "/usr/include/string.h" 2 3 4 int strcoll_l (const char *__s1, const char *__s2, locale_t __l) ; size_t strxfrm_l (char *__dest, const char *__src, size_t __n, locale_t __l) ; char *strdup (const char *__s) ; char *strndup (const char *__string, size_t __n) ; # 226 "/usr/include/string.h" 3 4 char *strchr (const char *__s, int __c) ; # 253 "/usr/include/string.h" 3 4 char *strrchr (const char *__s, int __c) ; # 273 "/usr/include/string.h" 3 4 size_t strcspn (const char *__s, const char *__reject) ; size_t strspn (const char *__s, const char *__accept) ; # 303 "/usr/include/string.h" 3 4 char *strpbrk (const char *__s, const char *__accept) ; # 330 "/usr/include/string.h" 3 4 char *strstr (const char *__haystack, const char *__needle) ; char *strtok (char * __s, const char * __delim) ; char *__strtok_r (char * __s, const char * __delim, char ** __save_ptr) ; char *strtok_r (char * __s, const char * __delim, char ** __save_ptr) ; # 385 "/usr/include/string.h" 3 4 size_t strlen (const char *__s) ; size_t strnlen (const char *__string, size_t __maxlen) ; char *strerror (int __errnum) ; # 410 "/usr/include/string.h" 3 4 int strerror_r (int __errnum, char *__buf, size_t __buflen) ; # 428 "/usr/include/string.h" 3 4 char *strerror_l (int __errnum, locale_t __l) ; # 1 "/usr/include/strings.h" 1 3 4 # 23 "/usr/include/strings.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 # 24 "/usr/include/strings.h" 2 3 4 int bcmp (const void *__s1, const void *__s2, size_t __n) ; void bcopy (const void *__src, void *__dest, size_t __n) ; void bzero (void *__s, size_t __n) ; # 68 "/usr/include/strings.h" 3 4 char *index (const char *__s, int __c) ; # 96 "/usr/include/strings.h" 3 4 char *rindex (const char *__s, int __c) ; int ffs (int __i) ; int ffsl (long int __l) ; __extension__ int ffsll (long long int __ll) ; int strcasecmp (const char *__s1, const char *__s2) ; int strncasecmp (const char *__s1, const char *__s2, size_t __n) ; int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) ; int strncasecmp_l (const char *__s1, const char *__s2, size_t __n, locale_t __loc) ; # 433 "/usr/include/string.h" 2 3 4 void explicit_bzero (void *__s, size_t __n) ; char *strsep (char ** __stringp, const char * __delim) ; char *strsignal (int __sig) ; char *__stpcpy (char * __dest, const char * __src) ; char *stpcpy (char * __dest, const char * __src) ; char *__stpncpy (char * __dest, const char * __src, size_t __n) ; char *stpncpy (char * __dest, const char * __src, size_t __n) ; # 499 "/usr/include/string.h" 3 4 # 41 "/usr/include/csmith/csmith.h" 2 # 1 "/usr/include/csmith/random_inc.h" 1 # 51 "/usr/include/csmith/random_inc.h" # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 # 34 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 # 194 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 26 "/usr/include/limits.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/limits.h" 2 3 4 # 183 "/usr/include/limits.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 # 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 # 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 # 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 # 184 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 # 188 "/usr/include/limits.h" 2 3 4 # 195 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 2 3 4 # 35 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 # 52 "/usr/include/csmith/random_inc.h" 2 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h" 1 3 4 # 9 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h" 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 26 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 # 29 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 30 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 typedef __int8_t int8_t; typedef __int16_t int16_t; typedef __int32_t int32_t; typedef __int64_t int64_t; # 35 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 3 4 typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; typedef __uint32_t uint32_t; typedef __uint64_t uint64_t; # 38 "/usr/include/stdint.h" 2 3 4 typedef __int_least8_t int_least8_t; typedef __int_least16_t int_least16_t; typedef __int_least32_t int_least32_t; typedef __int_least64_t int_least64_t; typedef __uint_least8_t uint_least8_t; typedef __uint_least16_t uint_least16_t; typedef __uint_least32_t uint_least32_t; typedef __uint_least64_t uint_least64_t; typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 71 "/usr/include/stdint.h" 3 4 typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 87 "/usr/include/stdint.h" 3 4 typedef long int intptr_t; typedef unsigned long int uintptr_t; # 101 "/usr/include/stdint.h" 3 4 typedef __intmax_t intmax_t; typedef __uintmax_t uintmax_t; # 10 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h" 2 3 4 # 56 "/usr/include/csmith/random_inc.h" 2 # 1 "/usr/include/assert.h" 1 3 4 # 66 "/usr/include/assert.h" 3 4 void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) ; void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) ; void __assert (const char *__assertion, const char *__file, int __line) ; # 60 "/usr/include/csmith/random_inc.h" 2 # 89 "/usr/include/csmith/random_inc.h" # 1 "/usr/include/csmith/platform_generic.h" 1 # 39 "/usr/include/csmith/platform_generic.h" # 1 "/usr/include/stdio.h" 1 3 4 # 27 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 28 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 # 34 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h" 1 3 4 # 40 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h" 3 4 # 37 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 # 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 typedef struct { int __count; struct { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 6 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 2 3 4 typedef struct _G_fpos_t { __off_t __pos; __mbstate_t __state; } __fpos_t; # 40 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 3 4 typedef struct _G_fpos64_t { __off64_t __pos; __mbstate_t __state; } __fpos64_t; # 41 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 struct _IO_FILE; typedef struct _IO_FILE __FILE; # 42 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" 1 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 43 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 1 3 4 # 35 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 3 4 struct _IO_FILE; struct _IO_marker; struct _IO_codecvt; struct _IO_wide_data; typedef void _IO_lock_t; struct _IO_FILE { int _flags; char *_IO_read_ptr; char *_IO_read_end; char *_IO_read_base; char *_IO_write_base; char *_IO_write_ptr; char *_IO_write_end; char *_IO_buf_base; char *_IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; __off64_t _offset; struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data; struct _IO_FILE *_freeres_list; void *_freeres_buf; size_t __pad5; int _mode; char _unused2[10]; }; # 44 "/usr/include/stdio.h" 2 3 4 # 52 "/usr/include/stdio.h" 3 4 # 63 "/usr/include/stdio.h" 3 4 typedef __off_t off_t; # 77 "/usr/include/stdio.h" 3 4 typedef __ssize_t ssize_t; typedef __fpos_t fpos_t; # 133 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 # 134 "/usr/include/stdio.h" 2 3 4 FILE *stdin; FILE *stdout; FILE *stderr; int remove (const char *__filename) ; int rename (const char *__old, const char *__new) ; int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) ; # 173 "/usr/include/stdio.h" 3 4 FILE *tmpfile (void) ; # 187 "/usr/include/stdio.h" 3 4 char *tmpnam (char *__s) ; char *tmpnam_r (char *__s) ; # 204 "/usr/include/stdio.h" 3 4 char *tempnam (const char *__dir, const char *__pfx) ; int fclose (FILE *__stream); int fflush (FILE *__stream); # 227 "/usr/include/stdio.h" 3 4 int fflush_unlocked (FILE *__stream); # 246 "/usr/include/stdio.h" 3 4 FILE *fopen (const char * __filename, const char * __modes) ; FILE *freopen (const char * __filename, const char * __modes, FILE * __stream) ; # 279 "/usr/include/stdio.h" 3 4 FILE *fdopen (int __fd, const char *__modes) ; # 292 "/usr/include/stdio.h" 3 4 FILE *fmemopen (void *__s, size_t __len, const char *__modes) ; FILE *open_memstream (char **__bufloc, size_t *__sizeloc) ; void setbuf (FILE * __stream, char * __buf) ; int setvbuf (FILE * __stream, char * __buf, int __modes, size_t __n) ; void setbuffer (FILE * __stream, char * __buf, size_t __size) ; void setlinebuf (FILE *__stream) ; # 379 "/usr/include/stdio.h" 3 4 # 432 "/usr/include/stdio.h" 3 4 # 485 "/usr/include/stdio.h" 3 4 int fgetc (FILE *__stream); int getc (FILE *__stream); int getchar (void); int getc_unlocked (FILE *__stream); int getchar_unlocked (void); # 510 "/usr/include/stdio.h" 3 4 int fgetc_unlocked (FILE *__stream); # 521 "/usr/include/stdio.h" 3 4 int fputc (int __c, FILE *__stream); int putc (int __c, FILE *__stream); int putchar (int __c); # 537 "/usr/include/stdio.h" 3 4 int fputc_unlocked (int __c, FILE *__stream); int putc_unlocked (int __c, FILE *__stream); int putchar_unlocked (int __c); int getw (FILE *__stream); int putw (int __w, FILE *__stream); char *fgets (char * __s, int __n, FILE * __stream) ; # 603 "/usr/include/stdio.h" 3 4 __ssize_t __getdelim (char ** __lineptr, size_t * __n, int __delimiter, FILE * __stream) ; __ssize_t getdelim (char ** __lineptr, size_t * __n, int __delimiter, FILE * __stream) ; __ssize_t getline (char ** __lineptr, size_t * __n, FILE * __stream) ; int fputs (const char * __s, FILE * __stream); int puts (const char *__s); int ungetc (int __c, FILE *__stream); size_t fread (void * __ptr, size_t __size, size_t __n, FILE * __stream) ; size_t fwrite (const void * __ptr, size_t __size, size_t __n, FILE * __s); # 673 "/usr/include/stdio.h" 3 4 size_t fread_unlocked (void * __ptr, size_t __size, size_t __n, FILE * __stream) ; size_t fwrite_unlocked (const void * __ptr, size_t __size, size_t __n, FILE * __stream); int fseek (FILE *__stream, long int __off, int __whence); long int ftell (FILE *__stream) ; void rewind (FILE *__stream); # 707 "/usr/include/stdio.h" 3 4 int fseeko (FILE *__stream, __off_t __off, int __whence); __off_t ftello (FILE *__stream) ; # 731 "/usr/include/stdio.h" 3 4 int fgetpos (FILE * __stream, fpos_t * __pos); int fsetpos (FILE *__stream, const fpos_t *__pos); # 757 "/usr/include/stdio.h" 3 4 void clearerr (FILE *__stream) ; int feof (FILE *__stream) ; int ferror (FILE *__stream) ; void clearerr_unlocked (FILE *__stream) ; int feof_unlocked (FILE *__stream) ; int ferror_unlocked (FILE *__stream) ; void perror (const char *__s); # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 int sys_nerr; # 782 "/usr/include/stdio.h" 2 3 4 int fileno (FILE *__stream) ; int fileno_unlocked (FILE *__stream) ; # 800 "/usr/include/stdio.h" 3 4 FILE *popen (const char *__command, const char *__modes) ; int pclose (FILE *__stream); char *ctermid (char *__s) ; # 840 "/usr/include/stdio.h" 3 4 void flockfile (FILE *__stream) ; int ftrylockfile (FILE *__stream) ; void funlockfile (FILE *__stream) ; # 858 "/usr/include/stdio.h" 3 4 int __uflow (FILE *); int __overflow (FILE *, int); # 873 "/usr/include/stdio.h" 3 4 # 40 "/usr/include/csmith/platform_generic.h" 2 # 42 "/usr/include/csmith/platform_generic.h" void platform_main_begin(void) { } void platform_main_end(uint32_t crc, int flag) { # 120 "/usr/include/csmith/platform_generic.h" } # 90 "/usr/include/csmith/random_inc.h" 2 # 100 "/usr/include/csmith/random_inc.h" # 1 "/usr/include/csmith/safe_math.h" 1 # 13 "/usr/include/csmith/safe_math.h" int8_t (safe_unary_minus_func_int8_t_s)(int8_t si ) { return -si; } int8_t (safe_add_func_int8_t_s_s)(int8_t si1, int8_t si2 ) { return (si1 + si2); } int8_t (safe_sub_func_int8_t_s_s)(int8_t si1, int8_t si2 ) { return (si1 - si2); } int8_t (safe_mul_func_int8_t_s_s)(int8_t si1, int8_t si2 ) { return si1 * si2; } int8_t (safe_mod_func_int8_t_s_s)(int8_t si1, int8_t si2 ) { return ((si2 == 0) || ((si1 == # 75 "/usr/include/csmith/safe_math.h" 3 4 (-128) # 75 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 % si2); } int8_t (safe_div_func_int8_t_s_s)(int8_t si1, int8_t si2 ) { return ((si2 == 0) || ((si1 == # 87 "/usr/include/csmith/safe_math.h" 3 4 (-128) # 87 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 / si2); } int8_t (safe_lshift_func_int8_t_s_s)(int8_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ( # 99 "/usr/include/csmith/safe_math.h" 3 4 (127) # 99 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } int8_t (safe_lshift_func_int8_t_s_u)(int8_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32) || (left > ( # 111 "/usr/include/csmith/safe_math.h" 3 4 (127) # 111 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } int8_t (safe_rshift_func_int8_t_s_s)(int8_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))? ((left)) : (left >> ((int)right)); } int8_t (safe_rshift_func_int8_t_s_u)(int8_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32)) ? ((left)) : (left >> ((unsigned int)right)); } int16_t (safe_unary_minus_func_int16_t_s)(int16_t si ) { return -si; } int16_t (safe_add_func_int16_t_s_s)(int16_t si1, int16_t si2 ) { return (si1 + si2); } int16_t (safe_sub_func_int16_t_s_s)(int16_t si1, int16_t si2 ) { return (si1 - si2); } int16_t (safe_mul_func_int16_t_s_s)(int16_t si1, int16_t si2 ) { return si1 * si2; } int16_t (safe_mod_func_int16_t_s_s)(int16_t si1, int16_t si2 ) { return ((si2 == 0) || ((si1 == # 205 "/usr/include/csmith/safe_math.h" 3 4 (-32767-1) # 205 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 % si2); } int16_t (safe_div_func_int16_t_s_s)(int16_t si1, int16_t si2 ) { return ((si2 == 0) || ((si1 == # 217 "/usr/include/csmith/safe_math.h" 3 4 (-32767-1) # 217 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 / si2); } int16_t (safe_lshift_func_int16_t_s_s)(int16_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ( # 229 "/usr/include/csmith/safe_math.h" 3 4 (32767) # 229 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } int16_t (safe_lshift_func_int16_t_s_u)(int16_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32) || (left > ( # 241 "/usr/include/csmith/safe_math.h" 3 4 (32767) # 241 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } int16_t (safe_rshift_func_int16_t_s_s)(int16_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))? ((left)) : (left >> ((int)right)); } int16_t (safe_rshift_func_int16_t_s_u)(int16_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32)) ? ((left)) : (left >> ((unsigned int)right)); } int32_t (safe_unary_minus_func_int32_t_s)(int32_t si ) { return (si== # 280 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 280 "/usr/include/csmith/safe_math.h" ) ? ((si)) : -si; } int32_t (safe_add_func_int32_t_s_s)(int32_t si1, int32_t si2 ) { return (((si1>0) && (si2>0) && (si1 > ( # 294 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 294 "/usr/include/csmith/safe_math.h" -si2))) || ((si1<0) && (si2<0) && (si1 < ( # 294 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 294 "/usr/include/csmith/safe_math.h" -si2)))) ? ((si1)) : (si1 + si2); } int32_t (safe_sub_func_int32_t_s_s)(int32_t si1, int32_t si2 ) { return (((si1^si2) & (((si1 ^ ((si1^si2) & (~ # 308 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 308 "/usr/include/csmith/safe_math.h" )))-si2)^si2)) < 0) ? ((si1)) : (si1 - si2); } int32_t (safe_mul_func_int32_t_s_s)(int32_t si1, int32_t si2 ) { return (((si1 > 0) && (si2 > 0) && (si1 > ( # 322 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 322 "/usr/include/csmith/safe_math.h" / si2))) || ((si1 > 0) && (si2 <= 0) && (si2 < ( # 322 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 322 "/usr/include/csmith/safe_math.h" / si1))) || ((si1 <= 0) && (si2 > 0) && (si1 < ( # 322 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 322 "/usr/include/csmith/safe_math.h" / si2))) || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ( # 322 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 322 "/usr/include/csmith/safe_math.h" / si1)))) ? ((si1)) : si1 * si2; } int32_t (safe_mod_func_int32_t_s_s)(int32_t si1, int32_t si2 ) { return ((si2 == 0) || ((si1 == # 335 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 335 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 % si2); } int32_t (safe_div_func_int32_t_s_s)(int32_t si1, int32_t si2 ) { return ((si2 == 0) || ((si1 == # 347 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 347 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 / si2); } int32_t (safe_lshift_func_int32_t_s_s)(int32_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ( # 359 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 359 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } int32_t (safe_lshift_func_int32_t_s_u)(int32_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32) || (left > ( # 371 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 371 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } int32_t (safe_rshift_func_int32_t_s_s)(int32_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))? ((left)) : (left >> ((int)right)); } int32_t (safe_rshift_func_int32_t_s_u)(int32_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32)) ? ((left)) : (left >> ((unsigned int)right)); } int64_t (safe_unary_minus_func_int64_t_s)(int64_t si ) { return (si== # 411 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 411 "/usr/include/csmith/safe_math.h" ) ? ((si)) : -si; } int64_t (safe_add_func_int64_t_s_s)(int64_t si1, int64_t si2 ) { return (((si1>0) && (si2>0) && (si1 > ( # 425 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 425 "/usr/include/csmith/safe_math.h" -si2))) || ((si1<0) && (si2<0) && (si1 < ( # 425 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 425 "/usr/include/csmith/safe_math.h" -si2)))) ? ((si1)) : (si1 + si2); } int64_t (safe_sub_func_int64_t_s_s)(int64_t si1, int64_t si2 ) { return (((si1^si2) & (((si1 ^ ((si1^si2) & (~ # 439 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 439 "/usr/include/csmith/safe_math.h" )))-si2)^si2)) < 0) ? ((si1)) : (si1 - si2); } int64_t (safe_mul_func_int64_t_s_s)(int64_t si1, int64_t si2 ) { return (((si1 > 0) && (si2 > 0) && (si1 > ( # 453 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 453 "/usr/include/csmith/safe_math.h" / si2))) || ((si1 > 0) && (si2 <= 0) && (si2 < ( # 453 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 453 "/usr/include/csmith/safe_math.h" / si1))) || ((si1 <= 0) && (si2 > 0) && (si1 < ( # 453 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 453 "/usr/include/csmith/safe_math.h" / si2))) || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ( # 453 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 453 "/usr/include/csmith/safe_math.h" / si1)))) ? ((si1)) : si1 * si2; } int64_t (safe_mod_func_int64_t_s_s)(int64_t si1, int64_t si2 ) { return ((si2 == 0) || ((si1 == # 466 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 466 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 % si2); } int64_t (safe_div_func_int64_t_s_s)(int64_t si1, int64_t si2 ) { return ((si2 == 0) || ((si1 == # 478 "/usr/include/csmith/safe_math.h" 3 4 (-9223372036854775807L -1) # 478 "/usr/include/csmith/safe_math.h" ) && (si2 == (-1)))) ? ((si1)) : (si1 / si2); } int64_t (safe_lshift_func_int64_t_s_s)(int64_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ( # 490 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 490 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } int64_t (safe_lshift_func_int64_t_s_u)(int64_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32) || (left > ( # 502 "/usr/include/csmith/safe_math.h" 3 4 (9223372036854775807L) # 502 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } int64_t (safe_rshift_func_int64_t_s_s)(int64_t left, int right ) { return ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))? ((left)) : (left >> ((int)right)); } int64_t (safe_rshift_func_int64_t_s_u)(int64_t left, unsigned int right ) { return ((left < 0) || (((unsigned int)right) >= 32)) ? ((left)) : (left >> ((unsigned int)right)); } uint8_t (safe_unary_minus_func_uint8_t_u)(uint8_t ui ) { return -ui; } uint8_t (safe_add_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 ) { return ui1 + ui2; } uint8_t (safe_sub_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 ) { return ui1 - ui2; } uint8_t (safe_mul_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 ) { return ((unsigned int)ui1) * ((unsigned int)ui2); } uint8_t (safe_mod_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 % ui2); } uint8_t (safe_div_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 / ui2); } uint8_t (safe_lshift_func_uint8_t_u_s)(uint8_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32) || (left > ( # 596 "/usr/include/csmith/safe_math.h" 3 4 (255) # 596 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } uint8_t (safe_lshift_func_uint8_t_u_u)(uint8_t left, unsigned int right ) { return ((((unsigned int)right) >= 32) || (left > ( # 608 "/usr/include/csmith/safe_math.h" 3 4 (255) # 608 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } uint8_t (safe_rshift_func_uint8_t_u_s)(uint8_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32)) ? ((left)) : (left >> ((int)right)); } uint8_t (safe_rshift_func_uint8_t_u_u)(uint8_t left, unsigned int right ) { return (((unsigned int)right) >= 32) ? ((left)) : (left >> ((unsigned int)right)); } uint16_t (safe_unary_minus_func_uint16_t_u)(uint16_t ui ) { return -ui; } uint16_t (safe_add_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 ) { return ui1 + ui2; } uint16_t (safe_sub_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 ) { return ui1 - ui2; } uint16_t (safe_mul_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 ) { return ((unsigned int)ui1) * ((unsigned int)ui2); } uint16_t (safe_mod_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 % ui2); } uint16_t (safe_div_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 / ui2); } uint16_t (safe_lshift_func_uint16_t_u_s)(uint16_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32) || (left > ( # 698 "/usr/include/csmith/safe_math.h" 3 4 (65535) # 698 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } uint16_t (safe_lshift_func_uint16_t_u_u)(uint16_t left, unsigned int right ) { return ((((unsigned int)right) >= 32) || (left > ( # 710 "/usr/include/csmith/safe_math.h" 3 4 (65535) # 710 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } uint16_t (safe_rshift_func_uint16_t_u_s)(uint16_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32)) ? ((left)) : (left >> ((int)right)); } uint16_t (safe_rshift_func_uint16_t_u_u)(uint16_t left, unsigned int right ) { return (((unsigned int)right) >= 32) ? ((left)) : (left >> ((unsigned int)right)); } uint32_t (safe_unary_minus_func_uint32_t_u)(uint32_t ui ) { return -ui; } uint32_t (safe_add_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 ) { return ui1 + ui2; } uint32_t (safe_sub_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 ) { return ui1 - ui2; } uint32_t (safe_mul_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 ) { return ((unsigned int)ui1) * ((unsigned int)ui2); } uint32_t (safe_mod_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 % ui2); } uint32_t (safe_div_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 / ui2); } uint32_t (safe_lshift_func_uint32_t_u_s)(uint32_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32) || (left > ( # 800 "/usr/include/csmith/safe_math.h" 3 4 (4294967295U) # 800 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } uint32_t (safe_lshift_func_uint32_t_u_u)(uint32_t left, unsigned int right ) { return ((((unsigned int)right) >= 32) || (left > ( # 812 "/usr/include/csmith/safe_math.h" 3 4 (4294967295U) # 812 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } uint32_t (safe_rshift_func_uint32_t_u_s)(uint32_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32)) ? ((left)) : (left >> ((int)right)); } uint32_t (safe_rshift_func_uint32_t_u_u)(uint32_t left, unsigned int right ) { return (((unsigned int)right) >= 32) ? ((left)) : (left >> ((unsigned int)right)); } uint64_t (safe_unary_minus_func_uint64_t_u)(uint64_t ui ) { return -ui; } uint64_t (safe_add_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 ) { return ui1 + ui2; } uint64_t (safe_sub_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 ) { return ui1 - ui2; } uint64_t (safe_mul_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 ) { return ((unsigned long long)ui1) * ((unsigned long long)ui2); } uint64_t (safe_mod_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 % ui2); } uint64_t (safe_div_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 ) { return (ui2 == 0) ? ((ui1)) : (ui1 / ui2); } uint64_t (safe_lshift_func_uint64_t_u_s)(uint64_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32) || (left > ( # 903 "/usr/include/csmith/safe_math.h" 3 4 (18446744073709551615UL) # 903 "/usr/include/csmith/safe_math.h" >> ((int)right)))) ? ((left)) : (left << ((int)right)); } uint64_t (safe_lshift_func_uint64_t_u_u)(uint64_t left, unsigned int right ) { return ((((unsigned int)right) >= 32) || (left > ( # 915 "/usr/include/csmith/safe_math.h" 3 4 (18446744073709551615UL) # 915 "/usr/include/csmith/safe_math.h" >> ((unsigned int)right)))) ? ((left)) : (left << ((unsigned int)right)); } uint64_t (safe_rshift_func_uint64_t_u_s)(uint64_t left, int right ) { return ((((int)right) < 0) || (((int)right) >= 32)) ? ((left)) : (left >> ((int)right)); } uint64_t (safe_rshift_func_uint64_t_u_u)(uint64_t left, unsigned int right ) { return (((unsigned int)right) >= 32) ? ((left)) : (left >> ((unsigned int)right)); } # 953 "/usr/include/csmith/safe_math.h" float (safe_add_func_float_f_f)(float sf1, float sf2 ) { return (((0.5f * sf1) + (0.5f * sf2)) > (0.5f * 3.40282346638528859811704183484516925e+38F)) ? (sf1) : (sf1 + sf2); } float (safe_sub_func_float_f_f)(float sf1, float sf2 ) { return (((0.5f * sf1) - (0.5f * sf2)) > (0.5f * 3.40282346638528859811704183484516925e+38F)) ? (sf1) : (sf1 - sf2); } float (safe_mul_func_float_f_f)(float sf1, float sf2 ) { return (((0x1.0p-100f * sf1) * (0x1.0p-28f * sf2)) > (0x1.0p-100f * (0x1.0p-28f * 3.40282346638528859811704183484516925e+38F))) ? (sf1) : (sf1 * sf2); } float (safe_div_func_float_f_f)(float sf1, float sf2 ) { return (((sf2) < 1.0f) && (((sf2 == 0.0f) || (((0x1.0p-49f * sf1) / (0x1.0p100f * sf2))) > (0x1.0p-100f * (0x1.0p-49f * 3.40282346638528859811704183484516925e+38F))))) ? (sf1) : (sf1 / sf2); } double (safe_add_func_double_f_f)(double sf1, double sf2 ) { return (fabs((0.5 * sf1) + (0.5 * sf2)) > (0.5 * ((double)1.79769313486231570814527423731704357e+308))) ? (sf1) : (sf1 + sf2); } double (safe_sub_func_double_f_f)(double sf1, double sf2 ) { return (fabs((0.5 * sf1) - (0.5 * sf2)) > (0.5 * ((double)1.79769313486231570814527423731704357e+308))) ? (sf1) : (sf1 - sf2); } double (safe_mul_func_double_f_f)(double sf1, double sf2 ) { return (fabs((0x1.0p-100 * sf1) * (0x1.0p-924 * sf2)) > (0x1.0p-100 * (0x1.0p-924 * ((double)1.79769313486231570814527423731704357e+308)))) ? (sf1) : (sf1 * sf2); } double (safe_div_func_double_f_f)(double sf1, double sf2 ) { return ((fabs(sf2) < 1.0) && (((sf2 == 0.0) || (fabs((0x1.0p-974 * sf1) / (0x1.0p100 * sf2))) > (0x1.0p-100 * (0x1.0p-974 * ((double)1.79769313486231570814527423731704357e+308)))))) ? (sf1) : (sf1 / sf2); } # 1193 "/usr/include/csmith/safe_math.h" int32_t (safe_convert_func_float_to_int32_t)(float sf1 ) { return ((sf1 <= # 1199 "/usr/include/csmith/safe_math.h" 3 4 (-2147483647-1) # 1199 "/usr/include/csmith/safe_math.h" ) || (sf1 >= # 1199 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 1199 "/usr/include/csmith/safe_math.h" )) ? ( # 1200 "/usr/include/csmith/safe_math.h" 3 4 (2147483647) # 1200 "/usr/include/csmith/safe_math.h" ) : ((int32_t)(sf1)); } # 101 "/usr/include/csmith/random_inc.h" 2 # 46 "/usr/include/csmith/csmith.h" 2 uint32_t crc32_tab[256]; uint32_t crc32_context = 0xFFFFFFFFUL; void crc32_gentab (void) { uint32_t crc; const uint32_t poly = 0xEDB88320UL; int i, j; for (i = 0; i < 256; i++) { crc = i; for (j = 8; j > 0; j--) { if (crc & 1) { crc = (crc >> 1) ^ poly; } else { crc >>= 1; } } crc32_tab[i] = crc; } } void crc32_byte (uint8_t b) { crc32_context = ((crc32_context >> 8) & 0x00FFFFFF) ^ crc32_tab[(crc32_context ^ b) & 0xFF]; } # 96 "/usr/include/csmith/csmith.h" void crc32_8bytes (uint64_t val) { crc32_byte ((val>>0) & 0xff); crc32_byte ((val>>8) & 0xff); crc32_byte ((val>>16) & 0xff); crc32_byte ((val>>24) & 0xff); crc32_byte ((val>>32) & 0xff); crc32_byte ((val>>40) & 0xff); crc32_byte ((val>>48) & 0xff); crc32_byte ((val>>56) & 0xff); } void transparent_crc (uint64_t val, int flag) { crc32_8bytes(val); if (flag) { } } void transparent_crc_bytes (char *ptr, int nbytes, int flag) { int i; for (i=0; i" 2 int64_t g_9 = 0L; int16_t g_52 = 0x6765L; int8_t g_67 = 0L; int8_t g_82 = 0xD4L; uint32_t g_83 = 0xAC374484L; int64_t g_96 = (-1L); uint8_t g_99 = 0x4DL; int32_t g_136 = 7L; int64_t g_149 = 0L; uint32_t g_150 = 4294967295UL; float g_163 = 0x1.Fp+1; uint32_t g_164 = 3UL; int32_t g_171 = 0x1B0195B8L; int32_t g_356 = (-6L); float g_405 = 0x0.1B5639p+54; int64_t g_413 = 0L; uint8_t g_414 = 251UL; int64_t g_429 = 0x21D217DB600C3A37LL; uint32_t g_430 = 2UL; uint16_t g_437 = 0UL; int32_t g_467 = (-1L); int32_t g_468 = 0xE60B7A04L; uint32_t g_469 = 18446744073709551609UL; uint32_t g_486 = 0UL; uint32_t g_634 = 0UL; int8_t g_644 = (-7L); float g_717 = 0x1.Dp-1; uint32_t g_722 = 0x5EE16B43L; int64_t g_917 = (-2L); uint64_t g_921 = 0UL; uint8_t g_978 = 1UL; int64_t g_1090 = 0x959E8BA389A02875LL; const float g_1142 = 0xD.A2C87Bp-8; uint8_t g_1143 = 1UL; int64_t g_1249 = 3L; uint64_t g_1265 = 18446744073709551613UL; int32_t g_1294 = 0x66B615EDL; uint8_t g_1308 = 3UL; uint16_t g_1383 = 65535UL; int64_t g_1403 = 1L; int64_t g_1407 = 1L; int32_t g_1408 = 0xE1E88A2CL; uint16_t g_1409 = 65535UL; int64_t g_1511 = 5L; int32_t g_1512 = 0x70A12069L; uint64_t g_1514 = 0x9E2855FD47348FEALL; int8_t g_1582 = 0x43L; int32_t g_1584 = (-1L); uint32_t g_1585 = 1UL; uint16_t g_1602 = 0xD6EAL; float g_1606 = (-0x10.Ep-1); int8_t g_1639 = 0L; float g_1649 = (-0x4.3p-1); int64_t g_1652 = 1L; int16_t g_1703 = 0xF320L; uint64_t g_1709 = 0UL; int64_t func_1(void); int32_t func_2(int8_t p_3); int8_t func_4(const int16_t p_5); const int16_t func_6(int64_t p_7, uint32_t p_8); uint64_t func_11(uint32_t p_12, uint32_t p_13); uint16_t func_14(int64_t p_15); int64_t func_20(uint64_t p_21, int32_t p_22, float p_23); int32_t func_28(uint32_t p_29, float p_30, int64_t p_31, int64_t p_32); float func_38(uint32_t p_39, int8_t p_40, int16_t p_41, uint64_t p_42, uint16_t p_43); int16_t func_46(uint8_t p_47, int32_t p_48, int32_t p_49, int16_t p_50, uint32_t p_51); # 96 "" int64_t func_1(void) { int32_t l_10 = 0xF759609CL; uint32_t l_1736 = 0x45695EBCL; l_10 = func_2(func_4(func_6(g_9, l_10))); ++l_1736; l_10 = 0x1CD797B7L; return g_978; } int32_t func_2(int8_t p_3) { uint32_t l_1144 = 0UL; int32_t l_1149 = 0xFE4556CAL; int64_t l_1194 = 0x09A75EAF455CEB5BLL; int32_t l_1252 = (-1L); int32_t l_1255 = 0x6C494270L; int32_t l_1259 = 0xA1D48AAFL; int32_t l_1513 = 0L; int16_t l_1580 = 1L; int32_t l_1634 = 0x2F9B5834L; int32_t l_1641 = (-5L); int32_t l_1642 = (-1L); int32_t l_1647 = (-1L); int64_t l_1668 = 0x60B9BA2A68C94D7ELL; uint8_t l_1687 = 255UL; uint64_t l_1694 = 0x97C0FE74EA54A829LL; uint32_t l_1700 = 0x219F7F5FL; int8_t l_1735 = 0L; ++l_1144; if ((safe_rshift_func_uint8_t_u_s(((l_1149 &= g_413) | ((g_467 ^ 0x3E05L) , (l_1144 >= 0UL))), 0))) { uint64_t l_1162 = 18446744073709551615UL; int32_t l_1163 = 0xB13FCB38L; int32_t l_1164 = (-4L); int32_t l_1165 = (-10L); int32_t l_1166 = 5L; uint32_t l_1187 = 8UL; int64_t l_1245 = 1L; int32_t l_1306 = (-6L); float l_1307 = 0x4.8FAAADp-57; uint32_t l_1330 = 0UL; uint32_t l_1350 = 18446744073709551615UL; int32_t l_1402 = (-3L); uint64_t l_1422 = 0xFD6465B81D05658ELL; uint8_t l_1441 = 8UL; float l_1532 = 0x1.50A590p+22; int32_t l_1547 = 0xFA75901BL; uint32_t l_1548 = 0xB4EFE079L; int32_t l_1581 = 0x6759726EL; int32_t l_1643 = 0xF5D1A2AAL; int32_t l_1645 = 0x47FF9500L; int32_t l_1650 = 1L; int32_t l_1651 = (-8L); uint32_t l_1667 = 0x901E953FL; if ((1L & (l_1162 = (safe_rshift_func_int8_t_s_s((safe_mod_func_int16_t_s_s((((-9L) > p_3) , (safe_lshift_func_int16_t_s_u(((safe_div_func_uint32_t_u_u(0xE41072CFL, ((safe_rshift_func_int8_t_s_u((0x20093B6DEA1BCC46LL != ((p_3 || (g_468 = (g_414 <= (safe_lshift_func_int16_t_s_u(l_1144, g_722))))) != p_3)), l_1144)) | g_469))) && l_1149), 1))), g_52)), 5))))) { uint32_t l_1167 = 1UL; uint64_t l_1186 = 0xD8A2DF3D10E326CFLL; uint32_t l_1188 = 0x992F6523L; int16_t l_1227 = 5L; int32_t l_1228 = 0x2764229BL; int32_t l_1230 = 0xA45CE49EL; ++l_1167; g_356 = l_1149; g_163 = ((-0x2.8p+1) <= (safe_mul_func_float_f_f(((safe_div_func_float_f_f(g_467, (((-0x3.9p+1) == (((safe_rshift_func_uint8_t_u_u(0x40L, 3)) && (((-6L) && g_67) == p_3)) , 0xD.E136C1p-13)) <= ((safe_sub_func_float_f_f(((l_1166 = (l_1164 = (safe_add_func_float_f_f((safe_sub_func_float_f_f(((safe_sub_func_float_f_f((safe_mul_func_float_f_f((l_1186 = p_3), p_3)), g_978)) != 0x5.B5B931p-59), l_1167)), l_1187)))) == l_1167), l_1188)) == p_3)))) == l_1144), g_917))); for (l_1164 = (-7); (l_1164 >= 18); ++l_1164) { uint16_t l_1229 = 0UL; int32_t l_1244 = 0xF60CD13DL; int32_t l_1250 = 0L; int32_t l_1253 = 0x32680006L; int32_t l_1254 = (-10L); int32_t l_1257 = 0x8D60E892L; int32_t l_1263 = 1L; p_3 = p_3; if (((!(safe_sub_func_int16_t_s_s((g_99 == (l_1194 , ((safe_lshift_func_int8_t_s_s((safe_add_func_int32_t_s_s(((((safe_mul_func_uint16_t_u_u((safe_rshift_func_uint8_t_u_u((safe_div_func_int64_t_s_s(((l_1230 = (l_1144 > (safe_lshift_func_uint8_t_u_u((safe_add_func_uint8_t_u_u((safe_rshift_func_uint16_t_u_s((safe_add_func_int16_t_s_s(p_3, (safe_mul_func_uint8_t_u_u((g_414 <= (safe_rshift_func_int8_t_s_u((3L > p_3), 5))), ((l_1229 = ((safe_rshift_func_uint8_t_u_s((safe_add_func_int16_t_s_s(((g_150 = (safe_mod_func_uint8_t_u_u(p_3, (l_1228 = ((safe_rshift_func_uint16_t_u_u((safe_mul_func_int8_t_s_s((l_1227 = ((g_437 | g_1090) ^ g_82)), p_3)), l_1167)) | 1UL))))) <= p_3), g_164)), 0)) > g_1143)) <= g_486))))), 13)), 247UL)), g_921)))) > l_1165), p_3)), 2)), p_3)) <= g_917) ^ p_3) > (-8L)), g_82)), 6)) ^ g_468))), (-5L)))) , g_429)) { l_1166 |= (safe_mul_func_int16_t_s_s((safe_rshift_func_uint8_t_u_u((l_1167 && (safe_rshift_func_uint16_t_u_u((0UL ^ ((g_52 < (g_136 = (-3L))) <= 0xD60E21BDA6000B8ALL)), l_1164))), 0)), (((+((((safe_mul_func_float_f_f(((safe_mul_func_float_f_f((l_1230 = g_405), p_3)) < ((((l_1244 = ((g_978 != 0L) < p_3)) , g_163) >= g_437) != l_1149)), g_921)) , g_722) <= 0xF.30DD6Ap+5) , g_1143)) < l_1245) && 0x2842176D032DFF10LL))); } else { int8_t l_1251 = 1L; int32_t l_1261 = 0xC245A998L; int32_t l_1262 = (-6L); int32_t l_1264 = 0x6FEFEE39L; for (l_1144 = (-26); (l_1144 < 5); ++l_1144) { int32_t l_1248 = 0x7000320EL; int32_t l_1256 = 0x9097CB97L; int32_t l_1258 = 1L; int32_t l_1260 = 1L; ++g_1265; } } } } else { uint32_t l_1280 = 0xC9053416L; int32_t l_1329 = (-1L); g_468 = (((safe_mul_func_int16_t_s_s((safe_mod_func_uint64_t_u_u((safe_sub_func_uint64_t_u_u((l_1144 , l_1149), (safe_rshift_func_int8_t_s_s((safe_lshift_func_uint16_t_u_u((safe_add_func_int16_t_s_s(l_1280, g_136)), (((safe_lshift_func_int16_t_s_u(((((safe_sub_func_float_f_f((safe_mul_func_float_f_f((+l_1149), (g_1249 <= (safe_sub_func_float_f_f(0x0.Fp+1, (safe_div_func_float_f_f((p_3 <= (safe_mul_func_float_f_f(((-0x1.1p-1) < l_1255), l_1165))), g_136))))))), 0x6.9F5800p-77)) != 0x9.FFB1F5p+87) < (-0x7.2p+1)) , g_917), 5)) | p_3) == l_1280))), 0)))), g_1294)), (-1L))) || 0xC4L) , 5L); g_171 = ((!(((safe_sub_func_int64_t_s_s(((l_1329 = (((((safe_sub_func_int8_t_s_s((safe_rshift_func_int8_t_s_u((safe_lshift_func_int16_t_s_s((safe_mod_func_uint16_t_u_u((((l_1252 = ((g_1308++) >= 1L)) < (l_1144 < ((safe_mul_func_int16_t_s_s((safe_div_func_int64_t_s_s(((((((((-1L) && ((safe_mod_func_uint16_t_u_u(3UL, g_469)) & ((l_1280 >= (safe_div_func_uint16_t_u_u((safe_lshift_func_uint16_t_u_s((safe_sub_func_int64_t_s_s((~((g_164 = (((safe_div_func_uint32_t_u_u(g_430, ((safe_sub_func_int8_t_s_s((~g_1294), (g_437 ^ p_3))) ^ 1UL))) < 0xAFAE8C95L) | 0xD7F048A8L)) == 4294967295UL)), g_468)), l_1280)), g_52))) & g_1143))) | 9UL) && 247UL) > g_634) >= l_1280) == 0xD22F3E5B39B76707LL) <= g_82), 0xF467BDA0BF6AD019LL)), 0x3A6AL)) < l_1259))) ^ 0xEBB3L), l_1149)), 8)), 4)), g_413)) == p_3) < 0x28E7L) ^ g_413) <= l_1280)) , 0x8DDC303FC08488B7LL), 18446744073709551607UL)) && l_1329) ^ g_149)) != g_82); l_1330--; } if ((((!(safe_sub_func_int8_t_s_s((g_1308 , (safe_div_func_int8_t_s_s((((((safe_sub_func_int32_t_s_s(((l_1163 = (g_136 = ((g_96 && ((l_1166 ^= (((safe_mul_func_int16_t_s_s((safe_add_func_int16_t_s_s((safe_rshift_func_int16_t_s_u((((((safe_unary_minus_func_int16_t_s((((p_3 || (-8L)) && (((0L >= (((l_1165 = g_1294) , 1L) , g_136)) < (((safe_sub_func_int16_t_s_s((!(0UL > p_3)), p_3)) && 0x16C4A8C1L) >= l_1330)) < 0L)) == 0L))) ^ l_1149) , p_3) || l_1144) ^ g_1308), p_3)), 65528UL)), p_3)) , l_1149) ^ g_1143)) || l_1350)) == g_430))) < l_1255), l_1149)) | l_1162) , g_430) , 0x710B3B47L) >= l_1187), p_3))), 0x9FL))) , l_1259) <= p_3)) { uint32_t l_1351 = 0UL; int32_t l_1359 = 0x7FF16ABDL; int32_t l_1405 = 0x96EF81B2L; int32_t l_1497 = 1L; uint32_t l_1502 = 18446744073709551609UL; int32_t l_1545 = (-1L); float l_1583 = (-0x1.Ep+1); uint8_t l_1609 = 0xEDL; l_1165 = (l_1351 <= l_1163); for (g_467 = 0; (g_467 < (-9)); g_467--) { uint32_t l_1354 = 4294967295UL; float l_1380 = 0x0.5p+1; int32_t l_1381 = (-1L); int32_t l_1401 = 0x826BA2BAL; int32_t l_1404 = 0xF253B54AL; int64_t l_1464 = 1L; uint16_t l_1503 = 0UL; int32_t l_1508 = (-1L); int32_t l_1546 = 6L; if (l_1354) break; if (p_3) break; if ((l_1149 = g_978)) { uint32_t l_1370 = 0x48BFC835L; int32_t l_1371 = 7L; int32_t l_1406 = 0xD2AE76E6L; if ((p_3 ^ (((safe_add_func_float_f_f(((safe_div_func_float_f_f((l_1359 = p_3), 0x7.4E7DE2p-8)) <= (l_1259 = (-0x1.Dp-1))), (g_405 = ((l_1330 == (+((g_163 = 0x2.6p-1) <= g_149))) > (l_1371 = ((safe_sub_func_float_f_f((((+((safe_mod_func_int16_t_s_s((safe_mod_func_int32_t_s_s(((g_96 &= 1L) , (safe_add_func_uint16_t_u_u(l_1370, p_3))), 1UL)), p_3)) > (-1L))) , p_3) <= 0x9.1p+1), g_99)) == 0x0.1p-1)))))) , 0xF3B86014A01D4B6BLL) <= l_1354))) { l_1149 = g_1143; if (p_3) continue; } else { int32_t l_1382 = 1L; g_150 = (l_1354 | (0UL | ((9UL | (safe_div_func_int16_t_s_s(0x545AL, (safe_rshift_func_int8_t_s_s(l_1354, (((l_1381 = (safe_div_func_float_f_f((safe_sub_func_float_f_f(l_1380, 0xB.1231E8p+71)), (-0x6.3p+1)))) , (g_1383++)) , (safe_sub_func_uint16_t_u_u((safe_add_func_uint64_t_u_u(3UL, 0L)), (-7L))))))))) > (-9L)))); } l_1401 = ((safe_div_func_float_f_f((!(((((safe_mul_func_uint16_t_u_u((safe_rshift_func_int8_t_s_s(((safe_sub_func_int16_t_s_s((g_468 = (safe_lshift_func_uint8_t_u_s((++g_1409), ((+0x6D0BL) , ((safe_mod_func_uint32_t_u_u((+((l_1402 , (safe_unary_minus_func_uint16_t_u(((-4L) <= g_1403)))) < g_634)), g_67)) || p_3))))), g_171)) , (safe_add_func_uint32_t_u_u((g_171 |= (safe_add_func_int16_t_s_s((!1L), g_468))), 0x69C06811L))), 1)), l_1404)) < p_3) & g_96) , l_1422) != 0x4.FAECD3p+94)), 0x3.Dp-1)) == l_1351); g_83 = ((g_469 = g_469) & ((((l_1149 = (safe_add_func_int32_t_s_s(((safe_div_func_int16_t_s_s((((safe_add_func_int8_t_s_s((safe_div_func_int32_t_s_s(((l_1405 != l_1371) != p_3), ((l_1166 | (l_1259 | (safe_lshift_func_uint16_t_u_s(((((safe_lshift_func_uint8_t_u_s(l_1359, 1)) ^ (g_149 > (l_1370 & p_3))) , 0x36L) <= g_414), l_1405)))) | 0x77L))), g_644)) & 0UL) < p_3), 0x6CA0L)) && l_1381), g_83))) != g_430) <= g_1383) != 0x94CDB6A5336C1D8CLL)); } else { int16_t l_1463 = (-1L); int32_t l_1476 = 2L; int32_t l_1509 = 0xDA56A7B7L; int32_t l_1510 = 0xC7D97A48L; int32_t l_1607 = 0xE334D25EL; if (((safe_sub_func_int64_t_s_s((((l_1441 & (l_1259 |= (!((safe_sub_func_int16_t_s_s((((((0xAAL || (l_1354 | ((safe_mod_func_int8_t_s_s((l_1255 = ((g_1408 = (safe_add_func_int16_t_s_s(((g_171 &= ((((safe_add_func_int32_t_s_s(0x303D9580L, (safe_mul_func_uint8_t_u_u((((4294967289UL | (safe_add_func_uint64_t_u_u(((((((safe_add_func_uint64_t_u_u((safe_sub_func_uint16_t_u_u(((safe_rshift_func_uint8_t_u_s(l_1162, 6)) ^ (9L | (safe_sub_func_int32_t_s_s((g_52 &= l_1463), p_3)))), 0x844EL)), g_978)) <= 1L) > 0xC5592D06L) | g_1265) , p_3) ^ 0xAAL), p_3))) ^ p_3) & p_3), g_429)))) ^ p_3) != l_1359) <= g_1383)) == 1UL), p_3))) && 0xD1L)), 255UL)) & 0x8FL))) == g_9) != (-1L)) < l_1252) <= 4294967295UL), 1L)) , g_1090)))) , g_921) >= l_1464), p_3)) <= p_3)) { uint16_t l_1498 = 4UL; int32_t l_1501 = (-1L); l_1252 = ((safe_div_func_uint64_t_u_u(((safe_rshift_func_int8_t_s_s(((0UL | 1L) , ((((((safe_div_func_uint16_t_u_u(p_3, (~p_3))) >= (safe_sub_func_uint32_t_u_u(0x9EF13175L, (((((((l_1476 = (safe_rshift_func_int8_t_s_s(p_3, 7))) < g_468) >= (safe_sub_func_int8_t_s_s((g_644 = p_3), 0xC5L))) <= 3L) , p_3) <= 0x0517L) && 0xFD0FF8A4B1CED87FLL)))) , l_1351) , g_96) != 3L) ^ l_1144)), p_3)) > 0x945CABE4L), l_1463)) <= p_3); l_1306 = ((safe_sub_func_float_f_f(((safe_div_func_int32_t_s_s((safe_add_func_int64_t_s_s(((safe_mod_func_int16_t_s_s((safe_div_func_int64_t_s_s((safe_sub_func_uint32_t_u_u((safe_mod_func_int8_t_s_s(l_1401, g_468)), p_3)), (l_1476 || ((safe_mod_func_uint32_t_u_u((p_3 , (1L >= (safe_add_func_uint16_t_u_u((l_1404 = g_1249), (((((++l_1498) , ((g_150 <= ((p_3 < l_1464) < 0xB.7C2122p-96)) == l_1498)) <= l_1501) != l_1502) , 65535UL))))), 6L)) , l_1149)))), p_3)) && 0xBF48327DL), (-1L))), g_1143)) , l_1501), 0xF.93A64Ap+53)) < l_1255); l_1503++; l_1401 &= (safe_add_func_int16_t_s_s(g_429, (g_1514++))); } else { uint64_t l_1531 = 0UL; l_1532 = (safe_sub_func_float_f_f(((!(safe_sub_func_float_f_f(0x1.0p-1, (safe_add_func_float_f_f(g_468, ((((((+p_3) != (safe_rshift_func_int8_t_s_s((g_171 = ((4UL ^ ((safe_rshift_func_uint16_t_u_u((l_1194 , (p_3 && (g_83 || (safe_mul_func_int8_t_s_s(((g_644 = p_3) < l_1463), 0L))))), 5)) == l_1509)) <= 255UL)), 0))) , l_1194) > 0x0.Ap-1) <= p_3) >= l_1351)))))) != l_1405), l_1531)); } if ((+((safe_div_func_uint8_t_u_u(((p_3 | ((safe_rshift_func_uint8_t_u_u((safe_rshift_func_int16_t_s_s(((safe_div_func_int8_t_s_s(((((~(safe_rshift_func_uint8_t_u_u((l_1548++), 2))) ^ ((safe_mod_func_uint16_t_u_u((safe_div_func_int64_t_s_s(((safe_mul_func_uint16_t_u_u((safe_mod_func_int8_t_s_s((((safe_mod_func_uint8_t_u_u(((safe_lshift_func_uint8_t_u_s((safe_add_func_uint8_t_u_u((safe_lshift_func_uint8_t_u_s((safe_add_func_int16_t_s_s((l_1476 |= (((((safe_mul_func_int16_t_s_s((safe_div_func_uint64_t_u_u((((safe_div_func_int8_t_s_s((((safe_mul_func_uint8_t_u_u(((safe_rshift_func_int16_t_s_s((g_136 & (l_1510 < l_1464)), 9)) , (l_1547 >= ((4294967295UL == (+(-8L))) >= ((0x6014FCA8F520B1E0LL < (p_3 & 4294967286UL)) | g_486)))), 250UL)) < g_469) , l_1580), g_1308)) > l_1581) && p_3), g_1408)), l_1166)) & 0x8173C064DE33956DLL) > p_3) & 0xF5L) != g_150)), g_136)), l_1545)), 249UL)), l_1405)) | p_3), g_164)) ^ g_1514) < 4294967292UL), g_722)), p_3)) || g_96), g_1407)), 1UL)) , g_164)) ^ 2L) <= g_430), p_3)) , g_171), g_468)), 5)) <= 6L)) & 0x15L), l_1164)) | g_52))) { uint32_t l_1603 = 0x3205D7C1L; g_1585--; l_1259 = ((p_3 = (((p_3 , ((g_430 = (l_1381 = 1UL)) != (-1L))) < (((p_3 == ((g_1602 = (safe_mod_func_int64_t_s_s((safe_lshift_func_uint16_t_u_s((safe_sub_func_int16_t_s_s((g_921 < l_1350), (((safe_rshift_func_int8_t_s_u(g_978, 2)) || p_3) | (safe_add_func_uint16_t_u_u((safe_mod_func_uint16_t_u_u(l_1476, (-5L))), g_917))))), 10)), 0xF839B8795CB635FELL))) || 0UL)) , p_3) != 0L)) , 0x40L)) | l_1463); l_1603++; } else { int32_t l_1608 = 0x474FF3A8L; ++l_1609; } l_1306 = g_917; if (l_1509) { g_67 = p_3; } else { uint32_t l_1612 = 4294967295UL; g_82 = p_3; l_1612 &= 0x3CEEAD02L; if (p_3) continue; g_717 = (safe_add_func_float_f_f((p_3 == ((g_150 ^= (0xDA5F1EEFL & g_1294)) , 0x5.37F5D9p+46)), (l_1165 = (g_163 = 0x0.5p-1)))); } } } } else { float l_1615 = (-0x7.Ep+1); int32_t l_1631 = 0xD6B754A7L; int32_t l_1632 = 0x354F340AL; int32_t l_1633 = 0xC5E0234FL; int32_t l_1635 = 0x020F308AL; int32_t l_1636 = 0x54F0BC82L; int32_t l_1637 = (-6L); int32_t l_1638 = 0x20D64A07L; int32_t l_1640 = 1L; int32_t l_1644 = 0x52E06FF7L; int32_t l_1646 = 0L; int32_t l_1648 = 3L; int32_t l_1653 = 0xABDABA15L; uint16_t l_1654 = 0xBE55L; g_150 |= l_1144; l_1650 &= (l_1647 |= (((((safe_lshift_func_int16_t_s_u((-9L), p_3)) , (g_82 = p_3)) ^ (safe_mod_func_int8_t_s_s((safe_lshift_func_int16_t_s_s((safe_sub_func_uint16_t_u_u((l_1255 &= (~255UL)), ((safe_div_func_uint64_t_u_u((safe_mul_func_int16_t_s_s(((safe_div_func_int16_t_s_s((g_1249 , 0x7A30L), 0x2932L)) != (l_1643 |= ((--l_1654) && (safe_lshift_func_uint16_t_u_s((l_1638 = (safe_sub_func_int16_t_s_s(l_1653, ((safe_add_func_uint64_t_u_u((safe_rshift_func_uint16_t_u_s((((safe_div_func_int64_t_s_s((g_1294 , l_1641), l_1149)) > g_468) | l_1667), 5)), g_1602)) | l_1633)))), 14))))), l_1646)), l_1668)) < l_1194))), p_3)), p_3))) , p_3) | p_3)); return l_1634; } } else { uint32_t l_1678 = 0x98C526A2L; int32_t l_1693 = 2L; int32_t l_1708 = 5L; for (g_82 = (-11); (g_82 <= 4); ++g_82) { uint32_t l_1679 = 0xA904528EL; int32_t l_1688 = 0x6D2BBE33L; int32_t l_1689 = (-8L); l_1689 = ((!g_486) , ((0x0.4p-1 < (safe_mul_func_float_f_f(((safe_add_func_float_f_f(0x0.8p-1, ((((safe_add_func_float_f_f((l_1679 = l_1678), (safe_div_func_float_f_f((g_1408 , (((safe_div_func_float_f_f(((-p_3) <= ((safe_div_func_int16_t_s_s((-6L), (l_1255 ^= (l_1687 >= (l_1642 = p_3))))) , g_430)), 0x1.Fp-1)) != l_1688) >= g_1294)), l_1149)))) >= l_1641) > l_1678) <= (-0x8.3p+1)))) < l_1678), g_9))) == 0x9.432409p-79)); } l_1693 = ((safe_div_func_uint32_t_u_u(0x3156B893L, (~(l_1694++)))) <= 0xCED6L); for (g_150 = 27; (g_150 != 45); g_150 = safe_add_func_int8_t_s_s(g_150, 9)) { int16_t l_1699 = 0x4FA8L; int32_t l_1704 = 0x67D595CAL; int32_t l_1705 = 0x37D50DECL; int32_t l_1706 = 0xE793F43DL; int32_t l_1707 = 0xF2D25970L; ++l_1700; g_1709++; return p_3; } g_1649 = (g_921 == ((safe_add_func_float_f_f((safe_sub_func_float_f_f((l_1149 = l_1678), ((p_3 > g_1249) <= (l_1708 = (0x6.ACABDFp-26 != ((safe_sub_func_float_f_f(((safe_mul_func_uint16_t_u_u(l_1708, (safe_lshift_func_int8_t_s_s(((-4L) == (l_1678 == (l_1693 = ((p_3 , 0x1D54L) == 0xF47BL)))), l_1678)))) , l_1255), g_1308)) > p_3)))))), 0x1.Ep+1)) <= p_3)); } g_405 = ((g_1709 <= (safe_div_func_float_f_f(((l_1194 != ((safe_add_func_float_f_f(l_1694, (safe_sub_func_float_f_f((g_149 , (l_1513 = (safe_sub_func_float_f_f((-g_1514), (safe_mul_func_float_f_f(l_1144, (-0x8.2p+1))))))), (l_1642 = ((g_136 < (((p_3 , l_1255) < g_1652) >= g_1308)) >= l_1634)))))) != (-0x3.9p-1))) != p_3), g_978))) <= g_921); return l_1735; } int8_t func_4(const int16_t p_5) { int16_t l_1078 = 0x2B7EL; int32_t l_1079 = (-2L); int32_t l_1083 = (-6L); int32_t l_1084 = 0x29F6013AL; int32_t l_1085 = 0x7ABBB9EAL; int32_t l_1086 = 0xFD0336F6L; int32_t l_1087 = (-1L); int32_t l_1088 = 0xE2B98AC7L; int32_t l_1089 = (-1L); int32_t l_1091 = (-9L); uint32_t l_1092 = 5UL; int8_t l_1141 = 1L; for (g_978 = 0; (g_978 > 6); g_978 = safe_add_func_int32_t_s_s(g_978, 4)) { uint32_t l_1080 = 0x8F750387L; ++l_1080; } l_1092--; l_1083 ^= (((((l_1089 = 1L) >= (l_1087 = (((safe_sub_func_uint32_t_u_u((safe_div_func_uint16_t_u_u(((safe_rshift_func_uint16_t_u_s((safe_mod_func_int32_t_s_s(((safe_rshift_func_int8_t_s_u(((l_1091 = (safe_rshift_func_int16_t_s_s(((safe_sub_func_uint16_t_u_u((~(safe_mul_func_int8_t_s_s((safe_rshift_func_int16_t_s_s(0x3A2DL, 1)), ((safe_add_func_int32_t_s_s((((safe_sub_func_uint32_t_u_u((18446744073709551615UL && p_5), (!0xBFL))) || ((((safe_add_func_uint8_t_u_u((g_136 |= (safe_lshift_func_int8_t_s_s(((p_5 || ((((safe_mul_func_uint16_t_u_u(((((safe_sub_func_float_f_f((safe_div_func_float_f_f(((((safe_add_func_uint16_t_u_u((l_1086 = g_164), ((safe_sub_func_int16_t_s_s(((safe_rshift_func_uint16_t_u_u((safe_div_func_int16_t_s_s((safe_add_func_uint8_t_u_u((g_468 = (g_413 || (safe_rshift_func_int8_t_s_s((p_5 , 0L), 3)))), l_1078)), 0x571EL)), 15)) > p_5), p_5)) || g_149))) , l_1087) <= l_1084) <= l_1091), l_1088)), p_5)) > l_1085) , g_171) & g_467), l_1141)) > 0x62359AEAL) & g_921) || g_164)) > l_1091), l_1088))), g_96)) & g_644) > g_917) ^ l_1092)) < l_1092), l_1087)) & g_644)))), l_1084)) && g_486), l_1087))) ^ l_1087), 5)) && g_634), l_1141)), p_5)) && l_1079), p_5)), 0xB3CCAB68L)) > l_1087) , 0x365864A8L))) || g_644) >= g_1143) || 0x09EF8FBCE8FAA76BLL); return g_164; } const int16_t func_6(int64_t p_7, uint32_t p_8) { uint32_t l_968 = 0xAC5E5F71L; int32_t l_969 = 0xB722373BL; int32_t l_1001 = 0xCE045F61L; int32_t l_1020 = 3L; int32_t l_1056 = 0xCE316027L; int32_t l_1057 = 0x0F228DC4L; uint16_t l_1058 = 0x4944L; const uint32_t l_1075 = 1UL; l_1001 |= (func_11((func_14(g_9) || (~(249UL | (safe_lshift_func_uint16_t_u_s(p_8, (((((g_429 & (((g_83 > (safe_add_func_int8_t_s_s((safe_mul_func_int16_t_s_s(0xEAC4L, (((l_969 = ((((safe_add_func_int64_t_s_s(((safe_add_func_uint16_t_u_u(((!p_7) ^ l_968), 2UL)) | g_171), l_968)) & p_7) > l_969) != 0x9F001B816F2E11D2LL)) < 8L) & 1L))), p_8))) , p_7) != 4UL)) , l_969) , g_82) || l_969) <= 18446744073709551615UL)))))), l_968) ^ p_8); l_1001 = (safe_lshift_func_uint16_t_u_s((((p_7 == ((safe_rshift_func_int16_t_s_s(((safe_add_func_int32_t_s_s(l_1001, (safe_mul_func_uint8_t_u_u((l_1020 ^= (g_429 ^ (safe_mul_func_uint8_t_u_u(((g_469 != (((safe_rshift_func_uint8_t_u_s((~(+(safe_lshift_func_int16_t_s_s(((safe_add_func_int32_t_s_s(g_413, 0x33D0580BL)) || 0xA10C0746L), (g_136 &= ((l_969 == (p_7 , p_8)) || l_969)))))), 5)) && p_8) == g_634)) | p_8), 0x72L)))), 0x83L)))) <= g_96), 1)) <= 0x2DFB52CFL)) != g_921) && 18446744073709551607UL), p_8)); for (g_164 = 14; (g_164 >= 46); g_164 = safe_add_func_int16_t_s_s(g_164, 2)) { float l_1045 = 0xD.03E228p-97; int32_t l_1048 = (-1L); l_1001 = (((safe_rshift_func_uint8_t_u_u(l_1001, (~0x0762E304B33D0278LL))) > (safe_add_func_int64_t_s_s((p_7 & 3L), ((((safe_unary_minus_func_int32_t_s((p_8 != (l_1048 = (((((((safe_div_func_int64_t_s_s(7L, ((safe_div_func_int16_t_s_s(((safe_rshift_func_int16_t_s_s(((safe_mod_func_uint16_t_u_u((safe_mul_func_int16_t_s_s((0x01DFL && (safe_rshift_func_int16_t_s_u(((safe_mul_func_int8_t_s_s(((safe_lshift_func_uint16_t_u_s((l_969 = 65535UL), 4)) , (safe_mul_func_int8_t_s_s((g_467 &= ((l_1001 ^ p_8) != l_969)), p_8))), p_7)) & 1L), l_1048))), g_83)), p_7)) , p_7), 6)) , (-1L)), 0x3E36L)) || l_969))) & 0L) != p_8) ^ p_8) || g_467) < 0xC149L) & l_1001))))) > g_414) , 4294967288UL) >= p_7)))) == g_437); } if ((p_7 >= (safe_lshift_func_int16_t_s_s((((safe_unary_minus_func_uint32_t_u(((((safe_mul_func_uint8_t_u_u(((l_968 < (l_969 |= ((safe_add_func_uint8_t_u_u((++l_1058), p_8)) ^ l_1020))) & ((safe_unary_minus_func_int64_t_s(((safe_add_func_uint8_t_u_u(((safe_add_func_uint8_t_u_u(((safe_mul_func_int8_t_s_s((safe_rshift_func_uint16_t_u_s(((safe_mul_func_uint8_t_u_u(((l_1001 = g_430) <= 0x4CEEL), (safe_mul_func_int16_t_s_s((4294967286UL != ((4UL >= 1UL) >= 1L)), 65532UL)))) < p_7), 11)), p_7)) <= p_7), p_7)) & 1L), l_1057)) ^ l_1020))) > g_413)), 0L)) != l_1020) | p_8) & 4294967292UL))) != p_8) & l_1020), 10)))) { g_413 = p_7; } else { const float l_1074 = 0xF.D1B0E7p-97; return g_978; } return l_1075; } uint64_t func_11(uint32_t p_12, uint32_t p_13) { uint32_t l_973 = 0UL; int32_t l_974 = 0xBC7E0C25L; int32_t l_977 = (-8L); g_136 = ((+(g_467 = ((((safe_rshift_func_int16_t_s_u((0L == (l_974 = ((g_164 >= g_83) != l_973))), (((safe_rshift_func_uint8_t_u_u(((g_978--) <= (((g_634 = (safe_div_func_int16_t_s_s((g_414 | (8L || p_13)), (safe_rshift_func_uint8_t_u_s(l_973, 3))))) > (safe_lshift_func_uint16_t_u_s(l_973, l_977))) , 0xFC759012L)), 2)) != l_973) < p_12))) | 0x0825L) && l_973) || p_13))) != g_164); g_150 ^= (g_164 ^= ((((3UL != (safe_mod_func_uint64_t_u_u(0xDDA42000F9248A12LL, (safe_lshift_func_uint8_t_u_s(4UL, (0x746FL & (safe_sub_func_uint64_t_u_u(l_973, (g_467 = (safe_sub_func_int16_t_s_s((l_974 != ((safe_add_func_uint8_t_u_u((g_469 = p_12), ((safe_lshift_func_int8_t_s_s((-1L), (safe_lshift_func_uint8_t_u_s(((0xF306D92DL > g_468) < l_974), 5)))) <= 254UL))) > p_12)), l_974))))))))))) <= l_973) | l_973) | l_973)); return l_973; } uint16_t func_14(int64_t p_15) { float l_44 = (-0x5.6p+1); int16_t l_45 = (-6L); const float l_58 = 0x1.31E34Fp+73; int32_t l_59 = 0L; int16_t l_954 = 0x540FL; int8_t l_955 = (-3L); g_405 = ((safe_mul_func_float_f_f(p_15, (safe_add_func_float_f_f(0x0.ED3C15p+0, ((((p_15 > ((((func_20(((safe_div_func_uint32_t_u_u((safe_sub_func_uint8_t_u_u((func_28(g_9, (safe_add_func_float_f_f((!(((((safe_mul_func_float_f_f((((g_9 <= func_38(g_9, l_45, func_46(((g_52 = p_15) ^ (((!(safe_mod_func_int16_t_s_s(((safe_mul_func_int8_t_s_s((l_59 = ((((g_9 >= g_9) & l_45) > g_9) , 0x5CL)), l_45)) | 0x8DL), p_15))) , p_15) != 0x3E4CL)), g_9, p_15, l_45, p_15), l_45, g_9)) >= l_45) < 0x4.0p+1), 0x0.Ep+1)) == 0x9.E10500p+20) > p_15) < g_429) != g_429)), l_45)), l_45, g_149) >= g_149), 0xDBL)), 4L)) , p_15), p_15, l_45) && l_45) ^ l_45) != p_15) , l_954)) == 0x1.Ep-1) == 0x0.6p-1) , g_99))))) > p_15); return l_955; } int64_t func_20(uint64_t p_21, int32_t p_22, float p_23) { int32_t l_890 = 0x7DF5BFB4L; int32_t l_902 = 1L; int32_t l_903 = 0x319EE989L; int32_t l_904 = (-6L); int32_t l_905 = 0xF35A9E12L; int32_t l_906 = 0x969990C0L; int32_t l_907 = 0xEB4637DCL; int32_t l_908 = 0x8A66508AL; int32_t l_909 = 0x88601F03L; int32_t l_910 = 0x804DC5AAL; int32_t l_911 = 0x55C290A3L; int32_t l_912 = 0xDBCF73F3L; int32_t l_913 = 0xBC591291L; int32_t l_914 = 0xA66CF630L; int32_t l_915 = 0xD4A63854L; int32_t l_916 = 8L; int32_t l_918 = (-1L); int32_t l_919 = 3L; int32_t l_920 = 0xF2F952DEL; int8_t l_926 = 0x72L; int64_t l_927 = (-8L); const uint16_t l_933 = 65529UL; g_467 = (g_96 != (safe_add_func_int64_t_s_s(((l_890 & ((g_634 = (p_21 | g_430)) < ((((safe_lshift_func_uint16_t_u_s(g_99, 2)) ^ 0xF1D3L) || (((g_67 || (-1L)) ^ (0x91A2F3B50082E0D4LL <= 0x26EFB5878AD573DALL)) && l_890)) & l_890))) | g_82), (-9L)))); if ((p_22 = (safe_mul_func_int16_t_s_s((safe_mod_func_int32_t_s_s((~((((l_906 = ((safe_sub_func_int32_t_s_s(((++g_921) , (safe_mul_func_int16_t_s_s(l_912, (g_467 = ((l_919 = l_914) > (l_926 = 0x95DFE9D8B7B3972BLL)))))), l_927)) , ((l_909 = (safe_div_func_int32_t_s_s((+(safe_add_func_uint8_t_u_u((l_933 & (((safe_div_func_float_f_f(l_909, g_164)) > (l_903 = p_21)) , (safe_lshift_func_int8_t_s_u(l_910, 7)))), 1L))), g_469))) ^ l_933))) , p_21) || 0x33L) || 0xCAC3L)), l_916)), p_22)))) { uint8_t l_951 = 0x53L; uint32_t l_952 = 18446744073709551607UL; int32_t l_953 = 5L; l_953 = (((safe_mul_func_float_f_f((((safe_mul_func_float_f_f((safe_sub_func_float_f_f((!l_927), (l_916 >= (((((g_163 = 0x0.42EF43p+28) == ((safe_mul_func_float_f_f(g_413, 0xA.DE56F9p-80)) != (0x1.7p+1 == (safe_div_func_float_f_f((safe_add_func_float_f_f(((g_164 < (p_23 = (((l_951 == p_22) <= 0xD.733916p-57) != 0x6.Bp-1))) >= l_951), p_21)), p_22))))) == 0x7.188A6Cp+48) <= (-0x6.0p-1)) == p_22)))), p_21)) > p_22) == (-0x1.Ap+1)), l_951)) >= l_952) == g_644); } else { g_430 = (0x2088829DCA6EBD91LL & g_9); } return p_22; } int32_t func_28(uint32_t p_29, float p_30, int64_t p_31, int64_t p_32) { uint32_t l_826 = 0x93BE5045L; uint64_t l_829 = 1UL; int32_t l_834 = 6L; int32_t l_835 = 0x070692F1L; uint32_t l_867 = 0x4F1B8518L; int32_t l_868 = 0L; uint32_t l_869 = 0x287CE345L; uint64_t l_870 = 0xF54AFDAA080D91C4LL; int32_t l_879 = 0L; int32_t l_880 = 0x0C4F7C43L; int32_t l_881 = 0x2BB63778L; uint32_t l_882 = 0x62E5729DL; int16_t l_887 = 0x777EL; l_835 = ((safe_mul_func_float_f_f(g_437, l_826)) > ((safe_mul_func_float_f_f((l_826 < l_829), (((safe_sub_func_float_f_f(((l_829 < (l_834 = (safe_mul_func_float_f_f((((g_467 <= 0xE.930215p+82) < l_829) != (p_29 == p_32)), p_30)))) <= l_829), g_722)) > (-0x1.Bp+1)) > g_414))) > p_30)); p_30 = (((((l_870 = (safe_add_func_float_f_f(((l_829 >= (((safe_lshift_func_int8_t_s_s((safe_sub_func_int64_t_s_s((l_835 = (p_29 <= l_829)), ((((~(safe_lshift_func_uint8_t_u_s((((safe_mul_func_uint8_t_u_u((safe_mul_func_uint8_t_u_u((((safe_add_func_int64_t_s_s((-10L), (l_869 &= (g_136 , (g_634 &= (l_868 = (safe_add_func_int32_t_s_s((safe_div_func_int64_t_s_s((!(safe_lshift_func_uint16_t_u_u((safe_mod_func_uint16_t_u_u((safe_mul_func_uint16_t_u_u((safe_mod_func_int8_t_s_s(((-1L) < ((safe_rshift_func_int16_t_s_s(((l_834 |= 4294967291UL) , ((l_829 & (+p_31)) , 1L)), 12)) == 0xA7F94A54L)), l_829)), l_867)), p_32)), l_867))), l_829)), 4294967290UL)))))))) && 0xB0A62ABD589B5410LL) , l_869), g_469)), g_150)) || g_469) >= 0x15L), 2))) < g_486) == g_468) && l_867))), 5)) , (-0x6.Fp+1)) <= g_99)) <= g_722), 0xB.31DAE6p+88))) != g_486) < l_867) != l_829) != p_29); l_835 = (-0x1.Ep+1); l_887 = (safe_sub_func_uint8_t_u_u(l_835, (g_171 = (safe_mul_func_int8_t_s_s(0L, ((safe_mul_func_int8_t_s_s((g_467 |= (safe_lshift_func_int16_t_s_s((((l_882++) , l_835) || l_870), 4))), ((g_9 = p_32) < g_414))) < (g_437 <= ((((safe_mul_func_int16_t_s_s(((5L && l_881) , l_826), p_31)) , l_880) < p_32) | g_356)))))))); return p_31; } float func_38(uint32_t p_39, int8_t p_40, int16_t p_41, uint64_t p_42, uint16_t p_43) { int32_t l_92 = (-2L); int8_t l_138 = 0xE7L; int32_t l_196 = 0xC2B63071L; int32_t l_314 = 0xA8C28E45L; int16_t l_351 = 0L; int32_t l_456 = 0xED8FF8E4L; const uint64_t l_530 = 0xC44B05EEB73DFDAELL; int32_t l_609 = 0x17DB8553L; int8_t l_639 = (-6L); uint8_t l_669 = 255UL; uint8_t l_708 = 252UL; uint32_t l_710 = 0xE1F32FC6L; uint64_t l_765 = 0x2B47FFD1B1BAB4E6LL; uint8_t l_774 = 4UL; l_92 = (((safe_sub_func_float_f_f(p_39, g_67)) != ((safe_add_func_float_f_f(l_92, (g_9 > (+((l_92 >= (0x2.468F5Bp+66 > l_92)) < ((0x6.221F42p+33 == (0x7.8p+1 >= 0x1.1p-1)) < g_82)))))) <= g_82)) < 0x6.2677E1p+90); for (g_82 = 10; (g_82 < (-18)); g_82--) { int32_t l_115 = 0xD78952EBL; int32_t l_117 = 1L; int32_t l_137 = 0x1F773013L; uint8_t l_179 = 1UL; int32_t l_633 = 3L; int32_t l_709 = 0x64994C72L; if ((g_96 = 0L)) { uint32_t l_116 = 0x550B1092L; int32_t l_172 = (-10L); int32_t l_213 = 0x1EF5433BL; if ((safe_mod_func_int16_t_s_s(((g_99 = 4L) != (~((0xEFL == (((safe_mod_func_uint16_t_u_u((safe_div_func_uint32_t_u_u((safe_div_func_int64_t_s_s((l_117 = ((((safe_sub_func_int16_t_s_s((0x8A9B2A33634C778CLL <= (p_39 > 0x1E24L)), (l_115 |= (safe_mod_func_int32_t_s_s((((safe_add_func_int32_t_s_s((safe_sub_func_uint16_t_u_u(((g_96 != (g_96 | l_92)) , 0xDA66L), p_41)), p_39)) , (-5L)) & 6UL), 0x58E0DE0CL))))) & (-10L)) , l_116) & g_96)), 0x10A650A9706E1857LL)), p_43)), 0x0C88L)) < 0x0E9B690C290A7FA1LL) , p_43)) , p_42))), p_41))) { uint8_t l_139 = 1UL; l_92 ^= ((safe_add_func_int16_t_s_s(((((safe_rshift_func_int16_t_s_s(l_116, 12)) ^ (((g_99 == (((((safe_mul_func_int16_t_s_s((safe_mul_func_int16_t_s_s(0x0D2CL, (((safe_div_func_uint8_t_u_u((l_115 == (l_117 = ((safe_mul_func_int8_t_s_s((g_96 < (safe_div_func_uint64_t_u_u(((3UL > (((l_137 &= ((((safe_div_func_int32_t_s_s((((p_43 &= 0xBFCAL) == (p_40 != (g_136 ^= ((safe_lshift_func_int8_t_s_u((p_40 > l_116), 0)) ^ 6UL)))) & g_67), g_99)) | l_116) || l_117) & 0x6401L)) < l_116) , g_82)) >= l_138), g_96))), l_116)) > g_52))), 254UL)) , p_39) <= 0x28A4BD3C15F2FB4DLL))), 0xA385L)) , g_96) >= 0x0C0ABB7BL) < l_115) , g_67)) > 255UL) , 0x4CL)) || g_136) >= g_99), l_116)) != g_96); l_92 = g_136; l_139++; if ((((((safe_rshift_func_uint16_t_u_s((safe_add_func_int32_t_s_s((g_136 || (p_41 = p_41)), (((!(l_172 = (safe_div_func_uint8_t_u_u((((g_150++) > l_138) >= (!(safe_rshift_func_int8_t_s_u((l_92 = ((safe_sub_func_int16_t_s_s((safe_mul_func_uint8_t_u_u(((~(g_171 = ((safe_rshift_func_int8_t_s_s((l_139 | (g_164 |= l_92)), (safe_sub_func_int16_t_s_s(((safe_lshift_func_uint16_t_u_u(((((p_43 > (p_42 , (safe_mod_func_uint8_t_u_u(0x4FL, 0x0BL)))) , g_67) != p_43) != 1UL), p_42)) ^ g_82), p_42)))) | l_117))) , l_139), l_115)), 0xCF29L)) , p_43)), p_43)))), l_115)))) ^ g_136) < 0xA76B0EF2B8E86F5FLL))), g_52)) , g_83) , 6UL) ^ p_40) < 0xA340A379L)) { uint8_t l_203 = 255UL; int32_t l_243 = (-1L); if (((((l_138 >= (((safe_sub_func_int16_t_s_s(g_164, (((((safe_mod_func_int16_t_s_s(l_139, l_92)) >= (l_172 = 0x62EBL)) > (((0xCF93A13EA481B1F8LL || g_83) > (safe_add_func_uint64_t_u_u(l_117, (l_116 , 0xD73A523A5B0B60EELL)))) || 0x2DE199855EAA69B5LL)) , g_52) > 0xFAL))) && g_52) < 0xEB25L)) <= p_42) , 0L) > l_179)) { return p_41; } else { if (p_39) break; g_136 = (p_43 != (((safe_div_func_uint16_t_u_u(((((((safe_sub_func_int64_t_s_s((l_196 = ((g_171 |= ((safe_add_func_int32_t_s_s(0xEEE4F3F7L, ((l_92 = (((g_164 = (safe_mod_func_int8_t_s_s(((-2L) <= 0UL), g_164))) , (safe_div_func_uint32_t_u_u((g_150 > ((((safe_div_func_uint8_t_u_u((((safe_sub_func_int32_t_s_s((l_117 &= (g_149 != l_92)), (safe_div_func_int16_t_s_s(((((g_96 , 7L) == p_42) ^ 0x5AL) , l_138), 3UL)))) && 4294967288UL) == l_139), g_83)) || p_39) == 65535UL) < g_136)), (-1L)))) == 1L)) < 1UL))) && p_40)) >= l_139)), 0x18B624CAB1FC9452LL)) > l_115) ^ (-5L)) == g_149) < p_39) && g_99), (-1L))) != p_42) && 0xE04F2ECFL)); l_137 = (9UL >= (safe_lshift_func_uint8_t_u_u(g_149, 3))); l_213 = ((l_172 = (safe_sub_func_uint8_t_u_u(((safe_div_func_float_f_f(l_203, l_139)) , g_164), (safe_rshift_func_int16_t_s_u(g_150, (safe_sub_func_uint8_t_u_u(p_41, p_40))))))) , (safe_div_func_float_f_f((l_172 = (safe_mul_func_float_f_f((g_96 , 0x0.2p-1), ((!(l_117 > p_41)) >= l_203)))), g_96))); } l_196 &= (0UL != (((safe_rshift_func_int8_t_s_s(p_40, 0)) < g_9) != p_39)); for (l_117 = 1; (l_117 >= 24); l_117 = safe_add_func_uint8_t_u_u(l_117, 1)) { int32_t l_242 = (-1L); int32_t l_254 = (-1L); g_163 = ((safe_add_func_float_f_f((safe_sub_func_float_f_f((g_150 >= ((l_196 = ((safe_mul_func_uint8_t_u_u(((safe_add_func_uint8_t_u_u(g_82, ((((safe_sub_func_int64_t_s_s((((safe_sub_func_uint16_t_u_u(l_115, (safe_add_func_int16_t_s_s(((((safe_div_func_int64_t_s_s(1L, ((((safe_sub_func_int32_t_s_s(p_42, (l_243 &= (safe_mod_func_uint8_t_u_u((((0x6739B9925D8BB331LL ^ (safe_div_func_int8_t_s_s(((safe_mod_func_int16_t_s_s(5L, l_242)) & 1L), (-4L)))) != g_9) >= p_42), l_242))))) < g_67) || 0L) & p_42))) >= g_164) | l_203) <= g_164), l_139)))) >= g_136) == 1UL), 8L)) > 0xA0L) , g_52) , 0xFEL))) , p_41), l_139)) & g_149)) , l_242)), p_43)), (-0x1.3p-1))) != g_163); l_254 &= ((safe_rshift_func_uint16_t_u_s(((g_136 = (l_213 == ((((l_139 , ((p_40 = p_40) , (l_139 <= (((-0x1.5p-1) != 0x9.75BA9Dp+34) > (safe_add_func_float_f_f(((l_138 != g_149) > (safe_div_func_float_f_f((safe_div_func_float_f_f(((((safe_lshift_func_uint16_t_u_s(65527UL, g_67)) < l_242) == 0x3D55L) , g_164), (-0x1.Dp+1))), 0x1.Ap-1))), 0x9.2B1045p+20)))))) >= p_43) == p_39) , p_41))) && g_52), g_99)) | p_43); l_254 = ((safe_rshift_func_int8_t_s_u((p_40 == (l_117 && l_139)), 3)) != p_40); if (l_117) continue; } for (l_172 = 22; (l_172 != (-20)); l_172 = safe_sub_func_int16_t_s_s(l_172, 6)) { uint32_t l_279 = 0x9ACE85C9L; l_137 = (safe_sub_func_float_f_f((+((safe_sub_func_float_f_f((0xA.1FC9FDp+10 == (-0x3.4p+1)), g_164)) <= (safe_div_func_float_f_f((safe_mul_func_float_f_f(((((safe_sub_func_float_f_f(((p_42 < (l_179 <= (safe_sub_func_uint8_t_u_u((safe_mul_func_int8_t_s_s((safe_unary_minus_func_uint32_t_u(((safe_lshift_func_int8_t_s_u(l_196, 4)) | ((safe_rshift_func_int8_t_s_s(((l_279 | ((0x7D754D28L < 0xBBFD0F9BL) < g_9)) ^ g_150), p_43)) && p_40)))), l_139)), 0xBBL)))) , 0x1.0p-1), (-0x6.Fp+1))) <= g_9) >= l_213) >= l_203), p_40)), g_83)))), (-0x10.3p-1))); } } else { uint32_t l_282 = 0x0B3DA9CEL; uint64_t l_286 = 0x5DE9916C91CB4C1BLL; if (p_41) break; g_171 = ((safe_mul_func_int8_t_s_s(0xB7L, (l_282 , ((((p_40 || (g_171 || ((!0x964B1B77L) | g_164))) , 0x7AL) == (((0x74L & (0xFEFF6F5AL < 1L)) != 18446744073709551611UL) != g_150)) ^ 0xE3876213L)))) != 0xCCC3BF84625BB909LL); l_286 = l_139; } } else { int32_t l_293 = 0x36BEBD65L; l_172 = ((safe_mul_func_float_f_f((g_164 <= (safe_mul_func_float_f_f(((((g_136 = g_171) != 0xA.89B082p+88) != (safe_sub_func_float_f_f((((g_99 >= (((-8L) || g_82) , l_196)) != (g_150 <= g_96)) < p_39), l_293))) == g_67), p_42))), g_96)) >= g_150); } } else { uint16_t l_315 = 9UL; uint8_t l_316 = 0xF9L; int64_t l_350 = 4L; uint32_t l_355 = 0xAE3A1A55L; int32_t l_357 = 2L; int32_t l_466 = 0x8DE1B7BDL; int32_t l_555 = 1L; uint64_t l_778 = 0x5221FF190953721FLL; g_171 = (p_39 || g_83); if (((safe_mod_func_uint8_t_u_u((0x1254D81AL & ((((((safe_add_func_int32_t_s_s(((l_196 = (safe_add_func_int32_t_s_s((safe_unary_minus_func_uint8_t_u((safe_add_func_int16_t_s_s((((g_99 , (safe_mod_func_uint64_t_u_u(((!(g_83 | (((l_196 ^ 0xC5L) <= (p_39 && (((0xF61FC9B2L && ((((l_314 = ((safe_add_func_float_f_f((safe_sub_func_float_f_f((p_39 > (((l_92 = (safe_rshift_func_int8_t_s_u((1UL & p_41), g_52))) , (-0x1.9p-1)) < p_39)), g_150)), g_9)) > l_196)) , p_42) != 65534UL) , l_115)) & g_164) >= g_52))) > l_138))) , l_314), 0x79BEF017ECE4462CLL))) != 0x2374D4ACL) > p_39), g_96)))), p_43))) , l_115), g_96)) && g_136) , 0x25A390C96BA849FELL) > (-7L)) == p_41) ^ l_138)), l_315)) & l_316)) { float l_372 = 0x8.8p-1; int32_t l_373 = 0L; uint32_t l_404 = 4294967295UL; int32_t l_412 = 7L; float l_428 = 0x4.Ap+1; int16_t l_479 = 0x0272L; uint8_t l_499 = 0x4BL; float l_608 = 0x9.DA3015p+31; uint8_t l_610 = 251UL; int32_t l_631 = 0xF1BE36F6L; int32_t l_632 = (-8L); if ((0x59L <= 0x4CL)) { int16_t l_346 = 0x70DDL; int32_t l_352 = 0x8418D95EL; uint8_t l_353 = 0x40L; int32_t l_354 = 0x2222A849L; l_357 = (safe_sub_func_float_f_f(((safe_mul_func_uint16_t_u_u((((safe_add_func_int64_t_s_s((safe_rshift_func_uint8_t_u_u(((p_41 , 2L) != (p_41 , l_115)), 0)), ((g_82 != ((l_355 = (((safe_div_func_uint16_t_u_u((safe_mod_func_int8_t_s_s((l_354 = (l_353 = ((((safe_mod_func_int32_t_s_s((safe_lshift_func_int16_t_s_u(((safe_add_func_float_f_f((+l_315), ((l_352 = (safe_sub_func_float_f_f((safe_div_func_float_f_f((safe_add_func_float_f_f((p_42 < ((safe_div_func_uint64_t_u_u(((safe_add_func_float_f_f(l_346, (!(safe_mul_func_float_f_f(((0xA.FC290Dp+6 != 0x3.DA4456p-24) == p_39), 0x1.1p-1))))) , 0x18DBF95D60C054E6LL), l_350)) , g_52)), (-0x1.0p+1))), 0x5.0480B2p+87)), l_351))) != l_115))) , l_315), p_42)), g_52)) | 0xBC33D4B22B36C4D2LL) > 5L) , p_39))), p_43)), 0x8C9FL)) >= g_52) != g_171)) <= g_356)) >= g_149))) & 4294967288UL) && g_149), 0x5BF9L)) , l_115), 0xF.8506E6p+67)); l_373 = (((l_196 >= (((g_171 = (((((((safe_lshift_func_uint16_t_u_s((safe_rshift_func_uint8_t_u_u((l_314 = (safe_mod_func_uint32_t_u_u(1UL, (safe_lshift_func_int16_t_s_s(((g_136 = (safe_div_func_int64_t_s_s(1L, l_137))) < (safe_rshift_func_uint16_t_u_s(2UL, 3))), g_9))))), 6)), 5)) > l_196) > (p_42 && (((g_96 > l_117) > 4UL) && l_346))) ^ l_354) & (-8L)) != l_351) == (-5L))) == (-9L)) == 18446744073709551606UL)) ^ 0UL) , l_372); } else { uint8_t l_403 = 9UL; int32_t l_425 = 0xEC9C2DA4L; int32_t l_465 = 0xCB832378L; int32_t l_480 = 0x89DE6CA5L; int64_t l_502 = 0xDF6CC9C5A3F4D275LL; l_373 |= (safe_mul_func_int8_t_s_s((safe_mul_func_int16_t_s_s((safe_add_func_uint16_t_u_u(0xF4BBL, ((safe_add_func_int64_t_s_s(((safe_div_func_int16_t_s_s((safe_rshift_func_int16_t_s_u((g_82 | (((((g_150 = (((safe_rshift_func_uint16_t_u_u(l_179, 4)) || (~((safe_sub_func_uint16_t_u_u(g_136, ((safe_lshift_func_int16_t_s_u(((safe_sub_func_uint64_t_u_u(((((l_137 = (safe_sub_func_int16_t_s_s((g_171 ^= l_92), (((g_149 == (l_137 && (safe_sub_func_uint32_t_u_u((safe_mul_func_int8_t_s_s(((g_96 | ((((safe_rshift_func_uint8_t_u_u(l_137, 7)) > l_316) || g_67) || l_117)) <= p_40), l_137)), l_403)))) <= 0xBFL) < 0x84L)))) || l_404) , 0UL) >= 0x3486CE31L), l_351)) >= l_316), p_43)) > p_39))) & 0L))) | l_403)) ^ 0x0992E8C8L) | g_52) ^ p_42) , l_355)), g_164)), g_9)) | g_96), 1UL)) < 1UL))), l_316)), g_9)); if ((safe_lshift_func_int16_t_s_s((((-1L) >= (g_96 |= 0xA39BBD57E48BFFBDLL)) & (safe_mul_func_uint8_t_u_u(((safe_rshift_func_int16_t_s_u(((((--g_414) == (l_196 = ((safe_add_func_int64_t_s_s(0L, (-8L))) , (safe_sub_func_int32_t_s_s((l_357 |= p_43), ((((((((safe_add_func_int16_t_s_s(p_40, 0xA8B9L)) && ((safe_add_func_int8_t_s_s((p_39 = (l_425 &= p_39)), ((safe_add_func_int64_t_s_s((p_40 > l_403), g_356)) | l_179))) , p_39)) && l_425) , p_41) , (-1L)) ^ p_40) , 0xF5C8104EL) < 0x42118AF6L)))))) < 1L) < 18446744073709551615UL), 9)) != g_150), l_115))), 12))) { if (g_429) break; ++g_430; g_356 = (g_171 = ((safe_mul_func_int16_t_s_s((-8L), ((safe_rshift_func_int8_t_s_s(((p_43 ^= 6UL) <= p_41), 2)) == (4294967295UL | ((g_437 |= 0xAF851A6A6CDA6D40LL) < (((safe_add_func_uint8_t_u_u((safe_lshift_func_uint16_t_u_u(((g_136 = g_356) < ((safe_rshift_func_int8_t_s_u(l_425, (safe_rshift_func_int8_t_s_s((safe_mod_func_int64_t_s_s((((0x73L & (safe_rshift_func_uint16_t_u_s(((safe_add_func_int8_t_s_s((safe_mul_func_uint8_t_u_u((g_414 = 0x54L), p_41)), g_149)) & l_456), 13))) ^ l_373) || g_99), 0x047F32836C0D3BAFLL)), 3)))) > l_137)), 3)), g_99)) & g_164) || p_41)))))) && 1L)); } else { return p_42; } if ((l_316 , (safe_lshift_func_int8_t_s_u(((safe_div_func_int64_t_s_s((((2UL == (safe_lshift_func_int16_t_s_s(0xEB24L, (((safe_lshift_func_uint8_t_u_u((l_350 & (p_39 || (g_469--))), (safe_mod_func_int16_t_s_s(g_67, ((g_171 = ((((((l_196 ^= ((((safe_mul_func_uint8_t_u_u(((p_40 < (~((g_9 & (safe_sub_func_int32_t_s_s((g_413 , l_314), l_479))) | 18446744073709551615UL))) , g_430), g_149)) , 254UL) || g_99) != l_315)) & 0UL) <= (-5L)) != l_403) > p_40) && g_430)) & (-5L)))))) ^ 0x90FAL) > g_468)))) == l_137) & p_39), g_149)) || g_149), l_92)))) { uint32_t l_481 = 18446744073709551615UL; int32_t l_484 = 1L; int32_t l_485 = (-1L); --l_481; g_467 = ((l_179 & (g_486++)) != (g_468 = (((l_373 ^= (safe_mul_func_uint16_t_u_u((safe_sub_func_uint8_t_u_u((g_136 = (safe_mul_func_uint8_t_u_u((safe_add_func_uint16_t_u_u((g_469 , (g_171 = (g_67 <= p_39))), ((l_484 |= g_164) <= 0xADL))), ((safe_sub_func_int8_t_s_s(p_40, 0x38L)) >= ((g_163 = 0x6.46E06Ep+73) , 65535UL))))), l_403)), g_9))) < p_39) < 7L))); l_499++; l_502 = g_437; } else { uint64_t l_505 = 18446744073709551614UL; const uint64_t l_556 = 1UL; l_357 ^= ((safe_mul_func_int8_t_s_s(l_412, (g_468 = (l_505 >= (((safe_rshift_func_int8_t_s_u((safe_rshift_func_int16_t_s_s((2L ^ g_414), ((l_373 &= ((((safe_rshift_func_uint16_t_u_u((safe_add_func_int16_t_s_s((((-6L) < (safe_sub_func_uint8_t_u_u(l_196, ((g_149 ^ (safe_rshift_func_uint8_t_u_s((g_171 = ((safe_mul_func_int8_t_s_s((safe_sub_func_uint32_t_u_u(l_505, (safe_div_func_int32_t_s_s((((safe_mul_func_int8_t_s_s(((g_164 <= 6UL) == g_82), 0xA8L)) , g_413) , g_136), l_425)))), 0L)) && l_412)), 4))) || 1L)))) >= g_52), l_466)), g_356)) , 0UL) <= p_39) <= l_425)) != g_414))), g_136)) | 0x6E1E74DD836C2809LL) , g_414))))) >= 248UL); l_465 = ((((safe_div_func_float_f_f(l_530, (((safe_mod_func_int32_t_s_s((safe_sub_func_int32_t_s_s((l_555 |= (4294967295UL != (safe_div_func_uint32_t_u_u(((!((l_466 = (safe_sub_func_uint8_t_u_u((g_136 , (((0UL >= (g_96 , (((safe_rshift_func_int8_t_s_s(g_67, 5)) || (l_480 = (l_115 ^ (safe_div_func_uint16_t_u_u((safe_add_func_uint8_t_u_u((((safe_lshift_func_uint16_t_u_s((safe_mul_func_int16_t_s_s((safe_unary_minus_func_int16_t_s((((safe_lshift_func_uint8_t_u_s((((safe_add_func_int64_t_s_s(((g_82 ^ g_136) , g_149), g_171)) , g_430) & 255UL), l_357)) | p_43) && g_164))), g_149)), 9)) <= (-1L)) != l_137), l_412)), p_43))))) != 9L))) ^ p_43) && p_39)), 0xA2L))) < (-1L))) == g_467), (-4L))))), p_43)), p_39)) > l_556) , p_41))) != 0xF.591201p+47) <= g_150) <= g_96); l_412 = ((p_40 , (safe_div_func_int32_t_s_s(l_505, (safe_mod_func_uint8_t_u_u(g_486, ((safe_sub_func_uint8_t_u_u((((!(safe_rshift_func_int8_t_s_s(((((0x45L & (((g_469 = g_469) && 0x1A030755L) <= (safe_lshift_func_int16_t_s_s((((safe_rshift_func_uint16_t_u_s(((+(+((l_466 = ((((safe_add_func_uint32_t_u_u((safe_add_func_int64_t_s_s(g_429, 18446744073709551615UL)), l_355)) || 0xB0DE3AC6C3F52E77LL) > l_556) , l_480)) < (-1L)))) && l_556), 1)) != g_414) >= g_437), p_43)))) , 0xE707L) == 4UL) > 0x70184F10L), 6))) <= 7L) , l_117), l_505)) ^ p_42)))))) , 0xF9AAEA8AL); l_137 = (g_136 = (((safe_mod_func_int16_t_s_s((safe_mod_func_int16_t_s_s((safe_mul_func_uint8_t_u_u(l_196, (p_42 ^ l_465))), ((p_39 >= (safe_add_func_int8_t_s_s((safe_add_func_uint32_t_u_u((safe_mod_func_uint32_t_u_u((safe_add_func_uint16_t_u_u(((((safe_div_func_uint64_t_u_u(((((safe_mul_func_int16_t_s_s((safe_mul_func_int8_t_s_s((safe_mul_func_uint16_t_u_u((safe_mul_func_uint16_t_u_u((((safe_sub_func_int16_t_s_s((0L >= ((l_179 == (safe_mul_func_int16_t_s_s((safe_lshift_func_uint16_t_u_s(l_530, 6)), (-1L)))) < (((g_171 = (safe_lshift_func_int8_t_s_s(((((p_43 || 0xF022L) ^ 1L) <= l_609) < l_179), 7))) | l_610) != g_9))), p_43)) <= p_42) | g_164), l_350)), 0L)), l_357)), g_467)) , g_430) ^ l_530) != p_41), p_39)) < 0x36EA4350L) && 1L) <= l_456), p_39)), p_41)), 0x8F6DF685L)), p_42))) || 0L))), g_468)) && 0x4D8F0F17592A3D58LL) == g_83)); } } l_137 = ((l_314 = (0x1D4DL <= ((((safe_mod_func_uint32_t_u_u(((safe_div_func_uint64_t_u_u(((safe_lshift_func_uint16_t_u_s((g_99 == (safe_div_func_uint64_t_u_u((p_43 != ((l_315 == (safe_div_func_uint32_t_u_u(0xDCA163E4L, (safe_mod_func_uint8_t_u_u((g_644 |= ((safe_rshift_func_int8_t_s_u((g_468 = (l_633 &= (safe_rshift_func_uint16_t_u_u((safe_lshift_func_uint8_t_u_s((((safe_sub_func_int32_t_s_s(((g_634++) || ((safe_sub_func_uint32_t_u_u((((l_639 = g_52) , ((safe_lshift_func_uint16_t_u_s((safe_add_func_int8_t_s_s(p_42, 255UL)), (4294967295UL ^ g_171))) | l_404)) == 0UL), 0xBE9538FDL)) == p_41)), l_355)) ^ g_414) && g_429), 1)), g_356)))), g_430)) , 0x74L)), g_429))))) <= 0x7793941A4D1BE87ELL)), p_40))), 3)) == l_179), 18446744073709551610UL)) <= g_82), p_40)) | l_92) , g_82) , 0x57F9L))) , l_355); l_357 = ((((safe_lshift_func_uint8_t_u_s((safe_add_func_int32_t_s_s((((safe_rshift_func_uint16_t_u_s((safe_rshift_func_uint16_t_u_u(((l_117 = (g_171 = (g_468 &= l_137))) == ((0x21AE30F857443D39LL == ((safe_lshift_func_int16_t_s_s((g_467 = (l_404 , (safe_sub_func_int32_t_s_s((((safe_div_func_uint16_t_u_u(l_479, (safe_rshift_func_int8_t_s_s(0x97L, l_316)))) > ((l_355 & ((safe_sub_func_uint32_t_u_u(((safe_div_func_int64_t_s_s(((~(((safe_div_func_uint64_t_u_u((!(l_404 & (p_42 , (-6L)))), (-1L))) > 18446744073709551611UL) >= 1L)) >= 0x2D654EE130C3EF0ELL), 0xF21F614601ADDA3BLL)) <= g_413), p_40)) && 0L)) >= g_644)) && (-1L)), 0L)))), 1)) , 0x3184ADC3DF89C712LL)) || p_42)), g_164)), g_67)) | g_437) <= p_40), (-5L))), 5)) < g_644) == l_179) , l_179); g_413 = l_350; } else { int64_t l_680 = (-1L); int32_t l_704 = (-6L); int32_t l_706 = (-6L); int32_t l_715 = 1L; int32_t l_718 = (-9L); int32_t l_721 = 0xA353A1A1L; if (((l_196 ^= l_669) <= ((g_437 && l_115) | (l_680 = ((safe_sub_func_int64_t_s_s(((p_40 <= (safe_div_func_uint64_t_u_u((((g_150 || (safe_div_func_int16_t_s_s((safe_sub_func_int64_t_s_s((-1L), ((safe_lshift_func_uint16_t_u_s(0x6940L, (g_467 = ((l_456 & ((l_315 >= 0xA8E34C7AB59A8D9BLL) == p_39)) >= g_414)))) , p_39))), g_136))) && p_39) | 0x3AL), g_644))) & p_39), 0xE44A958DC6AC73B2LL)) && (-1L)))))) { uint8_t l_705 = 0x60L; for (g_634 = 0; (g_634 >= 1); g_634 = safe_add_func_uint16_t_u_u(g_634, 2)) { uint64_t l_686 = 0xBED081951CAB3DBELL; int32_t l_687 = 0L; l_706 = ((l_633 = (~((g_437 = p_43) | 0UL))) , (safe_mul_func_uint16_t_u_u((l_687 |= (l_686 = l_669)), ((((safe_sub_func_uint8_t_u_u(g_469, (safe_lshift_func_uint8_t_u_u(p_39, 3)))) < (safe_lshift_func_uint16_t_u_s((safe_mul_func_int8_t_s_s((g_164 &= ((safe_mod_func_uint64_t_u_u(18446744073709551615UL, (safe_sub_func_uint16_t_u_u(((safe_div_func_int64_t_s_s(((g_486 = ((((l_704 |= ((safe_sub_func_int64_t_s_s(g_430, g_171)) > p_39)) || p_42) , 0x95A7DCC65B7E570BLL) & p_43)) ^ p_39), 0xC492D2998B6F7EEELL)) > g_644), 0L)))) & p_42)), g_99)), 6))) != l_705) ^ 4L)))); l_709 = (-l_708); if (l_710) break; l_687 = (safe_mul_func_float_f_f(l_686, p_42)); } } else { int64_t l_713 = 0x45102F7DF0A19D5ALL; int32_t l_714 = 0x0F0D6B5AL; int32_t l_716 = 2L; int32_t l_719 = 0x2C44E361L; int32_t l_720 = 7L; --g_722; l_117 = (g_163 = (g_9 < ((safe_sub_func_float_f_f(g_52, (p_41 < p_43))) > p_40))); } g_437 = p_43; for (l_315 = 18; (l_315 == 37); l_315 = safe_add_func_int8_t_s_s(l_315, 7)) { int32_t l_747 = 0L; l_314 |= ((safe_sub_func_float_f_f((safe_sub_func_float_f_f((safe_mul_func_float_f_f(l_466, (g_9 , l_633))), g_469)), (safe_mul_func_float_f_f((safe_div_func_float_f_f((safe_sub_func_float_f_f((((safe_mul_func_float_f_f((0xB.20399Fp-10 == (l_117 = (p_39 <= l_669))), ((safe_div_func_float_f_f(((safe_add_func_float_f_f((l_747 = g_486), (p_41 >= l_355))) != g_468), p_40)) > p_40))) > 0x4.96DF1Ep+23) == g_52), g_644)), l_704)), p_43)))) , (-2L)); if (p_40) break; } } l_765 = (((0xA7L ^ ((((safe_mul_func_uint8_t_u_u(((safe_div_func_uint64_t_u_u(18446744073709551615UL, 0x7C823CABEE2DFE11LL)) & (((p_43 & ((safe_rshift_func_uint8_t_u_s(6UL, 2)) > (l_357 &= g_67))) & ((safe_mul_func_uint16_t_u_u(((l_314 = (g_136 = g_136)) , (((l_555 = (safe_div_func_uint16_t_u_u((safe_sub_func_int8_t_s_s((safe_add_func_int64_t_s_s((((safe_sub_func_int8_t_s_s(((~g_96) && 0xD86C564CL), 247UL)) || g_164) | p_39), 0x3DD7E3B0A91AB771LL)), l_466)), l_669))) >= 0xAFFD4B1F751F4F87LL) || g_96)), 65535UL)) ^ 0x20L)) | 1L)), 0x09L)) > 0xC3L) , p_43) | l_350)) < 0x1AB3L) , 1L); l_196 ^= (safe_mul_func_int8_t_s_s((l_137 = (safe_div_func_uint8_t_u_u(((((safe_mul_func_int8_t_s_s(((safe_div_func_uint16_t_u_u(l_774, l_115)) & (-1L)), p_43)) | 1L) == (l_117 != 0xBDE4L)) >= (l_466 ^= (safe_mul_func_uint16_t_u_u(((~l_555) >= (g_468 || 0L)), l_778)))), (-6L)))), l_774)); } if ((safe_rshift_func_uint8_t_u_s(((((safe_lshift_func_int8_t_s_s(((p_41 = p_41) ^ (0x9A22L ^ ((((1UL | 0UL) != (((safe_lshift_func_int8_t_s_s((safe_sub_func_uint64_t_u_u(((0xCB85L > l_774) == (((g_722 > (safe_lshift_func_uint8_t_u_u((safe_lshift_func_int16_t_s_s(((l_92 = l_351) || (p_43 | 0x13L)), 15)), 5))) , l_117) == 2L)), l_639)), g_52)) == 0x201B80C791EE181ALL) , g_149)) | l_639) <= 9L))), p_39)) & g_9) != p_40) && 0xA65FL), 6))) { uint32_t l_809 = 0xD2B17679L; int32_t l_814 = 5L; l_709 = ((g_136 = ((l_117 || (((safe_unary_minus_func_int64_t_s((safe_unary_minus_func_int16_t_s((safe_mul_func_int16_t_s_s((safe_sub_func_uint8_t_u_u((((p_39 != (l_814 = (safe_div_func_uint64_t_u_u((safe_rshift_func_int16_t_s_u(p_43, (safe_mod_func_int16_t_s_s((safe_mul_func_int8_t_s_s((l_809 = (safe_rshift_func_int16_t_s_u(0L, g_67))), g_644)), ((((safe_sub_func_int8_t_s_s(p_42, (l_115 || ((safe_mul_func_uint16_t_u_u(((l_196 , p_39) , g_136), (-1L))) & p_42)))) || p_43) && p_43) && g_9))))), p_41)))) ^ p_42) ^ 4UL), 0L)), 65529UL)))))) || l_765) & g_171)) > 1L)) , g_136); g_469 |= (p_39 , (((p_43 <= g_634) , ((g_634 , g_356) >= (((safe_sub_func_float_f_f((safe_div_func_float_f_f((g_163 = ((safe_lshift_func_int8_t_s_u(p_43, ((p_41 , ((p_43 == (((l_814 < g_468) | g_634) , g_644)) , l_809)) ^ 0xD59C899FL))) , 0x6.77DC1Ap+94)), 0x0.5p+1)), g_164)) == g_9) >= g_99))) , p_39)); if (g_356) break; return l_710; } else { g_413 = g_429; } if (p_42) break; for (g_414 = 0; (g_414 <= 55); g_414 = safe_add_func_int64_t_s_s(g_414, 7)) { int16_t l_823 = (-7L); g_467 = g_467; l_823 = p_40; } } g_150 = g_430; return p_42; } int16_t func_46(uint8_t p_47, int32_t p_48, int32_t p_49, int16_t p_50, uint32_t p_51) { int16_t l_62 = 6L; int16_t l_74 = (-2L); int32_t l_75 = (-7L); int32_t l_76 = 0xE3674DCCL; int32_t l_77 = (-10L); int32_t l_78 = (-8L); int32_t l_79 = 0x4999369EL; int32_t l_80 = (-9L); int32_t l_81 = 0L; l_74 = ((1UL <= (safe_lshift_func_int16_t_s_u((l_62 & (g_9 , (safe_add_func_int32_t_s_s(((((safe_mod_func_int16_t_s_s(((g_52 & g_67) & (safe_sub_func_int8_t_s_s(g_52, (safe_sub_func_uint32_t_u_u(0x6128B293L, ((safe_mod_func_uint32_t_u_u(p_49, ((-1L) | g_9))) && l_62)))))), (-5L))) && p_47) == p_47) ^ l_62), (-1L))))), g_52))) == p_48); g_83--; l_81 = (0x3E35L >= 0x012CL); g_83 = (safe_sub_func_uint64_t_u_u((l_77 = g_83), 0x78A82FB3486B6864LL)); return l_77; } int main (void) { int print_hash_value = 0; platform_main_begin(); crc32_gentab(); func_1(); transparent_crc(g_9, print_hash_value); transparent_crc(g_52, print_hash_value); transparent_crc(g_67, print_hash_value); transparent_crc(g_82, print_hash_value); transparent_crc(g_83, print_hash_value); transparent_crc(g_96, print_hash_value); transparent_crc(g_99, print_hash_value); transparent_crc(g_136, print_hash_value); transparent_crc(g_149, print_hash_value); transparent_crc(g_150, print_hash_value); transparent_crc_bytes (&g_163, sizeof(g_163), print_hash_value); transparent_crc(g_164, print_hash_value); transparent_crc(g_171, print_hash_value); transparent_crc(g_356, print_hash_value); transparent_crc_bytes (&g_405, sizeof(g_405), print_hash_value); transparent_crc(g_413, print_hash_value); transparent_crc(g_414, print_hash_value); transparent_crc(g_429, print_hash_value); transparent_crc(g_430, print_hash_value); transparent_crc(g_437, print_hash_value); transparent_crc(g_467, print_hash_value); transparent_crc(g_468, print_hash_value); transparent_crc(g_469, print_hash_value); transparent_crc(g_486, print_hash_value); transparent_crc(g_634, print_hash_value); transparent_crc(g_644, print_hash_value); transparent_crc_bytes (&g_717, sizeof(g_717), print_hash_value); transparent_crc(g_722, print_hash_value); transparent_crc(g_917, print_hash_value); transparent_crc(g_921, print_hash_value); transparent_crc(g_978, print_hash_value); transparent_crc(g_1090, print_hash_value); transparent_crc_bytes (&g_1142, sizeof(g_1142), print_hash_value); transparent_crc(g_1143, print_hash_value); transparent_crc(g_1249, print_hash_value); transparent_crc(g_1265, print_hash_value); transparent_crc(g_1294, print_hash_value); transparent_crc(g_1308, print_hash_value); transparent_crc(g_1383, print_hash_value); transparent_crc(g_1403, print_hash_value); transparent_crc(g_1407, print_hash_value); transparent_crc(g_1408, print_hash_value); transparent_crc(g_1409, print_hash_value); transparent_crc(g_1511, print_hash_value); transparent_crc(g_1512, print_hash_value); transparent_crc(g_1514, print_hash_value); transparent_crc(g_1582, print_hash_value); transparent_crc(g_1584, print_hash_value); transparent_crc(g_1585, print_hash_value); transparent_crc(g_1602, print_hash_value); transparent_crc_bytes (&g_1606, sizeof(g_1606), print_hash_value); transparent_crc(g_1639, print_hash_value); transparent_crc_bytes (&g_1649, sizeof(g_1649), print_hash_value); transparent_crc(g_1652, print_hash_value); transparent_crc(g_1703, print_hash_value); transparent_crc(g_1709, print_hash_value); platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value); return (unsigned char)(crc32_context); } ```

test_reduced.c

struct {
} main() {
}
minseongg commented 2 years ago

Does your implementation generate correct C code for test_reduced.c? (Check cargo run --features=build-bin --release --bin fuzz -- -p test_reduced.c)

If so, please send your src/c/write_c.rs to minseong.jang@kaist.ac.kr for more debugging.

Lee-Janggun commented 2 years ago

A new trial of reduction does not even produce parseable code

void(a)() { ; }
void main() {}

I sent you my (1) test_reduced.c, (2) test_polished.c, (3) write_c.rs, and (4) reduce-criteria.sh of this trial.

Lee-Janggun commented 2 years ago
minseongg commented 2 years ago

However, doesn't the make the fuzzer not do the intended purpose, which is "reduce the polished program to a smaller one with the same error", as the reduced program does not detect the error that the polished does?

Yes, I think that's one of the limitations of the current fuzzer because we do not have a logic to determine two errors are the same error. One workaround that I recommend is doing "generate test_reduced.c and resolve the error" repeatedly until there is no error in test_polished.c. I believe this will resolve all errors that occurred in test_polished.c..

Lee-Janggun commented 2 years ago

Ah ok, thank you! I think I understand more about the fuzzer.