2021-03-02 03:40 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000716Frama-CKernelpublic2014-02-12 16:54
Reporterregehr 
Assigned Tovirgile 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Product VersionFrama-C GIT, precise the release id 
Target VersionFixed in VersionFrama-C Nitrogen-20111001 
Summary0000716: crash from r11865
DescriptionSeen on Ubuntu 10.10 on x86.

regehr@home:~/tmp/3$ ~/z/frama-c/bin/toplevel.opt -val -slevel 1 foo_pp.c
[kernel] preprocessing with "gcc -C -E -I. foo_pp.c"
[kernel] The full backtrace is:
         Called from file "list.ml", line 57, characters 20-23
         Called from file "cil/src/frontc/cabs2cil.ml", line 1176, characters 16-47
         Called from file "cil/src/frontc/cabs2cil.ml", line 5778, characters 23-40
         Called from file "cil/src/frontc/cabs2cil.ml", line 5756, characters 16-50
         Called from file "cil/src/frontc/cabs2cil.ml", line 4967, characters 14-349
         Called from file "cil/src/frontc/cabs2cil.ml", line 5102, characters 16-53
         Called from file "cil/src/frontc/cabs2cil.ml", line 5096, characters 32-55
         Called from file "cil/src/frontc/cabs2cil.ml", line 5122, characters 29-58
         Called from file "cil/src/frontc/cabs2cil.ml", line 5102, characters 16-53
         Called from file "cil/src/frontc/cabs2cil.ml", line 5122, characters 29-58
         Called from file "cil/src/frontc/cabs2cil.ml", line 5727, characters 27-64
         Called from file "cil/src/frontc/cabs2cil.ml", line 5823, characters 11-40
         Called from file "cil/src/frontc/cabs2cil.ml", line 7463, characters 8-69
         Called from file "cil/src/frontc/cabs2cil.ml", line 7335, characters 25-48
         Called from file "list.ml", line 74, characters 24-34
         Called from file "cil/src/frontc/cabs2cil.ml", line 7324, characters 9-1023
         Called from file "cil/src/frontc/cabs2cil.ml", line 7448, characters 16-34
         Called from file "cil/src/frontc/cabs2cil.ml", line 7460, characters 18-42
         Called from file "cil/src/frontc/cabs2cil.ml", line 7335, characters 25-48
         Called from file "list.ml", line 74, characters 24-34
         Called from file "cil/src/frontc/cabs2cil.ml", line 7324, characters 9-1023
         Called from file "cil/src/frontc/cabs2cil.ml", line 7017, characters 14-321
         Called from file "cil/src/frontc/cabs2cil.ml", line 7874, characters 12-31
         Called from file "list.ml", line 69, characters 12-15
         Called from file "cil/src/frontc/cabs2cil.ml", line 7905, characters 2-26
         Called from file "cil/src/frontc/frontc.ml", line 43, characters 19-22
         Called from file "src/kernel/file.ml", line 651, characters 27-46
         Called from file "src/kernel/file.ml", line 698, characters 16-23
         Called from file "list.ml", line 74, characters 24-34
         Called from file "src/kernel/file.ml", line 695, characters 6-318
         Called from file "src/kernel/file.ml", line 1177, characters 12-30
         Called from file "src/kernel/file.ml", line 1265, characters 4-27
         Called from file "src/kernel/ast.ml", line 59, characters 2-28
         Called from file "src/kernel/ast.ml", line 66, characters 53-71
         Called from file "src/kernel/globals.ml", line 489, characters 2-16
         Called from file "src/value/eval.ml", line 5407, characters 22-44
         Re-raised at file "src/value/eval.ml", line 5424, characters 47-50
         Called from file "src/project/state_builder.ml", line 1025, characters 2-6
         Re-raised at file "src/project/state_builder.ml", line 1029, characters 8-11
         Called from file "src/value/register.ml", line 59, characters 4-24
         Called from file "queue.ml", line 134, characters 6-20
         Called from file "src/kernel/boot.ml", line 36, characters 4-20
         Called from file "src/kernel/cmdline.ml", line 713, characters 2-9
         Called from file "src/kernel/cmdline.ml", line 195, characters 4-8
         
         Unexpected error (File "cil/src/frontc/cabs2cil.ml", line 1173, characters 17-23: Assertion failed).
         Please report as 'crash' at http://bts.frama-c.com/
         Note that a backtrace alone often does not have information to
         understand the bug. Guidelines for reporting bugs are at:
         http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines
Additional InformationThis is a front-end bug as it occurs without the -val option (bin/toplevel.opt ~/Downloads/foo_pp.c ).

Workaround: if this bug happens too often and causes wasted time, use option -no-allow-duplication to circumvent it.

This is where we regret to have forked CIL. It was unavoidable, but we'll have to check if the bug appears in original CIL too and report it there if it does.
TagsNo tags attached.
Attached Files
  • c file icon foo_pp.c (61,730 bytes) 2011-02-12 08:23 -
    # 1 "foo.c"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "foo.c"
    # 10 "foo.c"
    # 1 "/mnt/z/csmith/runtime/random_inc.h" 1
    # 51 "/mnt/z/csmith/runtime/random_inc.h"
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 1 3 4
    # 11 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 3 4
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/syslimits.h" 1 3 4
    
    
    
    
    
    
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 1 3 4
    # 122 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 3 4
    # 1 "/usr/include/limits.h" 1 3 4
    # 27 "/usr/include/limits.h" 3 4
    # 1 "/usr/include/features.h" 1 3 4
    # 322 "/usr/include/features.h" 3 4
    # 1 "/usr/include/bits/predefs.h" 1 3 4
    # 323 "/usr/include/features.h" 2 3 4
    # 355 "/usr/include/features.h" 3 4
    # 1 "/usr/include/sys/cdefs.h" 1 3 4
    # 353 "/usr/include/sys/cdefs.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 354 "/usr/include/sys/cdefs.h" 2 3 4
    # 356 "/usr/include/features.h" 2 3 4
    # 387 "/usr/include/features.h" 3 4
    # 1 "/usr/include/gnu/stubs.h" 1 3 4
    
    
    
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 5 "/usr/include/gnu/stubs.h" 2 3 4
    
    
    # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
    # 8 "/usr/include/gnu/stubs.h" 2 3 4
    # 388 "/usr/include/features.h" 2 3 4
    # 28 "/usr/include/limits.h" 2 3 4
    # 145 "/usr/include/limits.h" 3 4
    # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
    # 157 "/usr/include/bits/posix1_lim.h" 3 4
    # 1 "/usr/include/bits/local_lim.h" 1 3 4
    # 39 "/usr/include/bits/local_lim.h" 3 4
    # 1 "/usr/include/linux/limits.h" 1 3 4
    # 40 "/usr/include/bits/local_lim.h" 2 3 4
    # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
    # 146 "/usr/include/limits.h" 2 3 4
    
    
    
    # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
    # 150 "/usr/include/limits.h" 2 3 4
    # 123 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 2 3 4
    # 8 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/syslimits.h" 2 3 4
    # 12 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed/limits.h" 2 3 4
    # 52 "/mnt/z/csmith/runtime/random_inc.h" 2
    
    
    
    # 1 "/usr/include/stdint.h" 1 3 4
    # 27 "/usr/include/stdint.h" 3 4
    # 1 "/usr/include/bits/wchar.h" 1 3 4
    # 28 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/stdint.h" 2 3 4
    # 37 "/usr/include/stdint.h" 3 4
    typedef signed char int8_t;
    typedef short int int16_t;
    typedef int int32_t;
    
    
    
    __extension__
    typedef long long int int64_t;
    
    
    
    
    typedef unsigned char uint8_t;
    typedef unsigned short int uint16_t;
    
    typedef unsigned int uint32_t;
    
    
    
    
    
    __extension__
    typedef unsigned long long int uint64_t;
    
    
    
    
    
    
    typedef signed char int_least8_t;
    typedef short int int_least16_t;
    typedef int int_least32_t;
    
    
    
    __extension__
    typedef long long int int_least64_t;
    
    
    
    typedef unsigned char uint_least8_t;
    typedef unsigned short int uint_least16_t;
    typedef unsigned int uint_least32_t;
    
    
    
    __extension__
    typedef unsigned long long int uint_least64_t;
    
    
    
    
    
    
    typedef signed char int_fast8_t;
    
    
    
    
    
    typedef int int_fast16_t;
    typedef int int_fast32_t;
    __extension__
    typedef long long int int_fast64_t;
    
    
    
    typedef unsigned char uint_fast8_t;
    
    
    
    
    
    typedef unsigned int uint_fast16_t;
    typedef unsigned int uint_fast32_t;
    __extension__
    typedef unsigned long long int uint_fast64_t;
    # 126 "/usr/include/stdint.h" 3 4
    typedef int intptr_t;
    
    
    typedef unsigned int uintptr_t;
    # 138 "/usr/include/stdint.h" 3 4
    __extension__
    typedef long long int intmax_t;
    __extension__
    typedef unsigned long long int uintmax_t;
    # 56 "/mnt/z/csmith/runtime/random_inc.h" 2
    
    
    
    
    # 1 "/usr/include/assert.h" 1 3 4
    # 68 "/usr/include/assert.h" 3 4
    
    
    
    extern void __assert_fail (__const char *__assertion, __const char *__file,
          unsigned int __line, __const char *__function)
         __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    extern void __assert_perror_fail (int __errnum, __const char *__file,
          unsigned int __line,
          __const char *__function)
         __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    
    extern void __assert (const char *__assertion, const char *__file, int __line)
         __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    # 61 "/mnt/z/csmith/runtime/random_inc.h" 2
    # 78 "/mnt/z/csmith/runtime/random_inc.h"
    # 1 "/mnt/z/csmith/runtime/platform_generic.h" 1
    # 40 "/mnt/z/csmith/runtime/platform_generic.h"
    # 1 "/usr/include/stdio.h" 1 3 4
    # 30 "/usr/include/stdio.h" 3 4
    
    
    
    
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include/stddef.h" 1 3 4
    # 211 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include/stddef.h" 3 4
    typedef unsigned int size_t;
    # 35 "/usr/include/stdio.h" 2 3 4
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    # 28 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/bits/types.h" 2 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;
    
    
    
    
    __extension__ typedef signed long long int __int64_t;
    __extension__ typedef unsigned long long int __uint64_t;
    
    
    
    
    
    
    
    __extension__ typedef long long int __quad_t;
    __extension__ typedef unsigned long long int __u_quad_t;
    # 131 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/typesizes.h" 1 3 4
    # 132 "/usr/include/bits/types.h" 2 3 4
    
    
    __extension__ typedef __u_quad_t __dev_t;
    __extension__ typedef unsigned int __uid_t;
    __extension__ typedef unsigned int __gid_t;
    __extension__ typedef unsigned long int __ino_t;
    __extension__ typedef __u_quad_t __ino64_t;
    __extension__ typedef unsigned int __mode_t;
    __extension__ typedef unsigned int __nlink_t;
    __extension__ typedef long int __off_t;
    __extension__ typedef __quad_t __off64_t;
    __extension__ typedef int __pid_t;
    __extension__ typedef struct { int __val[2]; } __fsid_t;
    __extension__ typedef long int __clock_t;
    __extension__ typedef unsigned long int __rlim_t;
    __extension__ typedef __u_quad_t __rlim64_t;
    __extension__ typedef unsigned int __id_t;
    __extension__ typedef long int __time_t;
    __extension__ typedef unsigned int __useconds_t;
    __extension__ typedef long int __suseconds_t;
    
    __extension__ typedef int __daddr_t;
    __extension__ typedef long int __swblk_t;
    __extension__ typedef int __key_t;
    
    
    __extension__ typedef int __clockid_t;
    
    
    __extension__ typedef void * __timer_t;
    
    
    __extension__ typedef long int __blksize_t;
    
    
    
    
    __extension__ typedef long int __blkcnt_t;
    __extension__ typedef __quad_t __blkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsblkcnt_t;
    __extension__ typedef __u_quad_t __fsblkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsfilcnt_t;
    __extension__ typedef __u_quad_t __fsfilcnt64_t;
    
    __extension__ typedef int __ssize_t;
    
    
    
    typedef __off64_t __loff_t;
    typedef __quad_t *__qaddr_t;
    typedef char *__caddr_t;
    
    
    __extension__ typedef int __intptr_t;
    
    
    __extension__ typedef unsigned int __socklen_t;
    # 37 "/usr/include/stdio.h" 2 3 4
    # 45 "/usr/include/stdio.h" 3 4
    struct _IO_FILE;
    
    
    
    typedef struct _IO_FILE FILE;
    
    
    
    
    
    # 65 "/usr/include/stdio.h" 3 4
    typedef struct _IO_FILE __FILE;
    # 75 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/libio.h" 1 3 4
    # 32 "/usr/include/libio.h" 3 4
    # 1 "/usr/include/_G_config.h" 1 3 4
    # 15 "/usr/include/_G_config.h" 3 4
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include/stddef.h" 1 3 4
    # 16 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/wchar.h" 1 3 4
    # 83 "/usr/include/wchar.h" 3 4
    typedef struct
    {
      int __count;
      union
      {
    
        unsigned int __wch;
    
    
    
        char __wchb[4];
      } __value;
    } __mbstate_t;
    # 21 "/usr/include/_G_config.h" 2 3 4
    
    typedef struct
    {
      __off_t __pos;
      __mbstate_t __state;
    } _G_fpos_t;
    typedef struct
    {
      __off64_t __pos;
      __mbstate_t __state;
    } _G_fpos64_t;
    # 53 "/usr/include/_G_config.h" 3 4
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
    typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
    typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
    # 33 "/usr/include/libio.h" 2 3 4
    # 53 "/usr/include/libio.h" 3 4
    # 1 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include/stdarg.h" 1 3 4
    # 40 "/usr/lib/gcc/i686-linux-gnu/4.4.5/include/stdarg.h" 3 4
    typedef __builtin_va_list __gnuc_va_list;
    # 54 "/usr/include/libio.h" 2 3 4
    # 170 "/usr/include/libio.h" 3 4
    struct _IO_jump_t; struct _IO_FILE;
    # 180 "/usr/include/libio.h" 3 4
    typedef void _IO_lock_t;
    
    
    
    
    
    struct _IO_marker {
      struct _IO_marker *_next;
      struct _IO_FILE *_sbuf;
    
    
    
      int _pos;
    # 203 "/usr/include/libio.h" 3 4
    };
    
    
    enum __codecvt_result
    {
      __codecvt_ok,
      __codecvt_partial,
      __codecvt_error,
      __codecvt_noconv
    };
    # 271 "/usr/include/libio.h" 3 4
    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;
    # 319 "/usr/include/libio.h" 3 4
      __off64_t _offset;
    # 328 "/usr/include/libio.h" 3 4
      void *__pad1;
      void *__pad2;
      void *__pad3;
      void *__pad4;
      size_t __pad5;
    
      int _mode;
    
      char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
    
    };
    
    
    typedef struct _IO_FILE _IO_FILE;
    
    
    struct _IO_FILE_plus;
    
    extern struct _IO_FILE_plus _IO_2_1_stdin_;
    extern struct _IO_FILE_plus _IO_2_1_stdout_;
    extern struct _IO_FILE_plus _IO_2_1_stderr_;
    # 364 "/usr/include/libio.h" 3 4
    typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
    
    
    
    
    
    
    
    typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
         size_t __n);
    
    
    
    
    
    
    
    typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
    
    
    typedef int __io_close_fn (void *__cookie);
    # 416 "/usr/include/libio.h" 3 4
    extern int __underflow (_IO_FILE *);
    extern int __uflow (_IO_FILE *);
    extern int __overflow (_IO_FILE *, int);
    # 460 "/usr/include/libio.h" 3 4
    extern int _IO_getc (_IO_FILE *__fp);
    extern int _IO_putc (int __c, _IO_FILE *__fp);
    extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    
    extern int _IO_peekc_locked (_IO_FILE *__fp);
    
    
    
    
    
    extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    # 490 "/usr/include/libio.h" 3 4
    extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
       __gnuc_va_list, int *__restrict);
    extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
        __gnuc_va_list);
    extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
    extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
    
    extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
    extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
    
    extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
    # 76 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    typedef __gnuc_va_list va_list;
    # 91 "/usr/include/stdio.h" 3 4
    typedef __off_t off_t;
    # 103 "/usr/include/stdio.h" 3 4
    typedef __ssize_t ssize_t;
    
    
    
    
    
    
    
    typedef _G_fpos_t fpos_t;
    
    
    
    
    # 161 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
    # 162 "/usr/include/stdio.h" 2 3 4
    
    
    
    extern struct _IO_FILE *stdin;
    extern struct _IO_FILE *stdout;
    extern struct _IO_FILE *stderr;
    
    
    
    
    
    
    
    extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
    
    extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    extern int renameat (int __oldfd, __const char *__old, int __newfd,
           __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern FILE *tmpfile (void) ;
    # 206 "/usr/include/stdio.h" 3 4
    extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
    
    
    
    
    
    extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
    # 224 "/usr/include/stdio.h" 3 4
    extern char *tempnam (__const char *__dir, __const char *__pfx)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
    
    
    
    
    
    
    
    
    extern int fclose (FILE *__stream);
    
    
    
    
    extern int fflush (FILE *__stream);
    
    # 249 "/usr/include/stdio.h" 3 4
    extern int fflush_unlocked (FILE *__stream);
    # 263 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    extern FILE *fopen (__const char *__restrict __filename,
          __const char *__restrict __modes) ;
    
    
    
    
    extern FILE *freopen (__const char *__restrict __filename,
            __const char *__restrict __modes,
            FILE *__restrict __stream) ;
    # 292 "/usr/include/stdio.h" 3 4
    
    # 303 "/usr/include/stdio.h" 3 4
    extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
    # 316 "/usr/include/stdio.h" 3 4
    extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
      __attribute__ ((__nothrow__)) ;
    
    
    
    
    extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
    
    
    
    
    
    
    extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
    
    
    
    extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
          int __modes, size_t __n) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
             size_t __size) __attribute__ ((__nothrow__));
    
    
    extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern int fprintf (FILE *__restrict __stream,
          __const char *__restrict __format, ...);
    
    
    
    
    extern int printf (__const char *__restrict __format, ...);
    
    extern int sprintf (char *__restrict __s,
          __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
           __gnuc_va_list __arg);
    
    
    
    
    extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
    
    extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
           __gnuc_va_list __arg) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int snprintf (char *__restrict __s, size_t __maxlen,
           __const char *__restrict __format, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
    
    extern int vsnprintf (char *__restrict __s, size_t __maxlen,
            __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
    
    # 414 "/usr/include/stdio.h" 3 4
    extern int vdprintf (int __fd, __const char *__restrict __fmt,
           __gnuc_va_list __arg)
         __attribute__ ((__format__ (__printf__, 2, 0)));
    extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
         __attribute__ ((__format__ (__printf__, 2, 3)));
    
    
    
    
    
    
    
    
    extern int fscanf (FILE *__restrict __stream,
         __const char *__restrict __format, ...) ;
    
    
    
    
    extern int scanf (__const char *__restrict __format, ...) ;
    
    extern int sscanf (__const char *__restrict __s,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    # 445 "/usr/include/stdio.h" 3 4
    extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") ;
    
    
    extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") ;
    
    extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__));
    # 465 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    
    
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
          __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 2, 0))) ;
    
    
    
    
    
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 1, 0))) ;
    
    
    extern int vsscanf (__const char *__restrict __s,
          __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 496 "/usr/include/stdio.h" 3 4
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0))) ;
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
    
         __attribute__ ((__format__ (__scanf__, 1, 0))) ;
    extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 524 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    
    
    
    extern int fgetc (FILE *__stream);
    extern int getc (FILE *__stream);
    
    
    
    
    
    extern int getchar (void);
    
    # 552 "/usr/include/stdio.h" 3 4
    extern int getc_unlocked (FILE *__stream);
    extern int getchar_unlocked (void);
    # 563 "/usr/include/stdio.h" 3 4
    extern int fgetc_unlocked (FILE *__stream);
    
    
    
    
    
    
    
    
    
    
    
    extern int fputc (int __c, FILE *__stream);
    extern int putc (int __c, FILE *__stream);
    
    
    
    
    
    extern int putchar (int __c);
    
    # 596 "/usr/include/stdio.h" 3 4
    extern int fputc_unlocked (int __c, FILE *__stream);
    
    
    
    
    
    
    
    extern int putc_unlocked (int __c, FILE *__stream);
    extern int putchar_unlocked (int __c);
    
    
    
    
    
    
    extern int getw (FILE *__stream);
    
    
    extern int putw (int __w, FILE *__stream);
    
    
    
    
    
    
    
    
    extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
         ;
    
    
    
    
    
    
    extern char *gets (char *__s) ;
    
    # 658 "/usr/include/stdio.h" 3 4
    extern __ssize_t __getdelim (char **__restrict __lineptr,
              size_t *__restrict __n, int __delimiter,
              FILE *__restrict __stream) ;
    extern __ssize_t getdelim (char **__restrict __lineptr,
            size_t *__restrict __n, int __delimiter,
            FILE *__restrict __stream) ;
    
    
    
    
    
    
    
    extern __ssize_t getline (char **__restrict __lineptr,
           size_t *__restrict __n,
           FILE *__restrict __stream) ;
    
    
    
    
    
    
    
    
    extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
    
    
    
    
    
    extern int puts (__const char *__s);
    
    
    
    
    
    
    extern int ungetc (int __c, FILE *__stream);
    
    
    
    
    
    
    extern size_t fread (void *__restrict __ptr, size_t __size,
           size_t __n, FILE *__restrict __stream) ;
    
    
    
    
    extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
            size_t __n, FILE *__restrict __s);
    
    # 730 "/usr/include/stdio.h" 3 4
    extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
             size_t __n, FILE *__restrict __stream) ;
    extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
              size_t __n, FILE *__restrict __stream);
    
    
    
    
    
    
    
    
    extern int fseek (FILE *__stream, long int __off, int __whence);
    
    
    
    
    extern long int ftell (FILE *__stream) ;
    
    
    
    
    extern void rewind (FILE *__stream);
    
    # 766 "/usr/include/stdio.h" 3 4
    extern int fseeko (FILE *__stream, __off_t __off, int __whence);
    
    
    
    
    extern __off_t ftello (FILE *__stream) ;
    # 785 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
    
    
    
    
    extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
    # 808 "/usr/include/stdio.h" 3 4
    
    # 817 "/usr/include/stdio.h" 3 4
    
    
    extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
    
    extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    
    extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
    extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    
    
    
    
    
    extern void perror (__const char *__s);
    
    
    
    
    
    
    # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
    # 27 "/usr/include/bits/sys_errlist.h" 3 4
    extern int sys_nerr;
    extern __const char *__const sys_errlist[];
    # 847 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    
    extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    # 866 "/usr/include/stdio.h" 3 4
    extern FILE *popen (__const char *__command, __const char *__modes) ;
    
    
    
    
    
    extern int pclose (FILE *__stream);
    
    
    
    
    
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    # 906 "/usr/include/stdio.h" 3 4
    extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
    # 936 "/usr/include/stdio.h" 3 4
    
    # 41 "/mnt/z/csmith/runtime/platform_generic.h" 2
    
    
    static void
    platform_main_begin(void)
    {
    
    }
    
    static void
    platform_main_end(uint32_t crc)
    {
    
        Frama_C_dump_assert_each();
    
     printf ("checksum = %X\n", crc);
    }
    # 79 "/mnt/z/csmith/runtime/random_inc.h" 2
    # 96 "/mnt/z/csmith/runtime/random_inc.h"
    # 1 "/mnt/z/csmith/runtime/safe_math.h" 1
    # 13 "/mnt/z/csmith/runtime/safe_math.h"
    static int8_t
    (safe_unary_minus_func_int8_t_s)(int8_t si)
    {
      return
    
    
    
    
    
    
        -si;
    }
    
    static int8_t
    (safe_add_func_int8_t_s_s)(int8_t si1, int8_t si2)
    {
      return
    
    
    
    
    
    
        (si1 + si2);
    }
    
    static int8_t
    (safe_sub_func_int8_t_s_s)(int8_t si1, int8_t si2)
    {
      return
    
    
    
    
    
    
        (si1 - si2);
    }
    
    static int8_t
    (safe_mul_func_int8_t_s_s)(int8_t si1, int8_t si2)
    {
      return
    
    
    
    
    
    
        si1 * si2;
    }
    
    static int8_t
    (safe_mod_func_int8_t_s_s)(int8_t si1, int8_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-128)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int8_t
    (safe_div_func_int8_t_s_s)(int8_t si1, int8_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-128)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int8_t
    (safe_lshift_func_int8_t_s_s)(int8_t left, int right)
    {
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((127) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int8_t
    (safe_lshift_func_int8_t_s_u)(int8_t left, unsigned int right)
    {
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((127) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    static int16_t
    (safe_unary_minus_func_int16_t_s)(int16_t si)
    {
      return
    
    
    
    
    
    
        -si;
    }
    
    static int16_t
    (safe_add_func_int16_t_s_s)(int16_t si1, int16_t si2)
    {
      return
    
    
    
    
    
    
        (si1 + si2);
    }
    
    static int16_t
    (safe_sub_func_int16_t_s_s)(int16_t si1, int16_t si2)
    {
      return
    
    
    
    
    
    
        (si1 - si2);
    }
    
    static int16_t
    (safe_mul_func_int16_t_s_s)(int16_t si1, int16_t si2)
    {
      return
    
    
    
    
    
    
        si1 * si2;
    }
    
    static int16_t
    (safe_mod_func_int16_t_s_s)(int16_t si1, int16_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-32767-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int16_t
    (safe_div_func_int16_t_s_s)(int16_t si1, int16_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-32767-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int16_t
    (safe_lshift_func_int16_t_s_s)(int16_t left, int right)
    {
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((32767) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int16_t
    (safe_lshift_func_int16_t_s_u)(int16_t left, unsigned int right)
    {
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((32767) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    static int32_t
    (safe_unary_minus_func_int32_t_s)(int32_t si)
    {
      return
    
    
        (si==(-2147483647-1)) ?
        ((si)) :
    
    
        -si;
    }
    
    static int32_t
    (safe_add_func_int32_t_s_s)(int32_t si1, int32_t si2)
    {
      return
    
    
        (((si1>0) && (si2>0) && (si1 > ((2147483647)-si2))) || ((si1<0) && (si2<0) && (si1 < ((-2147483647-1)-si2)))) ?
        ((si1)) :
    
    
        (si1 + si2);
    }
    
    static int32_t
    (safe_sub_func_int32_t_s_s)(int32_t si1, int32_t si2)
    {
      return
    
    
        (((si1^si2) & (((si1 ^ ((si1^si2) & (~(2147483647))))-si2)^si2)) < 0) ?
        ((si1)) :
    
    
        (si1 - si2);
    }
    
    static int32_t
    (safe_mul_func_int32_t_s_s)(int32_t si1, int32_t si2)
    {
      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;
    }
    
    static int32_t
    (safe_mod_func_int32_t_s_s)(int32_t si1, int32_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-2147483647-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int32_t
    (safe_div_func_int32_t_s_s)(int32_t si1, int32_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-2147483647-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int32_t
    (safe_lshift_func_int32_t_s_s)(int32_t left, int right)
    {
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((2147483647) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int32_t
    (safe_lshift_func_int32_t_s_u)(int32_t left, unsigned int right)
    {
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((2147483647) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    
    static int64_t
    (safe_unary_minus_func_int64_t_s)(int64_t si)
    {
      return
    
    
        (si==(-9223372036854775807LL -1)) ?
        ((si)) :
    
    
        -si;
    }
    
    static int64_t
    (safe_add_func_int64_t_s_s)(int64_t si1, int64_t si2)
    {
      return
    
    
        (((si1>0) && (si2>0) && (si1 > ((9223372036854775807LL)-si2))) || ((si1<0) && (si2<0) && (si1 < ((-9223372036854775807LL -1)-si2)))) ?
        ((si1)) :
    
    
        (si1 + si2);
    }
    
    static int64_t
    (safe_sub_func_int64_t_s_s)(int64_t si1, int64_t si2)
    {
      return
    
    
        (((si1^si2) & (((si1 ^ ((si1^si2) & (~(9223372036854775807LL))))-si2)^si2)) < 0) ?
        ((si1)) :
    
    
        (si1 - si2);
    }
    
    static int64_t
    (safe_mul_func_int64_t_s_s)(int64_t si1, int64_t si2)
    {
      return
    
    
        (((si1 > 0) && (si2 > 0) && (si1 > ((9223372036854775807LL) / si2))) || ((si1 > 0) && (si2 <= 0) && (si2 < ((-9223372036854775807LL -1) / si1))) || ((si1 <= 0) && (si2 > 0) && (si1 < ((-9223372036854775807LL -1) / si2))) || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ((9223372036854775807LL) / si1)))) ?
        ((si1)) :
    
    
        si1 * si2;
    }
    
    static int64_t
    (safe_mod_func_int64_t_s_s)(int64_t si1, int64_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-9223372036854775807LL -1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int64_t
    (safe_div_func_int64_t_s_s)(int64_t si1, int64_t si2)
    {
      return
    
        ((si2 == 0) || ((si1 == (-9223372036854775807LL -1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int64_t
    (safe_lshift_func_int64_t_s_s)(int64_t left, int right)
    {
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((9223372036854775807LL) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int64_t
    (safe_lshift_func_int64_t_s_u)(int64_t left, unsigned int right)
    {
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((9223372036854775807LL) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    
    
    
    
    static uint8_t
    (safe_unary_minus_func_uint8_t_u)(uint8_t ui)
    {
      return -ui;
    }
    
    static uint8_t
    (safe_add_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2)
    {
      return ui1 + ui2;
    }
    
    static uint8_t
    (safe_sub_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2)
    {
      return ui1 - ui2;
    }
    
    static uint8_t
    (safe_mul_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2)
    {
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint8_t
    (safe_mod_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint8_t
    (safe_div_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint8_t
    (safe_lshift_func_uint8_t_u_s)(uint8_t left, int right)
    {
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((255) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint8_t
    (safe_lshift_func_uint8_t_u_u)(uint8_t left, unsigned int right)
    {
      return
    
        ((((unsigned int)right) >= 32) || (left > ((255) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    static uint16_t
    (safe_unary_minus_func_uint16_t_u)(uint16_t ui)
    {
      return -ui;
    }
    
    static uint16_t
    (safe_add_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2)
    {
      return ui1 + ui2;
    }
    
    static uint16_t
    (safe_sub_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2)
    {
      return ui1 - ui2;
    }
    
    static uint16_t
    (safe_mul_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2)
    {
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint16_t
    (safe_mod_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint16_t
    (safe_div_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint16_t
    (safe_lshift_func_uint16_t_u_s)(uint16_t left, int right)
    {
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((65535) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint16_t
    (safe_lshift_func_uint16_t_u_u)(uint16_t left, unsigned int right)
    {
      return
    
        ((((unsigned int)right) >= 32) || (left > ((65535) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    static uint32_t
    (safe_unary_minus_func_uint32_t_u)(uint32_t ui)
    {
      return -ui;
    }
    
    static uint32_t
    (safe_add_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2)
    {
      return ui1 + ui2;
    }
    
    static uint32_t
    (safe_sub_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2)
    {
      return ui1 - ui2;
    }
    
    static uint32_t
    (safe_mul_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2)
    {
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint32_t
    (safe_mod_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint32_t
    (safe_div_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint32_t
    (safe_lshift_func_uint32_t_u_s)(uint32_t left, int right)
    {
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((4294967295U) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint32_t
    (safe_lshift_func_uint32_t_u_u)(uint32_t left, unsigned int right)
    {
      return
    
        ((((unsigned int)right) >= 32) || (left > ((4294967295U) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    
    
    
    
    static uint64_t
    (safe_unary_minus_func_uint64_t_u)(uint64_t ui)
    {
      return -ui;
    }
    
    static uint64_t
    (safe_add_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2)
    {
      return ui1 + ui2;
    }
    
    static uint64_t
    (safe_sub_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2)
    {
      return ui1 - ui2;
    }
    
    static uint64_t
    (safe_mul_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2)
    {
      return ((unsigned long long int)ui1) * ((unsigned long long int)ui2);
    }
    
    static uint64_t
    (safe_mod_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint64_t
    (safe_div_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2)
    {
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint64_t
    (safe_lshift_func_uint64_t_u_s)(uint64_t left, int right)
    {
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((18446744073709551615ULL) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint64_t
    (safe_lshift_func_uint64_t_u_u)(uint64_t left, unsigned int right)
    {
      return
    
        ((((unsigned int)right) >= 32) || (left > ((18446744073709551615ULL) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static 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));
    }
    
    static 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));
    }
    # 97 "/mnt/z/csmith/runtime/random_inc.h" 2
    # 11 "foo.c" 2
    
    volatile uint64_t csmith_sink_ = 0;
    
    long __undefined;
    
    
    
    int32_t g_3 = 0L;
    uint32_t g_4 = 0x5C62E089L;
    int32_t g_5 = 0L;
    uint8_t g_20 = 6L;
    int64_t g_44 = 0x1D1A932DA3BB1D44LL;
    int32_t g_63 = 0xF4A1AB70L;
    int8_t g_141 = -1L;
    int64_t g_165 = -1L;
    int32_t g_171 = 0L;
    int8_t g_275 = 0L;
    int8_t g_276 = -1L;
    int16_t g_404 = 0xAD97L;
    uint8_t g_467 = 8L;
    uint64_t g_500 = 0x8096DA207F862143LL;
    int32_t g_501 = 0x8EB5C6D1L;
    
    
    
    int32_t func_1(void);
    int32_t func_17( const int32_t p_18);
    int32_t func_23(uint32_t p_24, uint32_t p_25, int32_t p_26, const uint8_t p_27, uint64_t p_28);
     const int32_t func_29(uint64_t p_30, uint32_t p_31);
    int32_t func_48(uint8_t p_49, uint32_t p_50, uint32_t p_51, uint32_t p_52);
    uint8_t func_56(int32_t p_57);
    int32_t func_70(uint64_t p_71, const int32_t p_72, int32_t p_73, const uint32_t p_74, uint8_t p_75);
    int32_t func_78(int64_t p_79, uint32_t p_80, int32_t p_81, const uint32_t p_82, uint32_t p_83);
    int32_t func_104(int32_t p_105, int32_t p_106);
    int32_t func_110(uint32_t p_111, uint32_t p_112, uint32_t p_113, uint32_t p_114, int32_t p_115);
    # 54 "foo.c"
    int32_t func_1(void)
    {
        uint32_t l_2 = 5L;
        int32_t l_407 = 0L;
        int8_t l_449 = 6L;
        uint8_t l_514 = 1L;
        uint64_t l_549 = 9L;
        int32_t l_560 = 5L;
        if (l_2)
        {
            uint8_t l_14 = 0L;
            int32_t l_437 = 0x6C99FC5AL;
            int64_t l_522 = 8L;
            int16_t l_525 = 0xEA0CL;
            uint32_t l_541 = -1L;
            uint8_t l_546 = -5L;
            g_4 &= g_3;
            g_5 = 5L;
            if ((safe_div_func_uint8_t_u_u ((safe_sub_func_uint16_t_u_u ((safe_lshift_func_int8_t_s_u ((safe_sub_func_uint64_t_u_u (((l_2 && g_5) > l_14), ((safe_mul_func_int16_t_s_s (l_2, l_2)) > func_17(l_14)))), ((l_14 < (g_4 && g_3)) <= g_3))), ((((safe_sub_func_int16_t_s_s (l_14, g_4)) < func_23(l_14, l_14, g_44, l_2, l_14)) && (func_70(g_5, l_2, l_14, l_2, l_14) || (l_14 >= g_171))) && ((!g_404) | ((g_275 & g_276) || (safe_mod_func_uint16_t_u_u (l_14, g_44))))))), l_407)))
            {
                uint32_t l_410 = 0x5E65BEFBL;
                int32_t l_411 = 1L;
                l_411 = (safe_sub_func_int16_t_s_s ((g_5 ^ l_2), (g_20 | (g_275 || (func_56(l_410) <= l_410)))));
                g_171 = l_14;
            }
            else
            {
                int8_t l_414 = 0x7DL;
                 const int32_t l_424 = 0xFEF1ACA3L;
                uint16_t l_450 = 0x52C2L;
                uint32_t l_477 = -1L;
                int32_t l_508 = 1L;
                int8_t l_517 = 0xB5L;
                int8_t l_518 = -3L;
                if ((safe_sub_func_int8_t_s_s ((g_165 & l_14), l_414)))
                {
                    int16_t l_430 = -4L;
                    int8_t l_444 = 0x22L;
                    uint16_t l_462 = 0x24BAL;
                    for (l_414 = 0; (l_414 <= 0); l_414 = safe_add_func_uint64_t_u_u (l_414, 1))
                    {
                        uint32_t l_425 = 0L;
                        int32_t l_468 = -1L;
                        for (g_171 = 0; (g_171 >= 0); g_171 = safe_add_func_uint8_t_u_u (g_171, 9))
                        {
                            int64_t l_423 = 0xC8AC4384E5074FC5LL;
                            g_171 = g_141;
                            l_437 &= ((safe_mod_func_uint32_t_u_u ((safe_lshift_func_int16_t_s_u (((~l_14) <= (func_48(g_141, g_171, l_414, l_423) != func_78(g_3, g_4, g_3, g_275, l_423))), (l_424 ^ ((g_404 | l_424) >= (g_275 != l_425))))), (0x99AC3B92L != ((safe_mul_func_int16_t_s_s ((+l_407), (safe_sub_func_int64_t_s_s (g_165, l_430)))) >= g_4)))) && (safe_add_func_uint16_t_u_u (func_104(l_407, func_78((-1L & (safe_mod_func_uint32_t_u_u (l_430, l_430))), (func_110(g_276, l_425, l_425, l_14, g_20) < (safe_rshift_func_uint16_t_u_s (l_14, l_430))), l_430, (~(g_3 > l_430)), g_5)), (~l_423))));
                            g_171 = (g_20 | 0L);
                            g_467 &= (safe_sub_func_uint8_t_u_u (0xB33CE81CL, func_70((safe_div_func_uint64_t_u_u ((safe_div_func_int32_t_s_s ((func_29(l_414, g_4) != (l_444 || l_437)), (safe_mod_func_uint8_t_u_u (func_56(g_4), (safe_rshift_func_uint8_t_u_s (l_449, l_450)))))), (safe_sub_func_uint32_t_u_u (0x43E5D3A1L, g_276)))), l_14, (safe_lshift_func_int16_t_s_u ((l_444 && g_5), (safe_div_func_uint8_t_u_u (l_444, g_20)))), ((safe_mul_func_int8_t_s_s (-1L, (safe_unary_minus_func_uint64_t_u ((safe_mod_func_uint16_t_u_u (l_423, l_462)))))) > ((func_48(g_5, l_14, g_3, g_4) <= (safe_sub_func_uint16_t_u_u (g_4, g_3))) <= (safe_lshift_func_int16_t_s_s (0x909A3CD5L, (l_423 == l_423))))), l_449)));
                        }
                        if (l_468)
                        {
                            return l_450;
                        }
                        else
                        {
                            l_437 = l_414;
                            return g_404;
                        }
                    }
                    if (g_5)
                        goto lbl_561;
                    return l_437;
                }
                else
                {
                     const int8_t l_482 = 0x9DL;
                    int32_t l_490 = 0x790D553AL;
                    int32_t l_495 = 0xA22B970DL;
                    for (l_437 = 0; (l_437 > -21); l_437 = safe_sub_func_int32_t_s_s (l_437, 1))
                    {
                        int64_t l_473 = 1L;
                        if ((l_450 < (safe_lshift_func_int16_t_s_u (g_275, -1L))))
                        {
                            l_473 = (g_275 & 0x2D77ED77L);
                        }
                        else
                        {
                            uint8_t l_476 = 6L;
                            int16_t l_487 = 0x760BL;
                            l_490 = ((safe_mod_func_uint64_t_u_u (func_110(l_476, l_477, (safe_sub_func_int32_t_s_s (g_404, g_5)), l_473, l_437), (safe_sub_func_uint16_t_u_u (g_20, l_482)))) > (!(safe_div_func_uint16_t_u_u ((func_78((safe_mod_func_uint64_t_u_u (g_4, g_276)), l_487, (g_5 ^ l_482), l_477, (safe_add_func_int16_t_s_s (g_63, g_467))) > func_56((g_275 && g_4))), func_56(-1L)))));
                            l_437 = l_437;
                            g_501 = ((((0x548FFBA5L | ((safe_sub_func_uint32_t_u_u (l_473, g_275)) || l_2)) ^ (safe_div_func_uint64_t_u_u (func_48((g_404 ^ l_476), l_495, (l_450 && g_276), (l_477 || l_473)), 9L))) >= (func_48(0x47L, (safe_mul_func_uint8_t_u_u ((safe_mod_func_uint64_t_u_u (g_63, g_3)), (g_500 <= g_4))), (+func_48(g_5, l_424, g_276, l_414)), l_473) | (l_14 != func_110(l_14, g_501, g_276, g_4, g_63)))) != (safe_sub_func_int16_t_s_s (((((safe_rshift_func_uint8_t_u_u (g_20, 0L)) & (g_276 < l_482)) != 1L) != g_4), 0L)));
                        }
                    }
                    g_171 |= l_2;
                    g_501 = l_495;
                }
    lbl_558:
                g_171 |= l_449;
                for (g_20 = 17; (g_20 != 8); g_20 = safe_sub_func_int8_t_s_s (g_20, 2))
                {
    lbl_526:
                    l_508 = l_437;
                    return g_501;
                }
                for (l_508 = 0; (l_508 > -23); l_508 = safe_sub_func_int32_t_s_s (l_508, 5))
                {
                    uint64_t l_511 = 0x6DF109158F80D540LL;
                    uint32_t l_521 = -1L;
                    int32_t l_556 = 1L;
                    if (func_78((func_78(l_437, g_275, (9L ^ l_511), (safe_div_func_uint64_t_u_u (((l_514 | g_501) >= (l_514 > g_20)), (g_500 | -3L))), g_4) != (((safe_add_func_uint32_t_u_u ((l_517 | l_518), l_514)) == func_110((safe_rshift_func_uint8_t_u_s (l_521, g_20)), g_501, (l_521 == l_437), l_522, g_141)) & (safe_sub_func_int8_t_s_s (g_500, l_525)))), -1L, g_20, l_450, l_407))
                    {
                        if (l_517)
                            goto lbl_526;
                        return l_517;
                    }
                    else
                    {
                         const uint32_t l_528 = -2L;
                        int32_t l_555 = 0x0EB5CE8CL;
                        if (l_514)
                            break;
                        if ((safe_unary_minus_func_int16_t_s (func_70(g_171, g_20, -7L, l_528, 0x8EL))))
                        {
                            g_501 = 6L;
                            return g_141;
                        }
                        else
                        {
                            g_501 = l_514;
                        }
                        if ((safe_mul_func_int16_t_s_s ((safe_mod_func_int16_t_s_s (l_518, g_467)), g_171)))
                        {
                             const int16_t l_535 = -5L;
                            int32_t l_536 = 1L;
                            g_501 |= (-3L > (safe_sub_func_uint16_t_u_u (g_141, (func_17(l_535) || 0xBAA61B47L))));
                            if (g_500)
                                goto lbl_557;
                            l_536 = l_414;
                            g_171 = (safe_sub_func_uint64_t_u_u (((safe_sub_func_uint32_t_u_u (((l_541 != l_437) <= g_404), func_56((safe_rshift_func_uint8_t_u_s ((safe_sub_func_uint32_t_u_u (l_528, g_500)), 0x57D9F95CL))))) > 0x5827224DL), l_546));
                        }
                        else
                        {
                            uint64_t l_550 = 0x0A60BC6B061BF074LL;
                            l_555 = ((((safe_add_func_uint64_t_u_u ((func_48(l_549, l_407, g_171, g_44) <= (l_550 >= g_500)), l_541)) != (((l_528 ^ l_414) | l_521) || func_56(g_44))) || func_29((((l_549 | g_501) && (safe_lshift_func_int16_t_s_s (g_467, g_501))) > (safe_div_func_uint8_t_u_u ((g_500 ^ l_511), func_17(l_550)))), l_2)) == 0x31B24D9DL);
                            return g_467;
                        }
                    }
    lbl_557:
                    l_556 = (func_29(-4L, l_508) | g_276);
                    if (l_517)
                        goto lbl_558;
                }
            }
        }
        else
        {
            uint32_t l_559 = 0L;
            return l_559;
        }
    lbl_561:
        l_560 = l_2;
        if (func_104(1L, g_467))
        {
            return g_501;
        }
        else
        {
            uint16_t l_562 = 1L;
            return l_562;
        }
    }
    
    
    
    
    
    
    
    int32_t func_17( const int32_t p_18)
    {
        int64_t l_19 = 0x823AAF5BFB66FEBFLL;
        g_20 = l_19;
        return p_18;
    }
    
    
    
    
    
    
    
    int32_t func_23(uint32_t p_24, uint32_t p_25, int32_t p_26, const uint8_t p_27, uint64_t p_28)
    {
        int8_t l_402 = 0L;
        int32_t l_403 = 1L;
        l_403 = func_29(g_171, l_402);
        return g_171;
    }
    
    
    
    
    
    
    
     const int32_t func_29(uint64_t p_30, uint32_t p_31)
    {
        int64_t l_38 = -6L;
         const uint8_t l_43 = 3L;
        int64_t l_386 = 9L;
        uint16_t l_389 = 0xBBC2L;
        int8_t l_394 = 4L;
        int32_t l_401 = 0x116458D0L;
        if ((((safe_add_func_int32_t_s_s ((p_31 <= g_3), (((p_31 == p_31) || (safe_rshift_func_int16_t_s_u (g_3, 0x14A9C79EL))) <= ((safe_lshift_func_uint8_t_u_u (g_3, 0x972E7EB6L)) && (l_38 & p_30))))) < (safe_div_func_int8_t_s_s ((safe_lshift_func_int8_t_s_u (l_38, -10L)), (g_3 ^ g_3)))) ^ l_43))
        {
            uint64_t l_47 = 0xEB1EC6C04840C2C6LL;
            int32_t l_53 = 0xF1939EFDL;
            g_44 = ((0xEC53A21BL != p_30) > 0x08FBDEDBL);
            l_53 &= ((!(safe_rshift_func_int16_t_s_s (l_47, (((l_38 >= p_31) <= (g_4 != g_4)) >= (func_48(p_31, p_31, g_3, p_30) > l_38))))) > p_31);
            g_171 = (safe_mul_func_uint16_t_u_u ((!func_48(func_56(((l_43 == g_3) & func_48(p_31, p_30, p_31, p_31))), (p_30 | func_70(p_31, (p_30 <= p_30), l_38, (safe_lshift_func_uint16_t_u_u (p_31, 0xD4F550B1L)), -7L)), l_43, l_43)), ((safe_div_func_int32_t_s_s (((func_48(g_3, g_63, l_47, l_386) > (safe_sub_func_int8_t_s_s (l_38, l_47))) ^ (0xA82FDAFAL && func_48(p_31, p_30, p_31, p_31))), (l_389 > (safe_lshift_func_uint8_t_u_u ((l_389 >= p_30), 0xBC67531CL))))) ^ ((safe_div_func_uint16_t_u_u ((func_56(l_53) ^ 0L), func_56(l_389))) != (func_78(l_394, p_31, l_53, l_53, l_394) <= (safe_mod_func_int16_t_s_s ((+g_63), (safe_mod_func_uint8_t_u_u (p_30, l_53)))))))));
            for (g_275 = 0; (g_275 < -22); g_275 = safe_add_func_uint8_t_u_u (g_275, 1))
            {
                return l_47;
            }
        }
        else
        {
            l_401 = 2L;
        }
        l_401 = g_275;
        return p_30;
    }
    
    
    
    
    
    
    
    int32_t func_48(uint8_t p_49, uint32_t p_50, uint32_t p_51, uint32_t p_52)
    {
        return g_3;
    }
    
    
    
    
    
    
    
    uint8_t func_56(int32_t p_57)
    {
        int8_t l_60 = 0L;
        int32_t l_66 = 0x579AB673L;
    lbl_69:
        l_66 = (safe_rshift_func_int16_t_s_s (func_48(l_60, l_60, func_48((safe_lshift_func_int16_t_s_s ((!(+l_60)), (g_4 > func_48(p_57, l_60, p_57, l_60)))), g_63, p_57, p_57), g_63), (safe_mul_func_uint16_t_u_u (p_57, (l_60 != 0xAB8F5B6EL)))));
        for (p_57 = 14; (p_57 < -6); p_57 = safe_sub_func_int32_t_s_s (p_57, 6))
        {
            if (l_60)
                goto lbl_69;
        }
        return g_5;
    }
    
    
    
    
    
    
    
    int32_t func_70(uint64_t p_71, const int32_t p_72, int32_t p_73, const uint32_t p_74, uint8_t p_75)
    {
        uint32_t l_88 = 0L;
        uint32_t l_311 = 0x9962E55FL;
        int32_t l_312 = 0x92736123L;
        uint8_t l_318 = 0xCAL;
        int8_t l_354 = 0xB3L;
        for (p_71 = 6; (p_71 >= 0); p_71 = safe_sub_func_int16_t_s_s (p_71, 1))
        {
            uint64_t l_87 = 0xB98F8D6FFBA4BDACLL;
            uint32_t l_99 = 9L;
            int32_t l_317 = 0x6830DA41L;
            int8_t l_332 = 0x5CL;
            if (func_78(g_63, (((func_78((safe_add_func_uint8_t_u_u (l_87, l_87)), (p_71 != g_3), -7L, p_75, p_74) < ((p_73 > p_74) < (l_88 || g_44))) & l_88) < (safe_add_func_int64_t_s_s ((safe_mod_func_int32_t_s_s (-1L, g_4)), (func_56(p_73) != (l_87 || (safe_sub_func_int64_t_s_s (g_5, l_87))))))), g_4, ((((safe_sub_func_int8_t_s_s ((safe_rshift_func_int8_t_s_s (l_88, 0xCCD28260L)), l_87)) || (p_71 == p_73)) || l_88) <= p_71), g_44))
            {
                return l_87;
            }
            else
            {
    lbl_103:
                if (l_99)
                    break;
    lbl_102:
                if (g_4)
                    continue;
                for (p_73 = 0; (p_73 != 0); p_73 = safe_add_func_uint8_t_u_u (p_73, 1))
                {
                    if (l_99)
                        goto lbl_102;
                    if (l_88)
                        goto lbl_103;
                    return p_72;
                }
            }
            if ((g_4 > p_73))
            {
                int64_t l_305 = 1L;
                int32_t l_313 = 1L;
                if ((p_74 | 0xB3286B00L))
                {
                    int8_t l_310 = -1L;
                    l_312 = func_104((safe_lshift_func_uint16_t_u_s ((safe_mod_func_int8_t_s_s ((safe_div_func_uint8_t_u_u (g_3, g_4)), func_78(p_71, l_305, (safe_mod_func_uint32_t_u_u (p_74, (safe_add_func_uint32_t_u_u (l_87, p_71)))), func_78(-1L, 0L, p_72, g_276, 0x124B1641L), ((l_310 || l_311) || g_5)))), -10L)), l_305);
                    l_313 = p_75;
                }
                else
                {
                    uint64_t l_322 = 0xA9337A3339974A84LL;
                    for (l_88 = 0; (l_88 != 3); l_88 = safe_add_func_uint64_t_u_u (l_88, 7))
                    {
                        int64_t l_316 = 1L;
                        l_312 = p_71;
                        if (l_316)
                        {
                            l_317 = -3L;
                            return l_318;
                        }
                        else
                        {
                            uint32_t l_323 = 0xA5136129L;
                            uint32_t l_337 = -1L;
                            l_323 = (+(((func_56(l_305) == func_78(p_73, p_73, p_74, l_313, 0x7475412CL)) && (safe_rshift_func_uint16_t_u_u (((safe_unary_minus_func_uint16_t_u (p_74)) <= func_110(g_275, g_165, g_275, g_275, l_316)), l_322))) & 0L));
                            g_171 = (safe_sub_func_uint32_t_u_u ((safe_sub_func_int8_t_s_s (func_110(l_99, (safe_sub_func_uint64_t_u_u (((safe_sub_func_uint32_t_u_u (p_74, g_5)) || g_275), func_78(g_141, l_332, l_316, g_4, (l_316 < l_87)))), g_141, 0xDDE1195CL, p_74), func_48((safe_div_func_int16_t_s_s (((g_276 == p_75) & 0x8DEA1316L), func_56(g_275))), l_316, g_4, g_4))), (p_75 != 6L)));
                            g_171 = func_78(l_317, func_48((l_88 & (safe_sub_func_int8_t_s_s (g_275, l_337))), p_75, (p_73 | p_75), ((-4L ^ ((g_275 || l_337) > (safe_div_func_int8_t_s_s (l_337, l_316)))) ^ -5L)), (safe_add_func_int16_t_s_s ((safe_add_func_uint64_t_u_u (l_322, (0x52AE98F4L != g_275))), (+(safe_mod_func_uint16_t_u_u ((p_74 & l_88), g_276))))), 7L, func_48(g_171, (!(safe_mod_func_int64_t_s_s (g_171, g_44))), (((safe_add_func_int64_t_s_s (0xE40136C2L, g_171)) < g_171) < (safe_div_func_int32_t_s_s (l_99, (+(safe_div_func_uint16_t_u_u (p_74, l_354)))))), (l_316 != g_5)));
                        }
                    }
                    g_171 = (safe_lshift_func_int16_t_s_u (0xC52C7789L, (l_87 <= l_313)));
                    return l_322;
                }
            }
            else
            {
                uint32_t l_360 = 7L;
                 const int8_t l_375 = -9L;
                g_171 = (func_56((safe_unary_minus_func_uint32_t_u (p_75))) >= (safe_sub_func_int16_t_s_s ((l_318 <= g_171), (l_360 <= (safe_lshift_func_uint16_t_u_u ((p_74 < func_48(l_99, p_75, g_44, l_318)), p_75))))));
                l_312 = (safe_div_func_int16_t_s_s ((p_74 < (safe_rshift_func_uint16_t_u_u ((safe_div_func_uint64_t_u_u (1L, (0x962AD8FEL ^ 0L))), g_5))), (safe_sub_func_uint8_t_u_u ((l_311 > p_74), ((safe_mul_func_int16_t_s_s (l_332, -1L)) != (safe_add_func_uint32_t_u_u (func_48(func_78(g_275, p_74, p_74, l_375, g_3), p_75, g_63, g_165), (safe_div_func_int16_t_s_s ((safe_rshift_func_int8_t_s_u (l_88, p_75)), (safe_rshift_func_uint16_t_u_s (l_375, p_75)))))))))));
            }
        }
        l_312 |= ((p_72 ^ l_311) ^ 0xC63C90DDL);
        return l_318;
    }
    
    
    
    
    
    
    
    int32_t func_78(int64_t p_79, uint32_t p_80, int32_t p_81, const uint32_t p_82, uint32_t p_83)
    {
        uint32_t l_84 = 0L;
        return l_84;
    }
    
    
    
    
    
    
    
    int32_t func_104(int32_t p_105, int32_t p_106)
    {
         const int64_t l_109 = -2L;
        uint8_t l_264 = 1L;
        int16_t l_265 = 0x44D0L;
         const uint8_t l_266 = 0x23L;
         const int8_t l_293 = 0x0AL;
        int32_t l_294 = 0xCFC5F2DEL;
         const uint64_t l_296 = 0L;
    lbl_277:
        g_275 &= (func_56((safe_mul_func_uint8_t_u_u (l_109, func_110(l_109, (l_109 == (safe_sub_func_int64_t_s_s (g_165, p_106))), (safe_div_func_int32_t_s_s ((l_109 > p_105), (safe_mod_func_uint16_t_u_u (p_105, g_141)))), g_3, p_105)))) >= (((p_106 && (safe_lshift_func_uint8_t_u_s ((safe_add_func_uint16_t_u_u (g_5, p_105)), func_48(l_109, l_109, l_109, p_105)))) >= (((l_264 ^ l_265) > (l_264 && l_109)) < ((p_105 == p_106) || (l_266 > g_3)))) <= (safe_rshift_func_uint8_t_u_u (func_56(((safe_lshift_func_int16_t_s_u (l_264, 0x1CCF118BL)) >= func_48(p_106, p_105, p_105, l_266))), (safe_sub_func_uint8_t_u_u (l_265, ((safe_mul_func_int8_t_s_s (p_106, g_3)) != 0x726D5457L)))))));
        if ((l_265 && (6L > g_276)))
        {
            int32_t l_280 = 1L;
            uint64_t l_288 = 1L;
            if (g_3)
                goto lbl_277;
            l_294 |= (safe_rshift_func_uint8_t_u_u (func_78(l_280, g_171, 1L, (0xEC739D5CL > ((safe_rshift_func_int8_t_s_u (func_48(p_106, l_109, l_266, g_5), (safe_unary_minus_func_uint32_t_u (g_141)))) != p_105)), (((l_265 | (safe_add_func_int32_t_s_s (p_106, g_171))) && (safe_div_func_int8_t_s_s (l_288, l_266))) != 0L)), (safe_mod_func_int8_t_s_s (func_48(func_78(func_48((safe_rshift_func_int16_t_s_u (l_265, p_105)), l_265, (g_171 < p_106), l_280), p_106, l_264, l_293, func_56(l_288)), -1L, p_105, p_105), (((+(g_63 || p_106)) || (func_56(l_266) == p_106)) && 3L)))));
        }
        else
        {
            uint8_t l_295 = 0xC7L;
            l_295 |= p_105;
            p_105 ^= l_296;
            p_105 = (p_105 != (safe_mul_func_uint16_t_u_u (p_106, (l_264 || g_171))));
        }
        g_171 = l_265;
        return p_106;
    }
    
    
    
    
    
    
    
    int32_t func_110(uint32_t p_111, uint32_t p_112, uint32_t p_113, uint32_t p_114, int32_t p_115)
    {
         const uint32_t l_118 = -1L;
        int16_t l_170 = 0L;
        int32_t l_178 = 0x4A6F35BBL;
        int32_t l_242 = -10L;
        if ((safe_lshift_func_uint16_t_u_s ((p_115 || l_118), ((safe_sub_func_int32_t_s_s ((p_115 != p_112), p_112)) == func_56(g_3)))))
        {
            uint16_t l_129 = 0x439BL;
            int32_t l_187 = 0x7C643468L;
            int32_t l_202 = 3L;
            int8_t l_241 = 0x81L;
    lbl_182:
            for (p_111 = 0; (p_111 < 0); p_111 = safe_sub_func_uint8_t_u_u (p_111, 1))
            {
                uint64_t l_134 = 0xE843D8BAA40D6DD5LL;
                if (l_118)
                {
                    uint32_t l_123 = 0x739A15FBL;
                    int8_t l_124 = 0x32L;
                    p_115 = func_78(l_123, l_124, -1L, func_48(p_111, (safe_rshift_func_int16_t_s_u ((safe_add_func_int64_t_s_s ((g_5 | (p_112 || l_129)), func_48(p_114, g_4, l_118, p_113))), g_44)), (safe_mod_func_int8_t_s_s ((safe_lshift_func_int8_t_s_u ((+(g_5 >= l_134)), 0xE9346F96L)), (safe_mul_func_uint8_t_u_u (((safe_mul_func_int16_t_s_s (g_4, p_112)) | g_44), ((p_115 | l_118) <= (p_112 <= l_124)))))), p_111), g_3);
                    g_141 = (safe_rshift_func_int16_t_s_s (g_63, -1L));
                    for (p_115 = 0; (p_115 != -9); p_115 = safe_sub_func_uint16_t_u_u (p_115, 0))
                    {
                        int16_t l_150 = 1L;
                        if (l_129)
                            break;
                        for (g_44 = -30; (g_44 > 4); g_44 = safe_sub_func_int32_t_s_s (g_44, 4))
                        {
                            uint32_t l_159 = 0x5B5AAB37L;
                            uint8_t l_164 = 0x98L;
                            p_115 = (safe_add_func_uint64_t_u_u ((safe_div_func_int16_t_s_s ((0x9E2023AEL & l_129), l_150)), (safe_lshift_func_int8_t_s_u (g_3, (((safe_add_func_uint16_t_u_u (l_124, (safe_rshift_func_int8_t_s_u (g_141, 0x99219543L)))) >= ((safe_mul_func_uint16_t_u_u (g_3, p_113)) > l_159)) | (func_56((!l_124)) <= l_124))))));
                            l_164 = (safe_mod_func_int16_t_s_s (9L, (safe_sub_func_uint8_t_u_u ((g_141 || func_78(0x6DB6A2D9A964D50ELL, 0x26552C19L, 0x79DB4E21L, g_4, (p_114 & (p_113 == l_123)))), (-5L & l_123)))));
                        }
                        g_165 = 0xB53E36E8L;
                        g_171 = (safe_mul_func_int16_t_s_s ((p_115 <= (safe_sub_func_uint8_t_u_u (func_56(l_118), ((+-7L) && 8L)))), ((+func_78(0xD83D76CE6111D559LL, l_124, 0xA2CA7106L, func_78(p_115, g_3, l_170, g_141, (l_129 || l_150)), g_44)) > p_111)));
                    }
                }
                else
                {
                    return g_171;
                }
    lbl_179:
                p_115 = ((((((l_134 || g_4) == 1L) == ((p_115 != g_141) || l_118)) != g_165) && func_48(g_4, l_129, l_129, l_170)) ^ (0xBD29671FL > ((g_171 ^ (safe_div_func_int8_t_s_s ((safe_add_func_int32_t_s_s (l_170, l_170)), (p_115 < g_171)))) ^ l_170)));
                l_178 = (safe_rshift_func_int16_t_s_u (0L, 1L));
                if (g_171)
                    goto lbl_179;
            }
            if (func_56((1L | func_48(g_3, g_171, g_3, l_129))))
            {
                uint64_t l_194 = 0x93F2D2C60FB40517LL;
                if ((safe_sub_func_int16_t_s_s (g_4, p_115)))
                {
                    return g_3;
                }
                else
                {
                    if (p_115)
                        goto lbl_182;
    lbl_195:
                    l_187 = (safe_div_func_int8_t_s_s ((safe_sub_func_uint64_t_u_u (0x8A79AF8EL, g_44)), p_113));
                }
                p_115 = (safe_mul_func_uint16_t_u_u (((safe_rshift_func_uint16_t_u_u (((1L < 0x38B95618L) || 0x7F9DB91BL), -1L)) < (safe_lshift_func_uint8_t_u_s (l_194, 0xFEBA2895L))), 6L));
                if (p_111)
                    goto lbl_196;
    lbl_196:
                if (p_111)
                    goto lbl_195;
                p_115 &= 0x755464F8L;
            }
            else
            {
                int32_t l_201 = 0x8B2AD579L;
                int32_t l_215 = 0x57C8980EL;
                uint32_t l_236 = 2L;
                if ((safe_add_func_uint8_t_u_u (l_178, (safe_mod_func_uint32_t_u_u (l_201, l_202)))))
                {
                    uint32_t l_205 = 0L;
                    l_205 = (safe_rshift_func_int16_t_s_s ((-1L != (p_114 >= -4L)), 0x41821A72L));
                    p_115 = g_165;
                    for (p_114 = 0; (p_114 < 0); p_114 = safe_add_func_int64_t_s_s (p_114, 0))
                    {
                        return l_118;
                    }
                    for (l_187 = 0; (l_187 == -15); l_187 = safe_sub_func_int64_t_s_s (l_187, 1))
                    {
                        uint32_t l_214 = 0xBAEAE63DL;
                        if ((((l_205 ^ (0L && p_113)) == 0x9C4B2C92L) != (((safe_div_func_int16_t_s_s (func_78(g_4, (p_114 >= p_115), p_113, p_115, (safe_add_func_int16_t_s_s (l_214, p_112))), p_114)) && g_4) | func_56(0xDC2A9FDAL))))
                        {
                            l_187 = p_114;
                        }
                        else
                        {
                            return p_114;
                        }
                        return p_115;
                    }
                }
                else
                {
                    int32_t l_217 = 0x87CD55F7L;
                    l_215 = g_44;
                    if (g_5)
                    {
                        p_115 = p_112;
                    }
                    else
                    {
                        uint16_t l_216 = 0xB211L;
                        l_217 = func_56(l_216);
                        p_115 = l_170;
                        if (l_178)
                        {
                            int16_t l_220 = 0xE69CL;
                            g_171 ^= ((safe_sub_func_int64_t_s_s ((~g_141), (l_220 == ((safe_mod_func_uint32_t_u_u ((l_187 ^ p_111), (safe_mod_func_uint64_t_u_u (p_115, g_4)))) & l_216)))) ^ p_115);
                        }
                        else
                        {
                            p_115 = g_44;
                            p_115 = l_201;
                            p_115 = 0x514DC0AAL;
                        }
                    }
                }
                p_115 = 0L;
                for (l_215 = 21; (l_215 <= -8); l_215 = safe_add_func_uint16_t_u_u (l_215, 1))
                {
                    uint64_t l_229 = 0x0F213F8C49FD6B0DLL;
                    g_171 = (safe_lshift_func_uint16_t_u_u (l_215, l_201));
                    l_229 &= g_4;
                }
                l_215 = ((safe_mul_func_int16_t_s_s (0x77DB30F1L, (safe_rshift_func_int16_t_s_u (l_202, -2L)))) && ((safe_sub_func_uint16_t_u_u (func_48(p_111, func_48(g_3, l_178, l_236, l_236), l_201, (safe_mod_func_int32_t_s_s ((l_202 | g_171), (safe_add_func_uint32_t_u_u (g_63, l_215))))), l_241)) && l_170));
            }
            l_242 = l_202;
            for (g_171 = 0; (g_171 != 0); g_171 = safe_sub_func_uint16_t_u_u (g_171, 2))
            {
                return p_115;
            }
        }
        else
        {
            uint16_t l_247 = -1L;
            g_171 = (safe_lshift_func_int8_t_s_s ((l_247 ^ (7L < (safe_div_func_int32_t_s_s (8L, ((g_4 != l_247) != func_48(p_111, p_114, g_44, l_242)))))), -4L));
        }
        p_115 = g_5;
        p_115 &= (func_56(1L) && func_48(l_178, l_242, (safe_mod_func_int32_t_s_s (g_171, g_4)), p_111));
        p_115 ^= (safe_rshift_func_uint16_t_u_s ((0x9568BBE4L == -10L), 0x1AB08536L));
        return p_112;
    }
    
    
    
    
    
    int main()
    {
        int print_hash_value = 0;
        platform_main_begin();
        func_1();
        csmith_sink_ = g_3;
        csmith_sink_ = g_4;
        csmith_sink_ = g_5;
        csmith_sink_ = g_20;
        csmith_sink_ = g_44;
        csmith_sink_ = g_63;
        csmith_sink_ = g_141;
        csmith_sink_ = g_165;
        csmith_sink_ = g_171;
        csmith_sink_ = g_275;
        csmith_sink_ = g_276;
        csmith_sink_ = g_404;
        csmith_sink_ = g_467;
        csmith_sink_ = g_500;
        csmith_sink_ = g_501;
        platform_main_end(0);
        return 0;
    }
    
    c file icon foo_pp.c (61,730 bytes) 2011-02-12 08:23 +
  • c file icon red716.c (180 bytes) 2011-02-12 14:34 -
    int  g_5, g_404, g_275, g_44;
    
    int func_1(void)
    {
      int l_14 = 0L;
      l_14 = (( (func_70(g_5) || l_14)) && ((!g_404) | (g_275 || (safe_mod_func_int_u_u (g_44)))));
      return l_14;
    }
    
    c file icon red716.c (180 bytes) 2011-02-12 14:34 +

-Relationships
+Relationships

-Notes

~0001479

pascal (reporter)

Virgile: file red716.c contains a reduced version of foo_pp.c. The error is at line 6.

bin/toplevel.byte red716.c

[kernel] error occurring when exiting Frama-C: stopping exit procedure.
         The full backtrace is:
         Raised at file "cil/src/frontc/cabs2cil.ml", line 1183, characters 7-9
         Called from file "list.ml", line 57, characters 20-23
         Called from file "cil/src/frontc/cabs2cil.ml", line 1186, characters 16-47
         Called from file "cil/src/frontc/cabs2cil.ml", line 5788, characters 23-40
         Called from file "cil/src/frontc/cabs2cil.ml", line 4977, characters 14-349
         Called from file "cil/src/frontc/cabs2cil.ml", line 4856, characters 14-75
         Called from file "cil/src/frontc/cabs2cil.ml", line 5846, characters 20-48
         Called from file "cil/src/frontc/cabs2cil.ml", line 7440, characters 28-61
         Re-raised at file "cil/src/frontc/cabs2cil.ml", line 7824, characters 28-98
         Called from file "cil/src/frontc/cabs2cil.ml", line 7345, characters 25-48
         Called from file "list.ml", line 74, characters 24-34
         Called from file "cil/src/frontc/cabs2cil.ml", line 7334, characters 9-3225
         Called from file "cil/src/frontc/cabs2cil.ml", line 7027, characters 14-321
         Called from file "cil/src/frontc/cabs2cil.ml", line 7884, characters 12-31
         Called from file "list.ml", line 69, characters 12-15
         Called from file "cil/src/frontc/cabs2cil.ml", line 7915, characters 2-26
         Called from file "cil/src/frontc/frontc.ml", line 260, characters 14-54
         Called from file "src/kernel/file.ml", line 651, characters 27-46
         Called from file "src/kernel/file.ml", line 698, characters 16-23
         Re-raised at file "src/kernel/file.ml", line 685, characters 16-55
         Called from file "list.ml", line 74, characters 24-34
         Called from file "src/kernel/file.ml", line 695, characters 6-318
         Called from file "src/kernel/file.ml", line 1177, characters 12-30
         Called from file "src/kernel/file.ml", line 1265, characters 4-27
         Re-raised at file "src/kernel/file.ml", line 1232, characters 2-92
         Called from file "src/kernel/ast.ml", line 59, characters 2-28
         Called from file "src/kernel/ast.ml", line 66, characters 53-71
         Called from file "queue.ml", line 134, characters 6-20
         Called from file "src/kernel/cmdline.ml", line 169, characters 6-23
         
         Unexpected error (File "cil/src/frontc/cabs2cil.ml", line 1174, characters 7-13: Assertion failed).
         Please report as 'crash' at http://bts.frama-c.com/
         Note that a backtrace alone often does not have information to
         understand the bug. Guidelines for reporting bugs are at:
         http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines

~0001804

virgile (developer)

rev 12293 indeed fixed the issue
+Notes

-Issue History
Date Modified Username Field Change
2011-02-12 08:23 regehr New Issue
2011-02-12 08:23 regehr Status new => assigned
2011-02-12 08:23 regehr Assigned To => pascal
2011-02-12 08:23 regehr File Added: foo_pp.c
2011-02-12 11:29 pascal Assigned To pascal => virgile
2011-02-12 11:29 pascal Category Plug-in > value analysis => Kernel
2011-02-12 11:29 pascal Additional Information Updated
2011-02-12 14:34 pascal File Added: red716.c
2011-02-12 14:36 pascal Note Added: 0001479
2011-03-11 19:27 svn
2011-04-21 10:23 virgile Note Added: 0001804
2011-04-21 10:23 virgile Status assigned => resolved
2011-04-21 10:23 virgile Fixed in Version => Frama-C GIT, precise the release id
2011-04-21 10:23 virgile Resolution open => fixed
2011-10-10 14:13 signoles Fixed in Version Frama-C GIT, precise the release id => Frama-C Nitrogen-20111001
2011-10-10 14:14 signoles Status resolved => closed
2013-12-19 01:12 svn Source_changeset_attached => framac master ee782099
2014-02-12 16:54 monate Source_changeset_attached => framac stable/neon ee782099
+Issue History