I: pbuilder: network access will be disabled during build I: Current time: Wed Apr 19 11:51:17 +14 2023 I: pbuilder-time-stamp: 1681854677 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [chibicc_0+git20220719+ds-4.dsc] I: copying [./chibicc_0+git20220719+ds.orig.tar.xz] I: copying [./chibicc_0+git20220719+ds-4.debian.tar.xz] I: Extracting source gpgv: Signature made Mon Oct 3 21:01:00 2022 +14 gpgv: using RSA key B60A1BF363DC1319FF0A8E89116852BCDF7515C0 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./chibicc_0+git20220719+ds-4.dsc: no acceptable signature found dpkg-source: info: extracting chibicc in chibicc-0+git20220719+ds dpkg-source: info: unpacking chibicc_0+git20220719+ds.orig.tar.xz dpkg-source: info: unpacking chibicc_0+git20220719+ds-4.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/627124/tmp/hooks/D01_modify_environment starting debug: Running on ionos11-amd64. I: Changing host+domainname to test build reproducibility I: Adding a custom variable just for the fun of it... I: Changing /bin/sh to bash '/bin/sh' -> '/bin/bash' lrwxrwxrwx 1 root root 9 Apr 19 11:52 /bin/sh -> /bin/bash I: Setting pbuilder2's login shell to /bin/bash I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other I: user script /srv/workspace/pbuilder/627124/tmp/hooks/D01_modify_environment finished I: user script /srv/workspace/pbuilder/627124/tmp/hooks/D02_print_environment starting I: set BASH=/bin/sh BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=([0]="12" [1]="0") BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='5.2.15(1)-release' BUILDDIR=/build BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' BUILDUSERNAME=pbuilder2 BUILD_ARCH=amd64 DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' DIRSTACK=() DISTRIBUTION=bookworm EUID=0 FUNCNAME=([0]="Echo" [1]="main") GROUPS=() HOME=/root HOSTNAME=i-capture-the-hostname HOSTTYPE=x86_64 HOST_ARCH=amd64 IFS=' ' INVOCATION_ID=9916d6a39dd243518f9e9543f169e834 LANG=C LANGUAGE=et_EE:et LC_ALL=C MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path PBCURRENTCOMMANDLINEOPERATION=build PBUILDER_OPERATION=build PBUILDER_PKGDATADIR=/usr/share/pbuilder PBUILDER_PKGLIBDIR=/usr/lib/pbuilder PBUILDER_SYSCONFDIR=/etc PIPESTATUS=([0]="0") POSIXLY_CORRECT=y PPID=627124 PS4='+ ' PWD=/ SHELL=/bin/bash SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix SHLVL=3 SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/pbuilderrc_0o7Q --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/b2 --logfile b2/build.log --extrapackages usrmerge chibicc_0+git20220719+ds-4.dsc' SUDO_GID=111 SUDO_UID=106 SUDO_USER=jenkins TERM=unknown TZ=/usr/share/zoneinfo/Etc/GMT-14 UID=0 USER=root _='I: set' http_proxy=http://78.137.99.97:3128 I: uname -a Linux i-capture-the-hostname 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux I: ls -l /bin total 5632 -rwxr-xr-x 1 root root 1265648 Feb 13 10:05 bash -rwxr-xr-x 3 root root 39224 Sep 19 2022 bunzip2 -rwxr-xr-x 3 root root 39224 Sep 19 2022 bzcat lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep -rwxr-xr-x 3 root root 39224 Sep 19 2022 bzip2 -rwxr-xr-x 1 root root 14568 Sep 19 2022 bzip2recover lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore -rwxr-xr-x 1 root root 44016 Sep 21 2022 cat -rwxr-xr-x 1 root root 68656 Sep 21 2022 chgrp -rwxr-xr-x 1 root root 64496 Sep 21 2022 chmod -rwxr-xr-x 1 root root 72752 Sep 21 2022 chown -rwxr-xr-x 1 root root 151152 Sep 21 2022 cp -rwxr-xr-x 1 root root 125640 Jan 6 03:20 dash -rwxr-xr-x 1 root root 121904 Sep 21 2022 date -rwxr-xr-x 1 root root 89240 Sep 21 2022 dd -rwxr-xr-x 1 root root 102200 Sep 21 2022 df -rwxr-xr-x 1 root root 151344 Sep 21 2022 dir -rwxr-xr-x 1 root root 88656 Mar 24 00:02 dmesg lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname -rwxr-xr-x 1 root root 43856 Sep 21 2022 echo -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep -rwxr-xr-x 1 root root 35664 Sep 21 2022 false -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep -rwxr-xr-x 1 root root 85600 Mar 24 00:02 findmnt -rwsr-xr-x 1 root root 35128 Mar 23 22:35 fusermount -rwxr-xr-x 1 root root 203152 Jan 25 04:43 grep -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe -rwxr-xr-x 1 root root 98136 Apr 10 2022 gzip -rwxr-xr-x 1 root root 22680 Dec 20 03:33 hostname -rwxr-xr-x 1 root root 72824 Sep 21 2022 ln -rwxr-xr-x 1 root root 53024 Mar 24 02:40 login -rwxr-xr-x 1 root root 151344 Sep 21 2022 ls -rwxr-xr-x 1 root root 207168 Mar 24 00:02 lsblk -rwxr-xr-x 1 root root 97552 Sep 21 2022 mkdir -rwxr-xr-x 1 root root 72912 Sep 21 2022 mknod -rwxr-xr-x 1 root root 43952 Sep 21 2022 mktemp -rwxr-xr-x 1 root root 59712 Mar 24 00:02 more -rwsr-xr-x 1 root root 59704 Mar 24 00:02 mount -rwxr-xr-x 1 root root 18744 Mar 24 00:02 mountpoint -rwxr-xr-x 1 root root 142968 Sep 21 2022 mv lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 43952 Sep 21 2022 pwd lrwxrwxrwx 1 root root 4 Feb 13 10:05 rbash -> bash -rwxr-xr-x 1 root root 52112 Sep 21 2022 readlink -rwxr-xr-x 1 root root 72752 Sep 21 2022 rm -rwxr-xr-x 1 root root 56240 Sep 21 2022 rmdir -rwxr-xr-x 1 root root 27560 Nov 3 06:31 run-parts -rwxr-xr-x 1 root root 126424 Jan 6 09:55 sed lrwxrwxrwx 1 root root 9 Apr 19 11:52 sh -> /bin/bash -rwxr-xr-x 1 root root 43888 Sep 21 2022 sleep -rwxr-xr-x 1 root root 85008 Sep 21 2022 stty -rwsr-xr-x 1 root root 72000 Mar 24 00:02 su -rwxr-xr-x 1 root root 39824 Sep 21 2022 sync -rwxr-xr-x 1 root root 531984 Apr 7 04:25 tar -rwxr-xr-x 1 root root 14520 Nov 3 06:31 tempfile -rwxr-xr-x 1 root root 109616 Sep 21 2022 touch -rwxr-xr-x 1 root root 35664 Sep 21 2022 true -rwxr-xr-x 1 root root 14568 Mar 23 22:35 ulockmgr_server -rwsr-xr-x 1 root root 35128 Mar 24 00:02 umount -rwxr-xr-x 1 root root 43888 Sep 21 2022 uname -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress -rwxr-xr-x 1 root root 151344 Sep 21 2022 vdir -rwxr-xr-x 1 root root 72024 Mar 24 00:02 wdctl lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew I: user script /srv/workspace/pbuilder/627124/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13) dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19596 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1{a} libpipeline1{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} po-debconf{a} sensible-utils{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx wget 0 packages upgraded, 30 newly installed, 0 to remove and 0 not upgraded. Need to get 18.7 MB of archives. After unpacking 72.4 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bookworm/main amd64 sensible-utils all 0.0.17+nmu1 [19.0 kB] Get: 2 http://deb.debian.org/debian bookworm/main amd64 libmagic-mgc amd64 1:5.44-3 [305 kB] Get: 3 http://deb.debian.org/debian bookworm/main amd64 libmagic1 amd64 1:5.44-3 [104 kB] Get: 4 http://deb.debian.org/debian bookworm/main amd64 file amd64 1:5.44-3 [42.5 kB] Get: 5 http://deb.debian.org/debian bookworm/main amd64 gettext-base amd64 0.21-12 [160 kB] Get: 6 http://deb.debian.org/debian bookworm/main amd64 libuchardet0 amd64 0.0.7-1 [67.8 kB] Get: 7 http://deb.debian.org/debian bookworm/main amd64 groff-base amd64 1.22.4-10 [916 kB] Get: 8 http://deb.debian.org/debian bookworm/main amd64 bsdextrautils amd64 2.38.1-5+b1 [86.6 kB] Get: 9 http://deb.debian.org/debian bookworm/main amd64 libpipeline1 amd64 1.5.7-1 [38.5 kB] Get: 10 http://deb.debian.org/debian bookworm/main amd64 man-db amd64 2.11.2-2 [1386 kB] Get: 11 http://deb.debian.org/debian bookworm/main amd64 m4 amd64 1.4.19-3 [287 kB] Get: 12 http://deb.debian.org/debian bookworm/main amd64 autoconf all 2.71-3 [332 kB] Get: 13 http://deb.debian.org/debian bookworm/main amd64 autotools-dev all 20220109.1 [51.6 kB] Get: 14 http://deb.debian.org/debian bookworm/main amd64 automake all 1:1.16.5-1.3 [823 kB] Get: 15 http://deb.debian.org/debian bookworm/main amd64 autopoint all 0.21-12 [495 kB] Get: 16 http://deb.debian.org/debian bookworm/main amd64 libdebhelper-perl all 13.11.4 [81.2 kB] Get: 17 http://deb.debian.org/debian bookworm/main amd64 libtool all 2.4.7-5 [517 kB] Get: 18 http://deb.debian.org/debian bookworm/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 19 http://deb.debian.org/debian bookworm/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 20 http://deb.debian.org/debian bookworm/main amd64 libsub-override-perl all 0.09-4 [9304 B] Get: 21 http://deb.debian.org/debian bookworm/main amd64 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 22 http://deb.debian.org/debian bookworm/main amd64 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 23 http://deb.debian.org/debian bookworm/main amd64 libelf1 amd64 0.188-2.1 [174 kB] Get: 24 http://deb.debian.org/debian bookworm/main amd64 dwz amd64 0.15-1 [109 kB] Get: 25 http://deb.debian.org/debian bookworm/main amd64 libicu72 amd64 72.1-3 [9376 kB] Get: 26 http://deb.debian.org/debian bookworm/main amd64 libxml2 amd64 2.9.14+dfsg-1.1+b3 [687 kB] Get: 27 http://deb.debian.org/debian bookworm/main amd64 gettext amd64 0.21-12 [1300 kB] Get: 28 http://deb.debian.org/debian bookworm/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 29 http://deb.debian.org/debian bookworm/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 30 http://deb.debian.org/debian bookworm/main amd64 debhelper all 13.11.4 [942 kB] Fetched 18.7 MB in 5s (3586 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19596 files and directories currently installed.) Preparing to unpack .../00-sensible-utils_0.0.17+nmu1_all.deb ... Unpacking sensible-utils (0.0.17+nmu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../01-libmagic-mgc_1%3a5.44-3_amd64.deb ... Unpacking libmagic-mgc (1:5.44-3) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../02-libmagic1_1%3a5.44-3_amd64.deb ... Unpacking libmagic1:amd64 (1:5.44-3) ... Selecting previously unselected package file. Preparing to unpack .../03-file_1%3a5.44-3_amd64.deb ... Unpacking file (1:5.44-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../04-gettext-base_0.21-12_amd64.deb ... Unpacking gettext-base (0.21-12) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../05-libuchardet0_0.0.7-1_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../06-groff-base_1.22.4-10_amd64.deb ... Unpacking groff-base (1.22.4-10) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../07-bsdextrautils_2.38.1-5+b1_amd64.deb ... Unpacking bsdextrautils (2.38.1-5+b1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../08-libpipeline1_1.5.7-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.7-1) ... Selecting previously unselected package man-db. Preparing to unpack .../09-man-db_2.11.2-2_amd64.deb ... Unpacking man-db (2.11.2-2) ... Selecting previously unselected package m4. Preparing to unpack .../10-m4_1.4.19-3_amd64.deb ... Unpacking m4 (1.4.19-3) ... Selecting previously unselected package autoconf. Preparing to unpack .../11-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../12-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../13-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../14-autopoint_0.21-12_all.deb ... Unpacking autopoint (0.21-12) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../15-libdebhelper-perl_13.11.4_all.deb ... Unpacking libdebhelper-perl (13.11.4) ... Selecting previously unselected package libtool. Preparing to unpack .../16-libtool_2.4.7-5_all.deb ... Unpacking libtool (2.4.7-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../17-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../18-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../19-libsub-override-perl_0.09-4_all.deb ... Unpacking libsub-override-perl (0.09-4) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../20-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../21-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../22-libelf1_0.188-2.1_amd64.deb ... Unpacking libelf1:amd64 (0.188-2.1) ... Selecting previously unselected package dwz. Preparing to unpack .../23-dwz_0.15-1_amd64.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package libicu72:amd64. Preparing to unpack .../24-libicu72_72.1-3_amd64.deb ... Unpacking libicu72:amd64 (72.1-3) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../25-libxml2_2.9.14+dfsg-1.1+b3_amd64.deb ... Unpacking libxml2:amd64 (2.9.14+dfsg-1.1+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../26-gettext_0.21-12_amd64.deb ... Unpacking gettext (0.21-12) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../27-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../28-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../29-debhelper_13.11.4_all.deb ... Unpacking debhelper (13.11.4) ... Setting up libpipeline1:amd64 (1.5.7-1) ... Setting up libicu72:amd64 (72.1-3) ... Setting up bsdextrautils (2.38.1-5+b1) ... Setting up libmagic-mgc (1:5.44-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.11.4) ... Setting up libmagic1:amd64 (1:5.44-3) ... Setting up gettext-base (0.21-12) ... Setting up m4 (1.4.19-3) ... Setting up file (1:5.44-3) ... Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-12) ... Setting up autoconf (2.71-3) ... Setting up sensible-utils (0.0.17+nmu1) ... Setting up libuchardet0:amd64 (0.0.7-1) ... Setting up libsub-override-perl (0.09-4) ... Setting up libelf1:amd64 (0.188-2.1) ... Setting up libxml2:amd64 (2.9.14+dfsg-1.1+b3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up gettext (0.21-12) ... Setting up libtool (2.4.7-5) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up dwz (0.15-1) ... Setting up groff-base (1.22.4-10) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.11.2-2) ... Not building database; man-db/auto-update is not 'true'. Setting up debhelper (13.11.4) ... Processing triggers for libc-bin (2.36-9) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... usrmerge is already the newest version (35). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: user script /srv/workspace/pbuilder/627124/tmp/hooks/A99_set_merged_usr starting Re-configuring usrmerge... removed '/etc/unsupported-skip-usrmerge-conversion' The system has been successfully converted. I: user script /srv/workspace/pbuilder/627124/tmp/hooks/A99_set_merged_usr finished hostname: Name or service not known I: Running cd /build/chibicc-0+git20220719+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../chibicc_0+git20220719+ds-4_source.changes dpkg-buildpackage: info: source package chibicc dpkg-buildpackage: info: source version 0+git20220719+ds-4 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Gürkan Myczko dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean dh_auto_clean make -j15 clean make[1]: Entering directory '/build/chibicc-0+git20220719+ds' rm -rf chibicc tmp* test/alignof.exe test/alloca.exe test/arith.exe test/asm.exe test/atomic.exe test/attribute.exe test/bitfield.exe test/builtin.exe test/cast.exe test/commonsym.exe test/compat.exe test/complit.exe test/const.exe test/constexpr.exe test/control.exe test/decl.exe test/enum.exe test/extern.exe test/float.exe test/function.exe test/generic.exe test/initializer.exe test/line.exe test/literal.exe test/macro.exe test/offsetof.exe test/pointer.exe test/pragma-once.exe test/sizeof.exe test/stdhdr.exe test/string.exe test/struct.exe test/tls.exe test/typedef.exe test/typeof.exe test/unicode.exe test/union.exe test/usualconv.exe test/varargs.exe test/variable.exe test/vla.exe test/*.s test/*.exe stage2 find * -type f '(' -name '*~' -o -name '*.o' ')' -exec rm {} ';' make[1]: Leaving directory '/build/chibicc-0+git20220719+ds' dh_clean debian/rules binary dh binary dh_update_autotools_config dh_autoreconf dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory '/build/chibicc-0+git20220719+ds' dh_auto_build -- CFLAGS="-g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic" make -j15 "INSTALL=install --strip-program=true" "CFLAGS=-g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic" make[2]: Entering directory '/build/chibicc-0+git20220719+ds' cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o codegen.o codegen.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o hashmap.o hashmap.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o main.o main.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o parse.o parse.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o preprocess.o preprocess.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o strings.o strings.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o tokenize.o tokenize.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o type.o type.c cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wdate-time -D_FORTIFY_SOURCE=2 -c -o unicode.o unicode.c parse.c:90:31: warning: ISO C forbids empty initializer braces [-Wpedantic] 90 | static Scope *scope = &(Scope){}; | ^ type.c: In function 'is_compatible': type.c:56:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 56 | switch (t1->kind) { | ^~~~~~ type.c:56:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] type.c:56:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] type.c:56:3: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] type.c:56:3: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] type.c:56:3: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] unicode.c: In function 'encode_utf8': unicode.c:11:14: warning: binary constants are a C2X feature or GCC extension 11 | buf[0] = 0b11000000 | (c >> 6); | ^~~~~~~~~~ unicode.c:12:14: warning: binary constants are a C2X feature or GCC extension 12 | buf[1] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c:12:32: warning: binary constants are a C2X feature or GCC extension 12 | buf[1] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c:17:14: warning: binary constants are a C2X feature or GCC extension 17 | buf[0] = 0b11100000 | (c >> 12); | ^~~~~~~~~~ unicode.c:18:14: warning: binary constants are a C2X feature or GCC extension 18 | buf[1] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ unicode.c:18:39: warning: binary constants are a C2X feature or GCC extension 18 | buf[1] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ unicode.c:19:14: warning: binary constants are a C2X feature or GCC extension 19 | buf[2] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c:19:32: warning: binary constants are a C2X feature or GCC extension 19 | buf[2] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c:23:12: warning: binary constants are a C2X feature or GCC extension 23 | buf[0] = 0b11110000 | (c >> 18); | ^~~~~~~~~~ unicode.c:24:12: warning: binary constants are a C2X feature or GCC extension 24 | buf[1] = 0b10000000 | ((c >> 12) & 0b00111111); | ^~~~~~~~~~ unicode.c:24:38: warning: binary constants are a C2X feature or GCC extension 24 | buf[1] = 0b10000000 | ((c >> 12) & 0b00111111); | ^~~~~~~~~~ unicode.c:25:12: warning: binary constants are a C2X feature or GCC extension 25 | buf[2] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ unicode.c:25:37: warning: binary constants are a C2X feature or GCC extension 25 | buf[2] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ unicode.c:26:12: warning: binary constants are a C2X feature or GCC extension 26 | buf[3] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c:26:30: warning: binary constants are a C2X feature or GCC extension 26 | buf[3] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ unicode.c: In function 'decode_utf8': unicode.c:47:28: warning: binary constants are a C2X feature or GCC extension 47 | if ((unsigned char)*p >= 0b11110000) { | ^~~~~~~~~~ type.c: In function 'add_type': type.c:193:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 193 | switch (node->kind) { | ^~~~~~ type.c:193:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] type.c:193:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] preprocess.c: In function 'hideset_union': codegen.c: In function 'gen_addr': codegen.c:82:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 82 | switch (node->kind) { | ^~~~~~ codegen.c:82:3: warning: enumeration value 'ND_ADD' not handled in switch [-Wswitch] preprocess.c:112:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 112 | Hideset head = {}; | ^ codegen.c:82:3: warning: enumeration value 'ND_SUB' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_MUL' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_DIV' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_EQ' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LE' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] preprocess.c: In function 'hideset_intersection': codegen.c:82:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] codegen.c:82:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] preprocess.c:129:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 129 | Hideset head = {}; | ^ preprocess.c: In function 'add_hideset': preprocess.c:139:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 139 | Token head = {}; | ^ codegen.c: In function 'load': codegen.c:187:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 187 | switch (ty->kind) { | ^~~~~~ codegen.c:187:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:187:3: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] preprocess.c: In function 'append': preprocess.c:155:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 155 | Token head = {}; | ^ codegen.c: In function 'store': codegen.c:232:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 232 | switch (ty->kind) { | ^~~~~~ codegen.c:232:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:232:3: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c: In function 'cmp_zero': codegen.c:262:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 262 | switch (ty->kind) { | ^~~~~~ codegen.c:262:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:262:3: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] preprocess.c: In function 'copy_line': preprocess.c:230:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 230 | Token head = {}; | ^ codegen.c: In function 'getTypeId': preprocess.c: In function 'read_const_expr': codegen.c:287:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 287 | switch (ty->kind) { | ^~~~~~ codegen.c:287:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] preprocess.c:249:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 249 | Token head = {}; | ^ codegen.c:287:3: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:287:3: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] unicode.c:49:14: warning: binary constants are a C2X feature or GCC extension 49 | c = *p & 0b111; | ^~~~~ unicode.c:50:35: warning: binary constants are a C2X feature or GCC extension 50 | } else if ((unsigned char)*p >= 0b11100000) { | ^~~~~~~~~~ unicode.c:52:14: warning: binary constants are a C2X feature or GCC extension 52 | c = *p & 0b1111; | ^~~~~~ unicode.c:53:35: warning: binary constants are a C2X feature or GCC extension 53 | } else if ((unsigned char)*p >= 0b11000000) { | ^~~~~~~~~~ unicode.c:55:14: warning: binary constants are a C2X feature or GCC extension 55 | c = *p & 0b11111; | ^~~~~~~ unicode.c:61:37: warning: binary constants are a C2X feature or GCC extension 61 | if ((unsigned char)p[i] >> 6 != 0b10) | ^~~~ unicode.c:63:28: warning: binary constants are a C2X feature or GCC extension 63 | c = (c << 6) | (p[i] & 0b111111); | ^~~~~~~~ hashmap.c: In function 'rehash': hashmap.c:41:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 41 | HashMap map2 = {}; | ^ main.c: In function 'parse_args': main.c:122:27: warning: ISO C forbids empty initializer braces [-Wpedantic] 122 | StringArray idirafter = {}; | ^ parse.c: In function 'func_params': parse.c:590:15: warning: ISO C forbids empty initializer braces [-Wpedantic] 590 | Type head = {}; | ^ tokenize.c: In function 'tokenize': tokenize.c:494:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 494 | Token head = {}; | ^ preprocess.c: In function 'read_macro_params': preprocess.c:336:21: warning: ISO C forbids empty initializer braces [-Wpedantic] 336 | MacroParam head = {}; | ^ preprocess.c: In function 'read_macro_arg_one': preprocess.c:389:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 389 | Token head = {}; | ^ preprocess.c: In function 'read_macro_args': preprocess.c:424:19: warning: ISO C forbids empty initializer braces [-Wpedantic] 424 | MacroArg head = {}; | ^ main.c: In function 'find_file': parse.c: In function 'declarator': parse.c:686:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 686 | Type dummy = {}; | ^ parse.c: In function 'abstract_declarator': parse.c:713:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 713 | Type dummy = {}; | ^ codegen.c: In function 'gen_expr': preprocess.c: In function 'subst': preprocess.c:519:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 519 | Token head = {}; | ^ codegen.c:699:5: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 699 | switch (node->ty->kind) { | ^~~~~~ codegen.c:699:5: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:699:5: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 731 | switch (node->ty->kind) { | ^~~~~~ codegen.c:731:5: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:731:5: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] main.c:577:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 577 | glob_t buf = {}; | ^ main.c: In function 'run_linker': main.c:616:21: warning: ISO C forbids empty initializer braces [-Wpedantic] 616 | StringArray arr = {}; | ^ main.c: In function 'main': main.c:714:25: warning: ISO C forbids empty initializer braces [-Wpedantic] 714 | StringArray ld_args = {}; | ^ parse.c: In function 'declaration': parse.c:845:15: warning: ISO C forbids empty initializer braces [-Wpedantic] 845 | Node head = {}; | ^ preprocess.c: In function 'preprocess2': preprocess.c:840:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 840 | Token head = {}; | ^ codegen.c:943:5: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 943 | switch (node->ty->kind) { | ^~~~~~ codegen.c:943:5: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_FLOAT' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_DOUBLE' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_LDOUBLE' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_ADD' not handled in switch [-Wswitch] 695 | switch (node->kind) { | ^~~~~~ codegen.c:695:3: warning: enumeration value 'ND_SUB' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_MUL' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_DIV' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_EQ' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_LE' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] codegen.c:695:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1015 | switch (node->kind) { | ^~~~~~ codegen.c:1015:5: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_COND' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1059 | switch (node->kind) { | ^~~~~~ codegen.c:1059:5: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_COND' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 1005 | switch (node->lhs->ty->kind) { | ^~~~~~ codegen.c:1005:3: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_UNION' not handled in switch [-Wswitch] parse.c: In function 'copy_struct_type': parse.c:1283:17: warning: ISO C forbids empty initializer braces [-Wpedantic] 1283 | Member head = {}; | ^ codegen.c:1113:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1113 | switch (node->kind) { | ^~~~~~ codegen.c:1113:3: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_COND' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] codegen.c:1113:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'gvar_initializer': parse.c:1489:21: warning: ISO C forbids empty initializer braces [-Wpedantic] 1489 | Relocation head = {}; | ^ codegen.c: In function 'gen_stmt': codegen.c:1285:7: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 1285 | switch (ty->kind) { | ^~~~~~ codegen.c:1285:7: warning: enumeration value 'TY_BOOL' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_CHAR' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_INT' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_LONG' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_FLOAT' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_DOUBLE' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_LDOUBLE' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_FUNC' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_ARRAY' not handled in switch [-Wswitch] codegen.c:1285:7: warning: enumeration value 'TY_VLA' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1191 | switch (node->kind) { | ^~~~~~ codegen.c:1191:3: warning: enumeration value 'ND_ADD' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_SUB' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_MUL' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_DIV' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_EQ' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_LE' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_COND' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] codegen.c:1191:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'compound_stmt': parse.c:1765:15: warning: ISO C forbids empty initializer braces [-Wpedantic] 1765 | Node head = {}; | ^ parse.c:1772:22: warning: ISO C forbids empty initializer braces [-Wpedantic] 1772 | VarAttr attr = {}; | ^ parse.c: In function 'eval2': parse.c:1844:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1844 | switch (node->kind) { | ^~~~~~ parse.c:1844:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] parse.c:1844:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'eval_rval': parse.c:1934:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1934 | switch (node->kind) { | ^~~~~~ parse.c:1934:3: warning: enumeration value 'ND_ADD' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_SUB' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_MUL' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_DIV' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_NEG' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_EQ' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LE' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_COND' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_CAST' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'is_const_expr': parse.c:1952:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1952 | switch (node->kind) { | ^~~~~~ parse.c:1952:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'eval_double': parse.c:2001:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 2001 | switch (node->kind) { | ^~~~~~ parse.c:2001:3: warning: enumeration value 'ND_MOD' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_EQ' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LE' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_ASSIGN' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_ADDR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_NOT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LOGAND' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LOGOR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LABEL_VAL' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_VAR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_MEMZERO' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_CAS' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_EXCH' not handled in switch [-Wswitch] parse.c: In function 'to_assign': parse.c:2072:17: warning: ISO C forbids empty initializer braces [-Wpedantic] 2072 | Node head = {}; | ^ parse.c: In function 'struct_members': parse.c:2545:17: warning: ISO C forbids empty initializer braces [-Wpedantic] 2545 | Member head = {}; | ^ parse.c:2550:20: warning: ISO C forbids empty initializer braces [-Wpedantic] 2550 | VarAttr attr = {}; | ^ parse.c: In function 'funcall': parse.c:2885:15: warning: ISO C forbids empty initializer braces [-Wpedantic] 2885 | Node head = {}; | ^ parse.c: In function 'is_function': parse.c:3297:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 3297 | Type dummy = {}; | ^ parse.c: In function 'parse': parse.c:3342:20: warning: ISO C forbids empty initializer braces [-Wpedantic] 3342 | VarAttr attr = {}; | ^ cc -g -O2 -ffile-prefix-map=/build/chibicc-0+git20220719+ds=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -o chibicc codegen.o hashmap.o main.o parse.o preprocess.o strings.o tokenize.o type.o unicode.o -Wl,-z,relro -Wl,-z,now make[2]: Leaving directory '/build/chibicc-0+git20220719+ds' make[1]: Leaving directory '/build/chibicc-0+git20220719+ds' dh_auto_test make -j15 test make[1]: Entering directory '/build/chibicc-0+git20220719+ds' ./chibicc -Iinclude -Itest -c -o test/alignof.o test/alignof.c ./chibicc -Iinclude -Itest -c -o test/alloca.o test/alloca.c ./chibicc -Iinclude -Itest -c -o test/arith.o test/arith.c ./chibicc -Iinclude -Itest -c -o test/asm.o test/asm.c ./chibicc -Iinclude -Itest -c -o test/atomic.o test/atomic.c cc -pthread -o test/alignof.exe test/alignof.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/attribute.o test/attribute.c cc -pthread -o test/alloca.exe test/alloca.o -xc test/common cc -pthread -o test/asm.exe test/asm.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/bitfield.o test/bitfield.c ./chibicc -Iinclude -Itest -c -o test/builtin.o test/builtin.c ./chibicc -Iinclude -Itest -c -o test/cast.o test/cast.c cc -pthread -o test/attribute.exe test/attribute.o -xc test/common cc -pthread -o test/arith.exe test/arith.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/commonsym.o test/commonsym.c cc -pthread -o test/bitfield.exe test/bitfield.o -xc test/common cc -pthread -o test/builtin.exe test/builtin.o -xc test/common cc -pthread -o test/cast.exe test/cast.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/compat.o test/compat.c cc -pthread -o test/commonsym.exe test/commonsym.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/complit.o test/complit.c cc -pthread -o test/atomic.exe test/atomic.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/const.o test/const.c cc -pthread -o test/compat.exe test/compat.o -xc test/common cc -pthread -o test/complit.exe test/complit.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/constexpr.o test/constexpr.c cc -pthread -o test/const.exe test/const.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/control.o test/control.c cc -pthread -o test/constexpr.exe test/constexpr.o -xc test/common cc -pthread -o test/control.exe test/control.o -xc test/common /usr/bin/ld: warning: test/alignof.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/alloca.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/decl.o test/decl.c ./chibicc -Iinclude -Itest -c -o test/enum.o test/enum.c /usr/bin/ld: warning: test/asm.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/decl.exe test/decl.o -xc test/common /usr/bin/ld: /usr/bin/ld: warning: test/cast.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker warning: test/attribute.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/extern.o test/extern.c /usr/bin/ld: warning: test/builtin.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/enum.exe test/enum.o -xc test/common /usr/bin/ld: warning: test/bitfield.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/float.o test/float.c ./chibicc -Iinclude -Itest -c -o test/function.o test/function.c ./chibicc -Iinclude -Itest -c -o test/generic.o test/generic.c cc -pthread -o test/extern.exe test/extern.o -xc test/common /usr/bin/ld: warning: test/arith.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/initializer.o test/initializer.c /usr/bin/ld: warning: test/commonsym.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/generic.exe test/generic.o -xc test/common /usr/bin/ld: /usr/bin/ld: cc -pthread -o test/float.exe test/float.o -xc test/common warning: test/complit.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker warning: test/atomic.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/line.o test/line.c /usr/bin/ld: /usr/bin/ld: warning: test/const.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/literal.o test/literal.c warning: test/constexpr.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/compat.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/macro.o test/macro.c ./chibicc -Iinclude -Itest -c -o test/offsetof.o test/offsetof.c ./chibicc -Iinclude -Itest -c -o test/pointer.o test/pointer.c cc -pthread -o test/line.exe test/line.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/pragma-once.o test/pragma-once.c cc -pthread -o test/offsetof.exe test/offsetof.o -xc test/common cc -pthread -o test/function.exe test/function.o -xc test/common cc -pthread -o test/literal.exe test/literal.o -xc test/common cc -pthread -o test/macro.exe test/macro.o -xc test/common cc -pthread -o test/pragma-once.exe test/pragma-once.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/sizeof.o test/sizeof.c cc -pthread -o test/pointer.exe test/pointer.o -xc test/common /usr/bin/ld: warning: test/control.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/sizeof.exe test/sizeof.o -xc test/common cc -pthread -o test/initializer.exe test/initializer.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/stdhdr.o test/stdhdr.c /usr/bin/ld: warning: test/enum.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/decl.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/string.o test/string.c ./chibicc -Iinclude -Itest -c -o test/struct.o test/struct.c cc -pthread -o test/stdhdr.exe test/stdhdr.o -xc test/common /usr/bin/ld: warning: test/extern.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/tls.o test/tls.c cc -pthread -o test/string.exe test/string.o -xc test/common cc -pthread -o test/struct.exe test/struct.o -xc test/common /usr/bin/ld: warning: test/generic.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/float.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/typedef.o test/typedef.c ./chibicc -Iinclude -Itest -c -o test/typeof.o test/typeof.c /usr/bin/ld: warning: test/offsetof.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/typedef.exe test/typedef.o -xc test/common /usr/bin/ld: warning: test/macro.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/typeof.exe test/typeof.o -xc test/common /usr/bin/ld: warning: test/literal.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/function.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/unicode.o test/unicode.c /usr/bin/ld: warning: test/line.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/union.o test/union.c ./chibicc -Iinclude -Itest -c -o test/usualconv.o test/usualconv.c cc -pthread -o test/tls.exe test/tls.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/varargs.o test/varargs.c /usr/bin/ld: warning: test/sizeof.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ./chibicc -Iinclude -Itest -c -o test/variable.o test/variable.c /usr/bin/ld: warning: test/pointer.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/usualconv.exe test/usualconv.o -xc test/common /usr/bin/ld: warning: test/pragma-once.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/union.exe test/union.o -xc test/common cc -pthread -o test/unicode.exe test/unicode.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/vla.o test/vla.c cc -pthread -o test/varargs.exe test/varargs.o -xc test/common cc -pthread -o test/variable.exe test/variable.o -xc test/common /usr/bin/ld: warning: test/initializer.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker cc -pthread -o test/vla.exe test/vla.o -xc test/common /usr/bin/ld: warning: test/stdhdr.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/string.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/struct.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/typeof.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/typedef.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/union.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/tls.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/unicode.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/usualconv.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/varargs.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/variable.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /usr/bin/ld: warning: test/vla.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker for i in test/alignof.exe test/alloca.exe test/arith.exe test/asm.exe test/atomic.exe test/attribute.exe test/bitfield.exe test/builtin.exe test/cast.exe test/commonsym.exe test/compat.exe test/complit.exe test/const.exe test/constexpr.exe test/control.exe test/decl.exe test/enum.exe test/extern.exe test/float.exe test/function.exe test/generic.exe test/initializer.exe test/line.exe test/literal.exe test/macro.exe test/offsetof.exe test/pointer.exe test/pragma-once.exe test/sizeof.exe test/stdhdr.exe test/string.exe test/struct.exe test/tls.exe test/typedef.exe test/typeof.exe test/unicode.exe test/union.exe test/usualconv.exe test/varargs.exe test/variable.exe test/vla.exe; do echo $i; ./$i || exit 1; echo; done test/alignof.exe _Alignof(char) => 1 _Alignof(short) => 2 _Alignof(int) => 4 _Alignof(long) => 8 _Alignof(long long) => 8 _Alignof(char[3]) => 1 _Alignof(int[3]) => 4 _Alignof(struct {char a; char b;}[2]) => 1 _Alignof(struct {char a; long b;}[2]) => 8 ({ _Alignas(char) char x, y; &y-&x; }) => 1 ({ _Alignas(long) char x, y; &y-&x; }) => 8 ({ _Alignas(32) char x, y; &y-&x; }) => 32 ({ _Alignas(32) int *x, *y; ((char *)&y)-((char *)&x); }) => 32 ({ struct { _Alignas(16) char x, y; } a; &a.y-&a.x; }) => 16 ({ struct T { _Alignas(8) char a; }; _Alignof(struct T); }) => 8 (long)(char *)&g1 % 512 => 0 (long)(char *)&g2 % 512 => 0 (long)(char *)&g4 % 4 => 0 (long)(char *)&g5 % 8 => 0 ({ char x; _Alignof(x); }) => 1 ({ int x; _Alignof(x); }) => 4 ({ char x; _Alignof x; }) => 1 ({ int x; _Alignof x; }) => 4 _Alignof(char) << 31 >> 31 => 1 _Alignof(char) << 63 >> 63 => 1 ({ char x; _Alignof(x) << 63 >> 63; }) => 1 ({ char x[16]; (unsigned long)&x % 16; }) => 0 ({ char x[17]; (unsigned long)&x % 16; }) => 0 ({ char x[100]; (unsigned long)&x % 16; }) => 0 ({ char x[101]; (unsigned long)&x % 16; }) => 0 OK test/alloca.exe p1 - p2 => 16 p2 - p3 => 16 p3 - p4 => 16 memcmp(p1, "0123456789abcdef", 16) => 0 memcmp(p2, "ghijklmnopqrstuv", 16) => 0 memcmp(p3, "wxy", 3) => 0 OK test/arith.exe 0 => 0 42 => 42 5+20-4 => 21 12 + 34 - 5 => 41 5+6*7 => 47 5*(9-6) => 15 (3+5)/2 => 4 -10+20 => 10 - -10 => 10 - - +10 => 10 0==1 => 0 42==42 => 1 0!=1 => 1 42!=42 => 0 0<1 => 1 1<1 => 0 2<1 => 0 0<=1 => 1 1<=1 => 1 2<=1 => 0 1>0 => 1 1>1 => 0 1>2 => 0 1>=0 => 1 1>=1 => 1 1>=2 => 0 1073741824 * 100 / 100 => 0 ({ int i=2; i+=5; i; }) => 7 ({ int i=2; i+=5; }) => 7 ({ int i=5; i-=2; i; }) => 3 ({ int i=5; i-=2; }) => 3 ({ int i=3; i*=2; i; }) => 6 ({ int i=3; i*=2; }) => 6 ({ int i=6; i/=2; i; }) => 3 ({ int i=6; i/=2; }) => 3 ({ int i=2; ++i; }) => 3 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; ++*p; }) => 2 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; --*p; }) => 0 ({ int i=2; i++; }) => 2 ({ int i=2; i--; }) => 2 ({ int i=2; i++; i; }) => 3 ({ int i=2; i--; i; }) => 1 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; *p++; }) => 1 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; *p--; }) => 1 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p++)--; a[0]; }) => 0 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*(p--))--; a[1]; }) => 0 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p)--; a[2]; }) => 2 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p)--; p++; *p; }) => 2 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p++)--; a[0]; }) => 0 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p++)--; a[1]; }) => 0 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p++)--; a[2]; }) => 2 ({ int a[3]; a[0]=0; a[1]=1; a[2]=2; int *p=a+1; (*p++)--; *p; }) => 2 !1 => 0 !2 => 0 !0 => 1 !(char)0 => 1 !(long)3 => 0 sizeof(!(char)0) => 4 sizeof(!(long)0) => 4 ~0 => -1 ~-1 => 0 17%6 => 5 ((long)17)%6 => 5 ({ int i=10; i%=4; i; }) => 2 ({ long i=10; i%=4; i; }) => 2 0&1 => 0 3&1 => 1 7&3 => 3 -1&10 => 10 0|1 => 1 0b10000|0b00011 => 19 0^0 => 0 0b1111^0b1111 => 0 0b111000^0b001100 => 52 ({ int i=6; i&=3; i; }) => 2 ({ int i=6; i|=3; i; }) => 7 ({ int i=15; i^=5; i; }) => 10 1<<0 => 1 1<<3 => 8 5<<1 => 10 5>>1 => 2 -1>>1 => -1 ({ int i=1; i<<=0; i; }) => 1 ({ int i=1; i<<=3; i; }) => 8 ({ int i=5; i<<=1; i; }) => 10 ({ int i=5; i>>=1; i; }) => 2 -1 => -1 ({ int i=-1; i; }) => -1 ({ int i=-1; i>>=1; i; }) => -1 0?1:2 => 2 1?1:2 => 1 0?-2:-1 => -1 1?-2:-1 => -2 sizeof(0?1:2) => 4 sizeof(0?(long)1:(long)2) => 8 0?(long)-2:-1 => -1 0?-2:(long)-1 => -1 1?(long)-2:-1 => -2 1?-2:(long)-1 => -2 ({ int x; int *p=&x; p+20-p; }) => 20 ({ int x; int *p=&x; p+20-p>0; }) => 1 ({ int x; int *p=&x; p-20-p; }) => -20 ({ int x; int *p=&x; p-20-p<0; }) => 1 (char *)0xffffffffffffffff - (char *)0xfffffffffffffff0 => 15 (char *)0xfffffffffffffff0 - (char *)0xffffffffffffffff => -15 (void *)0xffffffffffffffff > (void *)0 => 1 3?:5 => 3 0?:5 => 5 ({ int i = 3; ++i?:10; }) => 4 (long double)3 => 3 (long double)3+2 => 5 (long double)3*2 => 6 (long double)3+2.0 => 5 OK test/asm.exe asm_fn1() => 50 asm_fn2() => 55 OK test/atomic.exe add_millions() => 6000000 ({ int x=3; __builtin_atomic_exchange((&x), (5)); }) => 3 ({ int x=3; __builtin_atomic_exchange((&x), (5)); x; }) => 5 OK test/attribute.exe ({ struct { char a; int b; } __attribute__((packed)) x; sizeof(x); }) => 5 offsetof(struct __attribute__((packed)) { char a; int b; }, a) => 0 offsetof(struct __attribute__((packed)) { char a; int b; }, b) => 1 ({ struct __attribute__((packed)) { char a; int b; } x; sizeof(x); }) => 5 offsetof(struct { char a; int b; } __attribute__((packed)), a) => 0 offsetof(struct { char a; int b; } __attribute__((packed)), b) => 1 ({ typedef struct { char a; int b[2]; } __attribute__((packed)) T; sizeof(T); }) => 9 ({ typedef struct __attribute__((packed)) { char a; int b[2]; } T; sizeof(T); }) => 9 offsetof(struct __attribute__((packed)) T { char a; int b[2]; }, b) => 1 _Alignof(struct __attribute__((packed)) { char a; int b[2]; }) => 1 ({ struct __attribute__((aligned(8))) { int a; } x; _Alignof(x); }) => 8 ({ struct { int a; } __attribute__((aligned(8))) x; _Alignof(x); }) => 8 ({ struct __attribute__((aligned(8), packed)) { char a; int b; } x; _Alignof(x); }) => 8 ({ struct { char a; int b; } __attribute__((aligned(8), packed)) x; _Alignof(x); }) => 8 offsetof(struct __attribute__((aligned(8), packed)) { char a; int b; }, b) => 1 offsetof(struct { char a; int b; } __attribute__((aligned(8), packed)), b) => 1 ({ struct __attribute__((aligned(8))) __attribute__((packed)) { char a; int b; } x; _Alignof(x); }) => 8 ({ struct { char a; int b; } __attribute__((aligned(8))) __attribute__((packed)) x; _Alignof(x); }) => 8 offsetof(struct __attribute__((aligned(8))) __attribute__((packed)) { char a; int b; }, b) => 1 offsetof(struct { char a; int b; } __attribute__((aligned(8))) __attribute__((packed)), b) => 1 ({ struct __attribute__((aligned(8))) { char a; int b; } __attribute__((packed)) x; _Alignof(x); }) => 8 offsetof(struct __attribute__((aligned(8))) { char a; int b; } __attribute__((packed)), b) => 1 ({ struct __attribute__((aligned(8+8))) { char a; int b; } x; _Alignof(x); }) => 16 OK test/bitfield.exe sizeof(struct {int x:1; }) => 4 sizeof(struct {long x:1; }) => 8 sizeof(struct bit1) => 4 ({ struct bit1 x; x.a=1; x.b=2; x.c=3; x.d=4; x.e=5; x.a; }) => 1 ({ struct bit1 x={1,2,3,4,5}; x.a; }) => 1 ({ struct bit1 x={1,2,3,4,5}; x.b; }) => 2 ({ struct bit1 x={1,2,3,4,5}; x.c; }) => -1 ({ struct bit1 x={1,2,3,4,5}; x.d; }) => -4 ({ struct bit1 x={1,2,3,4,5}; x.e; }) => -3 g45.a => 1 g45.b => 2 g45.c => 3 g46.a => 0 g46.b => 0 g46.c => 0 ({ T3 x={1,2,3}; x.a++; }) => 1 ({ T3 x={1,2,3}; x.b++; }) => 2 ({ T3 x={1,2,3}; x.c++; }) => 3 ({ T3 x={1,2,3}; ++x.a; }) => 2 ({ T3 x={1,2,3}; ++x.b; }) => 3 ({ T3 x={1,2,3}; ++x.c; }) => 4 sizeof(struct {int a:3; int c:1; int c:5;}) => 4 sizeof(struct {int a:3; int:0; int c:5;}) => 8 sizeof(struct {int a:3; int:0;}) => 4 OK test/builtin.exe __builtin_types_compatible_p(int, int) => 1 __builtin_types_compatible_p(double, double) => 1 __builtin_types_compatible_p(int, long) => 0 __builtin_types_compatible_p(long, float) => 0 __builtin_types_compatible_p(int *, int *) => 1 __builtin_types_compatible_p(short *, int *) => 0 __builtin_types_compatible_p(int **, int *) => 0 __builtin_types_compatible_p(const int, int) => 1 __builtin_types_compatible_p(unsigned, int) => 0 __builtin_types_compatible_p(signed, int) => 1 __builtin_types_compatible_p(struct {int a;}, struct {int a;}) => 0 __builtin_types_compatible_p(int (*)(void), int (*)(void)) => 1 __builtin_types_compatible_p(void (*)(int), void (*)(int)) => 1 __builtin_types_compatible_p(void (*)(int, double), void (*)(int, double)) => 1 __builtin_types_compatible_p(int (*)(float, double), int (*)(float, double)) => 1 __builtin_types_compatible_p(int (*)(float, double), int) => 0 __builtin_types_compatible_p(int (*)(float, double), int (*)(float)) => 0 __builtin_types_compatible_p(int (*)(float, double), int (*)(float, double, int)) => 0 __builtin_types_compatible_p(double (*)(...), double (*)(...)) => 1 __builtin_types_compatible_p(double (*)(...), double (*)(void)) => 0 ({ typedef struct {int a;} T; __builtin_types_compatible_p(T, T); }) => 1 ({ typedef struct {int a;} T; __builtin_types_compatible_p(T, const T); }) => 1 ({ struct {int a; int b;} x; __builtin_types_compatible_p(typeof(x.a), typeof(x.b)); }) => 1 OK test/cast.exe (int)8590066177 => 131585 (short)8590066177 => 513 (char)8590066177 => 1 (long)1 => 1 (long)&*(int *)0 => 0 ({ int x=512; *(char *)&x=1; x; }) => 513 ({ int x=5; long y=(long)&x; *(int*)y; }) => 5 (char)255 => -1 (signed char)255 => -1 (unsigned char)255 => 255 (short)65535 => -1 (unsigned short)65535 => 65535 (int)0xffffffff => -1 (unsigned)0xffffffff => -1 -1<1 => 1 -1<(unsigned)1 => 0 (char)127+(char)127 => 254 (short)32767+(short)32767 => 65534 -1>>1 => -1 (unsigned long)-1 => -1 ((unsigned)-1)>>1 => 2147483647 (-100)/2 => -50 ((unsigned)-100)/2 => 2147483598 ((unsigned long)-100)/2 => -50 ((long)-1)/(unsigned)100 => 0 (-100)%7 => -2 ((unsigned)-100)%7 => 2 ((unsigned long)-100)%9 => 6 (int)(unsigned short)65535 => 65535 ({ unsigned short x = 65535; x; }) => 65535 ({ unsigned short x = 65535; (int)x; }) => 65535 ({ typedef short T; T x = 65535; (int)x; }) => -1 ({ typedef unsigned short T; T x = 65535; (int)x; }) => 65535 (_Bool)0.0 => 0 (_Bool)0.1 => 1 (char)3.0 => 3 (short)1000.3 => 1000 (int)3.99 => 3 (long)2e15 => 1233977344 (float)3.5 => 3 (double)(float)5.5 => 5 (float)3 => 3 (double)3 => 3 (float)3L => 3 (double)3L => 3 OK test/commonsym.exe x => 5 y => 7 common_ext1 => 0 common_ext2 => 3 OK test/compat.exe OK test/complit.exe (int){1} => 1 ((int[]){0,1,2})[2] => 2 ((struct {char a; int b;}){'a', 3}).a => 97 ({ int x=3; (int){x}; }) => 3 tree->val => 1 tree->lhs->val => 2 tree->lhs->lhs->val => 3 tree->lhs->rhs->val => 4 OK test/const.exe ({ const x = 5; x; }) => 5 ({ const x = 8; int *const y=&x; *y; }) => 8 ({ const x = 6; *(const * const)&x; }) => 6 OK test/constexpr.exe ({ enum { ten=1+2+3+4 }; ten; }) => 10 ({ int i=0; switch(3) { case 5-2+0*3: i++; } i; }) => 1 ({ int x[1+1]; sizeof(x); }) => 8 ({ char x[8-2]; sizeof(x); }) => 6 ({ char x[2*3]; sizeof(x); }) => 6 ({ char x[12/4]; sizeof(x); }) => 3 ({ char x[12%10]; sizeof(x); }) => 2 ({ char x[0b110&0b101]; sizeof(x); }) => 4 ({ char x[0b110|0b101]; sizeof(x); }) => 7 ({ char x[0b111^0b001]; sizeof(x); }) => 6 ({ char x[1<<2]; sizeof(x); }) => 4 ({ char x[4>>1]; sizeof(x); }) => 2 ({ char x[(1==1)+1]; sizeof(x); }) => 2 ({ char x[(1!=1)+1]; sizeof(x); }) => 1 ({ char x[(1<1)+1]; sizeof(x); }) => 1 ({ char x[(1<=1)+1]; sizeof(x); }) => 2 ({ char x[1?2:3]; sizeof(x); }) => 2 ({ char x[0?2:3]; sizeof(x); }) => 3 ({ char x[(1,3)]; sizeof(x); }) => 3 ({ char x[!0+1]; sizeof(x); }) => 2 ({ char x[!1+1]; sizeof(x); }) => 1 ({ char x[~-3]; sizeof(x); }) => 2 ({ char x[(5||6)+1]; sizeof(x); }) => 2 ({ char x[(0||0)+1]; sizeof(x); }) => 1 ({ char x[(1&&1)+1]; sizeof(x); }) => 2 ({ char x[(1&&0)+1]; sizeof(x); }) => 1 ({ char x[(int)3]; sizeof(x); }) => 3 ({ char x[(char)0xffffff0f]; sizeof(x); }) => 15 ({ char x[(short)0xffff010f]; sizeof(x); }) => 271 ({ char x[(int)0xfffffffffff+5]; sizeof(x); }) => 4 ({ char x[(int*)0+2]; sizeof(x); }) => 8 ({ char x[(int*)16-1]; sizeof(x); }) => 12 ({ char x[(int*)16-(int*)4]; sizeof(x); }) => 3 ({ char x[(-1>>31)+5]; sizeof(x); }) => 4 ({ char x[(unsigned char)0xffffffff]; sizeof(x); }) => 255 ({ char x[(unsigned short)0xffff800f]; sizeof(x); }) => 32783 ({ char x[(unsigned int)0xfffffffffff>>31]; sizeof(x); }) => 1 ({ char x[(long)-1/((long)1<<62)+1]; sizeof(x); }) => 1 ({ char x[(unsigned long)-1/((long)1<<62)+1]; sizeof(x); }) => 4 ({ char x[(unsigned)1<-1]; sizeof(x); }) => 1 ({ char x[(unsigned)1<=-1]; sizeof(x); }) => 1 g40==1.5 => 1 g41==11 => 1 OK test/control.exe ({ int x; if (0) x=2; else x=3; x; }) => 3 ({ int x; if (1-1) x=2; else x=3; x; }) => 3 ({ int x; if (1) x=2; else x=3; x; }) => 2 ({ int x; if (2-1) x=2; else x=3; x; }) => 2 ({ int i=0; int j=0; for (i=0; i<=10; i=i+1) j=i+j; j; }) => 55 ({ int i=0; while(i<10) i=i+1; i; }) => 10 ({ 1; {2;} 3; }) => 3 ({ ;;; 5; }) => 5 ({ int i=0; while(i<10) i=i+1; i; }) => 10 ({ int i=0; int j=0; while(i<=10) {j=i+j; i=i+1;} j; }) => 55 (1,2,3) => 3 ({ int i=2, j=3; (i=5,j)=6; i; }) => 5 ({ int i=2, j=3; (i=5,j)=6; j; }) => 6 ({ int j=0; for (int i=0; i<=10; i=i+1) j=j+i; j; }) => 55 ({ int i=3; int j=0; for (int i=0; i<=10; i=i+1) j=j+i; i; }) => 3 0||1 => 1 0||(2-2)||5 => 1 0||0 => 0 0||(2-2) => 0 0&&1 => 0 (2-2)&&5 => 0 1&&5 => 1 ({ int i=0; goto a; a: i++; b: i++; c: i++; i; }) => 3 ({ int i=0; goto e; d: i++; e: i++; f: i++; i; }) => 2 ({ int i=0; goto i; g: i++; h: i++; i: i++; i; }) => 1 ({ typedef int foo; goto foo; foo:; 1; }) => 1 ({ int i=0; for(;i<10;i++) { if (i == 3) break; } i; }) => 3 ({ int i=0; while (1) { if (i++ == 3) break; } i; }) => 4 ({ int i=0; for(;i<10;i++) { for (;;) break; if (i == 3) break; } i; }) => 3 ({ int i=0; while (1) { while(1) break; if (i++ == 3) break; } i; }) => 4 ({ int i=0; int j=0; for (;i<10;i++) { if (i>5) continue; j++; } i; }) => 10 ({ int i=0; int j=0; for (;i<10;i++) { if (i>5) continue; j++; } j; }) => 6 ({ int i=0; int j=0; for(;!i;) { for (;j!=10;j++) continue; break; } j; }) => 10 ({ int i=0; int j=0; while (i++<10) { if (i>5) continue; j++; } i; }) => 11 ({ int i=0; int j=0; while (i++<10) { if (i>5) continue; j++; } j; }) => 5 ({ int i=0; int j=0; while(!i) { while (j++!=10) continue; break; } j; }) => 11 ({ int i=0; switch(0) { case 0:i=5;break; case 1:i=6;break; case 2:i=7;break; } i; }) => 5 ({ int i=0; switch(1) { case 0:i=5;break; case 1:i=6;break; case 2:i=7;break; } i; }) => 6 ({ int i=0; switch(2) { case 0:i=5;break; case 1:i=6;break; case 2:i=7;break; } i; }) => 7 ({ int i=0; switch(3) { case 0:i=5;break; case 1:i=6;break; case 2:i=7;break; } i; }) => 0 ({ int i=0; switch(0) { case 0:i=5;break; default:i=7; } i; }) => 5 ({ int i=0; switch(1) { case 0:i=5;break; default:i=7; } i; }) => 7 ({ int i=0; switch(1) { case 0: 0; case 1: 0; case 2: 0; i=2; } i; }) => 2 ({ int i=0; switch(3) { case 0: 0; case 1: 0; case 2: 0; i=2; } i; }) => 0 ({ int i=0; switch(-1) { case 0xffffffff: i=3; break; } i; }) => 3 ({ int i=0; int j=0; do { j++; } while (i++ < 6); j; }) => 7 ({ int i=0; int j=0; int k=0; do { if (++j > 3) break; continue; k++; } while (1); j; }) => 4 0.0 && 0.0 => 0 0.0 && 0.1 => 0 0.3 && 0.0 => 0 0.3 && 0.5 => 1 0.0 || 0.0 => 0 0.0 || 0.1 => 1 0.3 || 0.0 => 1 0.3 || 0.5 => 1 ({ int x; if (0.0) x=3; else x=5; x; }) => 5 ({ int x; if (0.1) x=3; else x=5; x; }) => 3 ({ int x=5; if (0.0) x=3; x; }) => 5 ({ int x=5; if (0.1) x=3; x; }) => 3 ({ double i=10.0; int j=0; for (; i; i--, j++); j; }) => 10 ({ double i=10.0; int j=0; do j++; while(--i); j; }) => 10 ({ int i=0; switch(7) { case 0 ... 5: i=1; break; case 6 ... 20: i=2; break; } i; }) => 2 ({ int i=0; switch(7) { case 0 ... 7: i=1; break; case 8 ... 10: i=2; break; } i; }) => 1 ({ int i=0; switch(7) { case 0: i=1; break; case 7 ... 7: i=1; break; } i; }) => 1 ({ void *p = &&v11; int i=0; goto *p; v11:i++; v12:i++; v13:i++; i; }) => 3 ({ void *p = &&v22; int i=0; goto *p; v21:i++; v22:i++; v23:i++; i; }) => 2 ({ void *p = &&v33; int i=0; goto *p; v31:i++; v32:i++; v33:i++; i; }) => 1 ({ static void *p[]={&&v41,&&v42,&&v43}; int i=0; goto *p[0]; v41:i++; v42:i++; v43:i++; i; }) => 3 ({ static void *p[]={&&v52,&&v52,&&v53}; int i=0; goto *p[1]; v51:i++; v52:i++; v53:i++; i; }) => 2 ({ static void *p[]={&&v62,&&v62,&&v63}; int i=0; goto *p[2]; v61:i++; v62:i++; v63:i++; i; }) => 1 OK test/decl.exe ({ char x; sizeof(x); }) => 1 ({ short int x; sizeof(x); }) => 2 ({ int short x; sizeof(x); }) => 2 ({ int x; sizeof(x); }) => 4 ({ long int x; sizeof(x); }) => 8 ({ int long x; sizeof(x); }) => 8 ({ long long x; sizeof(x); }) => 8 ({ _Bool x=0; x; }) => 0 ({ _Bool x=1; x; }) => 1 ({ _Bool x=2; x; }) => 1 (_Bool)1 => 1 (_Bool)2 => 1 (_Bool)(char)256 => 0 OK test/enum.exe ({ enum { zero, one, two }; zero; }) => 0 ({ enum { zero, one, two }; one; }) => 1 ({ enum { zero, one, two }; two; }) => 2 ({ enum { five=5, six, seven }; five; }) => 5 ({ enum { five=5, six, seven }; six; }) => 6 ({ enum { zero, five=5, three=3, four }; zero; }) => 0 ({ enum { zero, five=5, three=3, four }; five; }) => 5 ({ enum { zero, five=5, three=3, four }; three; }) => 3 ({ enum { zero, five=5, three=3, four }; four; }) => 4 ({ enum { zero, one, two } x; sizeof(x); }) => 4 ({ enum t { zero, one, two }; enum t y; sizeof(y); }) => 4 OK test/extern.exe ext1 => 5 *ext2 => 5 ext3 => 7 ext_fn1(5) => 5 ext_fn2(8) => 8 OK test/float.exe (float)(char)35 => 35 (float)(short)35 => 35 (float)(int)35 => 35 (float)(long)35 => 35 (float)(unsigned char)35 => 35 (float)(unsigned short)35 => 35 (float)(unsigned int)35 => 35 (float)(unsigned long)35 => 35 (double)(char)35 => 35 (double)(short)35 => 35 (double)(int)35 => 35 (double)(long)35 => 35 (double)(unsigned char)35 => 35 (double)(unsigned short)35 => 35 (double)(unsigned int)35 => 35 (double)(unsigned long)35 => 35 (char)(float)35 => 35 (short)(float)35 => 35 (int)(float)35 => 35 (long)(float)35 => 35 (unsigned char)(float)35 => 35 (unsigned short)(float)35 => 35 (unsigned int)(float)35 => 35 (unsigned long)(float)35 => 35 (char)(double)35 => 35 (short)(double)35 => 35 (int)(double)35 => 35 (long)(double)35 => 35 (unsigned char)(double)35 => 35 (unsigned short)(double)35 => 35 (unsigned int)(double)35 => 35 (unsigned long)(double)35 => 35 (double)(unsigned long)(long)-1 => -2147483648 2e3==2e3 => 1 2e3==2e5 => 0 2.0==2 => 1 5.1<5 => 0 5.0<5 => 0 4.9<5 => 1 5.1<=5 => 0 5.0<=5 => 1 4.9<=5 => 1 2e3f==2e3 => 1 2e3f==2e5 => 0 2.0f==2 => 1 5.1f<5 => 0 5.0f<5 => 0 4.9f<5 => 1 5.1f<=5 => 0 5.0f<=5 => 1 4.9f<=5 => 1 2.3+3.8 => 6 2.3-3.8 => -1 -3.8 => -3 3.3*4 => 13 5.0/2 => 2 2.3f+3.8f => 6 2.3f+3.8 => 6 2.3f-3.8 => -1 -3.8f => -3 3.3f*4 => 13 5.0f/2 => 2 0.0/0.0 == 0.0/0.0 => 0 0.0/0.0 != 0.0/0.0 => 1 0.0/0.0 < 0 => 0 0.0/0.0 <= 0 => 0 0.0/0.0 > 0 => 0 0.0/0.0 >= 0 => 0 !3. => 0 !0. => 1 !3.f => 0 !0.f => 1 0.0 ? 3 : 5 => 5 1.2 ? 3 : 5 => 3 OK test/function.exe ret3() => 3 add2(3, 5) => 8 sub2(5, 3) => 2 add6(1,2,3,4,5,6) => 21 add6(1,2,add6(3,4,5,6,7,8),9,10,11) => 66 add6(1,2,add6(3,add6(4,5,6,7,8,9),10,11,12,13),14,15,16) => 136 add2(3,4) => 7 sub2(4,3) => 1 fib(9) => 55 ({ sub_char(7, 3, 3); }) => 1 sub_long(7, 3, 3) => 1 sub_short(7, 3, 3) => 1 *g1_ptr() => 3 int_to_char(261) => 5 int_to_char(261) => 5 div_long(-10, 2) => -5 bool_fn_add(3) => 1 bool_fn_sub(3) => 0 bool_fn_add(-3) => 1 bool_fn_sub(-3) => 0 bool_fn_add(0) => 1 bool_fn_sub(0) => 1 static_fn() => 3 ({ int x[2]; x[0]=3; param_decay(x); }) => 3 counter() => 2 counter() => 4 counter() => 6 true_fn() => 1 false_fn() => 0 char_fn() => 3 short_fn() => 5 add_all(3,1,2,3) => 6 add_all(4,1,2,3,-1) => 5 1 2 foo ({ char buf[100]; sprintf(buf, "%d %d %s", 1, 2, "foo"); strcmp("1 2 foo", buf); }) => 0 ({ char buf[100]; fmt(buf, "%d %d %s", 1, 2, "foo"); strcmp("1 2 foo", buf); }) => 0 uchar_fn() => 251 ushort_fn() => 65528 schar_fn() => -5 sshort_fn() => -8 add_float(2.3, 3.8) => 6 add_double(2.3, 3.8) => 6 add_float3(2.5, 2.5, 2.5) => 7 add_double3(2.5, 2.5, 2.5) => 7 ({ char buf[100]; sprintf(buf, "%.1f", (float)3.5); strcmp(buf, "3.5"); }) => 0 ({ char buf[100]; fmt(buf, "%.1f", (float)3.5); strcmp(buf, "3.5"); }) => 0 (add2)(2,3) => 5 (&add2)(2,3) => 5 ({ int (*fn)(int,int) = add2; fn(2,5); }) => 7 fnptr(add_all)(3, 1, 2, 3) => 6 param_decay2(ret3) => 3 sizeof(__func__) => 5 strcmp("main", __func__) => 0 strcmp("func_fn", func_fn()) => 0 strcmp("main", __FUNCTION__) => 0 strcmp("function_fn", function_fn()) => 0 add10_int(1,2,3,4,5,6,7,8,9,10) => 55 add10_float(1,2,3,4,5,6,7,8,9,10) => 55 add10_double(1,2,3,4,5,6,7,8,9,10) => 55 ({ char buf[200]; sprintf(buf, "%d %.1f %.1f %.1f %d %d %.1f %d %d %d %d %.1f %d %d %.1f %.1f %.1f %.1f %d", 1, 1.0, 1.0, 1.0, 1, 1, 1.0, 1, 1, 1, 1, 1.0, 1, 1, 1.0, 1.0, 1.0, 1.0, 1); strcmp("1 1.0 1.0 1.0 1 1 1.0 1 1 1 1 1.0 1 1 1.0 1.0 1.0 1.0 1", buf); }) => 0 many_args1(1,2,3,4,5,6,40,10) => 4 many_args2(1,2,3,4,5,6,7,8,40,10) => 4 many_args3(1,2,3,4,5,6,7,8,9,10,11,12,13,14,80,10) => 8 ({ Ty4 x={10,20,30,40}; struct_test4(x, 0); }) => 10 ({ Ty4 x={10,20,30,40}; struct_test4(x, 1); }) => 20 ({ Ty4 x={10,20,30,40}; struct_test4(x, 2); }) => 30 ({ Ty4 x={10,20,30,40}; struct_test4(x, 3); }) => 40 ({ Ty5 x={10,20,30}; struct_test5(x, 0); }) => 10 ({ Ty5 x={10,20,30}; struct_test5(x, 1); }) => 20 ({ Ty5 x={10,20,30}; struct_test5(x, 2); }) => 30 ({ Ty6 x={10,20,30}; struct_test6(x, 0); }) => 10 ({ Ty6 x={10,20,30}; struct_test6(x, 1); }) => 20 ({ Ty6 x={10,20,30}; struct_test6(x, 2); }) => 30 ({ Ty7 x={10,20,30}; struct_test7(x, 0); }) => 10 ({ Ty7 x={10,20,30}; struct_test7(x, 1); }) => 20 ({ Ty7 x={10,20,30}; struct_test7(x, 2); }) => 30 ({ Ty4 x={10,20,30,40}; struct_test14(x, 0); }) => 10 ({ Ty4 x={10,20,30,40}; struct_test14(x, 1); }) => 20 ({ Ty4 x={10,20,30,40}; struct_test14(x, 2); }) => 30 ({ Ty4 x={10,20,30,40}; struct_test14(x, 3); }) => 40 ({ Ty5 x={10,20,30}; struct_test15(x, 0); }) => 10 ({ Ty5 x={10,20,30}; struct_test15(x, 1); }) => 20 ({ Ty5 x={10,20,30}; struct_test15(x, 2); }) => 30 struct_test24().a => 10 struct_test24().b => 20 struct_test24().c => 30 struct_test24().d => 40 struct_test25().a => 10 struct_test25().b => 20 struct_test25().c => 30 struct_test26().a[0] => 10 struct_test26().a[1] => 20 struct_test26().a[2] => 30 struct_test27().a[0] => 10 struct_test27().a[5] => 60 struct_test27().a[9] => 100 struct_test28().a[0] => 1 struct_test28().a[4] => 5 struct_test28().a[9] => 10 struct_test28().a[14] => 15 struct_test28().a[19] => 20 struct_test34().a => 10 struct_test34().b => 20 struct_test34().c => 30 struct_test34().d => 40 struct_test35().a => 10 struct_test35().b => 20 struct_test35().c => 30 struct_test36().a[0] => 10 struct_test36().a[1] => 20 struct_test36().a[2] => 30 struct_test37().a[0] => 10 struct_test37().a[5] => 60 struct_test37().a[9] => 100 struct_test38().a[0] => 1 struct_test38().a[4] => 5 struct_test38().a[9] => 10 struct_test38().a[14] => 15 struct_test38().a[19] => 20 (***add2)(2,3) => 5 inline_fn() => 3 ({ char buf[100]; sprintf(buf, "%Lf", (long double)12.3); strncmp(buf, "12.3", 4); }) => 0 to_double(3.5) == 3.5 => 1 to_double(3.5) == 3 => 0 (long double)5.0 == (long double)5.0 => 1 (long double)5.0 == (long double)5.2 => 0 to_ldouble(5.0) == 5.0 => 1 to_ldouble(5.0) == 5.2 => 0 OK test/generic.exe _Generic(100.0, double: 1, int *: 2, int: 3, float: 4) => 1 _Generic((int *)0, double: 1, int *: 2, int: 3, float: 4) => 2 _Generic((int[3]){}, double: 1, int *: 2, int: 3, float: 4) => 2 _Generic(100, double: 1, int *: 2, int: 3, float: 4) => 3 _Generic(100f, double: 1, int *: 2, int: 3, float: 4) => 4 OK test/initializer.exe ({ int x[3]={1,2,3}; x[0]; }) => 1 ({ int x[3]={1,2,3}; x[1]; }) => 2 ({ int x[3]={1,2,3}; x[2]; }) => 3 ({ int x[3]={1,2,3}; x[2]; }) => 3 ({ int x[2][3]={{1,2,3},{4,5,6}}; x[0][1]; }) => 2 ({ int x[2][3]={{1,2,3},{4,5,6}}; x[1][0]; }) => 4 ({ int x[2][3]={{1,2,3},{4,5,6}}; x[1][2]; }) => 6 ({ int x[3]={}; x[0]; }) => 0 ({ int x[3]={}; x[1]; }) => 0 ({ int x[3]={}; x[2]; }) => 0 ({ int x[2][3]={{1,2}}; x[0][1]; }) => 2 ({ int x[2][3]={{1,2}}; x[1][0]; }) => 0 ({ int x[2][3]={{1,2}}; x[1][2]; }) => 0 ({ char x[4]="abc"; x[0]; }) => 97 ({ char x[4]="abc"; x[2]; }) => 99 ({ char x[4]="abc"; x[3]; }) => 0 ({ char x[2][4]={"abc","def"}; x[0][0]; }) => 97 ({ char x[2][4]={"abc","def"}; x[0][3]; }) => 0 ({ char x[2][4]={"abc","def"}; x[1][0]; }) => 100 ({ char x[2][4]={"abc","def"}; x[1][2]; }) => 102 ({ int x[]={1,2,3,4}; x[3]; }) => 4 ({ int x[]={1,2,3,4}; sizeof(x); }) => 16 ({ char x[]="foo"; sizeof(x); }) => 4 ({ typedef char T[]; T x="foo"; T y="x"; sizeof(x); }) => 4 ({ typedef char T[]; T x="foo"; T y="x"; sizeof(y); }) => 2 ({ typedef char T[]; T x="x"; T y="foo"; sizeof(x); }) => 2 ({ typedef char T[]; T x="x"; T y="foo"; sizeof(y); }) => 4 ({ struct {int a; int b; int c;} x={1,2,3}; x.a; }) => 1 ({ struct {int a; int b; int c;} x={1,2,3}; x.b; }) => 2 ({ struct {int a; int b; int c;} x={1,2,3}; x.c; }) => 3 ({ struct {int a; int b; int c;} x={1}; x.a; }) => 1 ({ struct {int a; int b; int c;} x={1}; x.b; }) => 0 ({ struct {int a; int b; int c;} x={1}; x.c; }) => 0 ({ struct {int a; int b;} x[2]={{1,2},{3,4}}; x[0].a; }) => 1 ({ struct {int a; int b;} x[2]={{1,2},{3,4}}; x[0].b; }) => 2 ({ struct {int a; int b;} x[2]={{1,2},{3,4}}; x[1].a; }) => 3 ({ struct {int a; int b;} x[2]={{1,2},{3,4}}; x[1].b; }) => 4 ({ struct {int a; int b;} x[2]={{1,2}}; x[1].b; }) => 0 ({ struct {int a; int b;} x={}; x.a; }) => 0 ({ struct {int a; int b;} x={}; x.b; }) => 0 ({ typedef struct {int a,b,c,d,e,f;} T; T x={1,2,3,4,5,6}; T y; y=x; y.e; }) => 5 ({ typedef struct {int a,b;} T; T x={1,2}; T y, z; z=y=x; z.b; }) => 2 ({ typedef struct {int a,b;} T; T x={1,2}; T y=x; y.a; }) => 1 ({ union { int a; char b[4]; } x={0x01020304}; x.b[0]; }) => 4 ({ union { int a; char b[4]; } x={0x01020304}; x.b[1]; }) => 3 ({ union { struct { char a,b,c,d; } e; int f; } x={{4,3,2,1}}; x.f; }) => 16909060 g3 => 3 g4 => 4 g5 => 5 g6 => 6 g9[0] => 0 g9[1] => 1 g9[2] => 2 g11[0].a => 1 g11[0].b => 2 g11[1].a => 3 g11[1].b => 4 g12[0].a[0] => 1 g12[0].a[1] => 2 g12[1].a[0] => 0 g12[1].a[1] => 0 g13[0].b[0] => 4 g13[0].b[1] => 3 g13[1].b[0] => 8 g13[1].b[1] => 7 sizeof(g17) => 7 sizeof(g18) => 10 sizeof(g19) => 3 memcmp(g17, "foobar", 7) => 0 memcmp(g18, "foobar\0\0\0", 10) => 0 memcmp(g19, "foo", 3) => 0 strcmp(g20, "foobar") => 0 strcmp(g21, "bar") => 0 strcmp(g22+3, "foobar") => 0 strcmp(g23[0], "foobar") => 0 strcmp(g23[1], "bar") => 0 strcmp(g23[2]+3, "foobar") => 0 g24 => 3 *g25 => 3 *g27 => 2 *g28 => 3 *(int *)g29 => 1 g31[0] => 1 g31[1] => 2 g31[2] => 3 g40[0].a[0] => 1 g40[0].a[1] => 2 g40[1].a[0] => 3 g40[1].a[1] => 4 g41[0].a[0] => 1 g41[0].a[1] => 2 g41[1].a[0] => 3 g41[1].a[1] => 4 ({ int x[2][3]={0,1,2,3,4,5}; x[0][0]; }) => 0 ({ int x[2][3]={0,1,2,3,4,5}; x[1][0]; }) => 3 ({ struct {int a; int b;} x[2]={0,1,2,3}; x[0].a; }) => 0 ({ struct {int a; int b;} x[2]={0,1,2,3}; x[1].a; }) => 2 strcmp(g43[0], "foo") => 0 strcmp(g43[1], "bar") => 0 strcmp(g44, "foo") => 0 ({ int a[]={1,2,3,}; a[2]; }) => 3 ({ struct {int a,b,c;} x={1,2,3,}; x.a; }) => 1 ({ union {int a; char b;} x={1,}; x.a; }) => 1 ({ enum {x,y,z,}; z; }) => 2 sizeof(g60) => 3 sizeof(g61) => 6 sizeof(g65) => 4 sizeof(g66) => 7 strcmp(g65.b, "oo") => 0 strcmp(g66.b, "oobar") => 0 ({ int x[3]={1, 2, 3, [0]=4, 5}; x[0]; }) => 4 ({ int x[3]={1, 2, 3, [0]=4, 5}; x[1]; }) => 5 ({ int x[3]={1, 2, 3, [0]=4, 5}; x[2]; }) => 3 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[0][0]; }) => 10 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[0][1]; }) => 11 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[0][2]; }) => 8 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[1][0]; }) => 12 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[1][1]; }) => 5 ({ int x[2][3]={1,2,3,4,5,6,[0][1]=7,8,[0]=9,[0]=10,11,[1][0]=12}; x[1][2]; }) => 6 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[0][0]; }) => 7 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[0][1]; }) => 8 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[0][2]; }) => 3 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[1][0]; }) => 9 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[1][1]; }) => 10 ({ int x[2][3]={1,2,3,4,5,6,[0]={7,8},9,10}; x[1][2]; }) => 6 ((int[10]){ [3]=7 })[3] => 7 ((int[10]){ [3]=7 })[4] => 0 ({ char x[]={[10-3]=1,2,3}; sizeof(x); }) => 10 ({ char x[][2]={[8][1]=1,2}; sizeof(x); }) => 20 sizeof(g60) => 3 sizeof(g61) => 6 sizeof(g65) => 4 sizeof(g66) => 7 strcmp(g65.b, "oo") => 0 strcmp(g66.b, "oobar") => 0 ((int[10]){ [3] 7 })[3] => 7 ((int[10]){ [3] 7 })[4] => 0 ({ struct { int a,b; } x={1,2,.b=3,.a=4}; x.a; }) => 4 ({ struct { int a,b; } x={1,2,.b=3,.a=4}; x.b; }) => 3 ({ struct { struct { int a,b; } c; } x={.c=1,2}; x.c.a; }) => 1 ({ struct { struct { int a,b; } c; } x={.c=1,2}; x.c.b; }) => 2 ({ struct { struct { int a,b; } c; } x={.c.b=1}; x.c.a; }) => 0 ({ struct { struct { int a,b; } c; } x={.c.b=1}; x.c.b; }) => 1 ({ struct { int a[2]; } x={.a=1,2}; x.a[0]; }) => 1 ({ struct { int a[2]; } x={.a=1,2}; x.a[1]; }) => 2 ({ struct { int a[2]; } x={.a[1]=1}; x.a[0]; }) => 0 ({ struct { int a[2]; } x={.a[1]=1}; x.a[1]; }) => 1 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[0].a; }) => 3 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[0].b; }) => 4 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[1].a; }) => 0 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[1].b; }) => 1 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[2].a; }) => 2 ({ struct { int a,b; } x[]={[1].b=1,2,[0]=3,4,}; x[2].b; }) => 0 ({ typedef struct { int a,b; } T; T x={1,2}; T y[]={x}; y[0].a; }) => 1 ({ typedef struct { int a,b; } T; T x={1,2}; T y[]={x}; y[0].b; }) => 2 ({ typedef struct { int a,b; } T; T x={1,2}; T y[]={x, [0].b=3}; y[0].a; }) => 0 ({ typedef struct { int a,b; } T; T x={1,2}; T y[]={x, [0].b=3}; y[0].b; }) => 3 ((struct { int a,b,c; }){ .c=5 }).c => 5 ((struct { int a,b,c; }){ .c=5 }).a => 0 ({ union { unsigned short a; char b[2]; } x={.b[0]=0xff}; x.a; }) => 255 ({ union { unsigned short a; char b[2]; } x={.b[1]=0xff}; x.a; }) => 65280 g50.a => 1179648 g51[0].a => 0 g51[1].a => 0 ({ struct { struct { int a; struct { int b; }; }; int c; } x={1,2,3,.b=4,5}; x.a; }) => 1 ({ struct { struct { int a; struct { int b; }; }; int c; } x={1,2,3,.b=4,5}; x.b; }) => 4 ({ struct { struct { int a; struct { int b; }; }; int c; } x={1,2,3,.b=4,5}; x.c; }) => 5 ({ char x[]={[2 ... 10]='a', [7]='b', [15 ... 15]='c', [3 ... 5]='d'}; sizeof(x); }) => 16 ({ char x[]={[2 ... 10]='a', [7]='b', [15 ... 15]='c', [3 ... 5]='d'}; memcmp(x, "\0\0adddabaaa\0\0\0\0c", 16); }) => 0 OK test/line.exe __LINE__ => 501 strcmp("foo", "foo") => 0 __LINE__ => 801 strcmp("bar", "bar") => 0 __LINE__ => 2 __LINE__ => 201 strcmp("xyz", "xyz") => 0 OK test/literal.exe 'a' => 97 '\n' => 10 '\x80' => -128 0777 => 511 0x0 => 0 0xa => 10 0XA => 10 0xbeef => 48879 0xBEEF => 48879 0XBEEF => 48879 0b0 => 0 0b1 => 1 0b101111 => 47 0B101111 => 47 sizeof(0) => 4 sizeof(0L) => 8 sizeof(0LU) => 8 sizeof(0UL) => 8 sizeof(0LL) => 8 sizeof(0LLU) => 8 sizeof(0Ull) => 8 sizeof(0l) => 8 sizeof(0ll) => 8 sizeof(0x0L) => 8 sizeof(0b0L) => 8 sizeof(2147483647) => 4 sizeof(2147483648) => 8 0xffffffffffffffff => -1 sizeof(0xffffffffffffffff) => 8 sizeof(4294967295U) => 4 sizeof(4294967296U) => 8 -1U>>30 => 3 -1Ul>>62 => 3 -1ull>>62 => 3 0xffffffffffffffffl>>63 => 1 0xffffffffffffffffll>>63 => 1 18446744073709551615 => -1 sizeof(18446744073709551615) => 8 18446744073709551615>>63 => -1 0xffffffffffffffff => -1 sizeof(0xffffffffffffffff) => 8 0xffffffffffffffff>>63 => 1 01777777777777777777777 => -1 sizeof(01777777777777777777777) => 8 01777777777777777777777>>63 => 1 0b1111111111111111111111111111111111111111111111111111111111111111 => -1 sizeof(0b1111111111111111111111111111111111111111111111111111111111111111) => 8 0b1111111111111111111111111111111111111111111111111111111111111111>>63 => 1 sizeof(2147483648) => 8 sizeof(2147483647) => 4 sizeof(0x1ffffffff) => 8 sizeof(0xffffffff) => 4 0xffffffff>>31 => 1 sizeof(040000000000) => 8 sizeof(037777777777) => 4 037777777777>>31 => 1 sizeof(0b111111111111111111111111111111111) => 8 sizeof(0b11111111111111111111111111111111) => 4 0b11111111111111111111111111111111>>31 => 1 1 << 31 >> 31 => -1 01 << 31 >> 31 => -1 0x1 << 31 >> 31 => -1 0b1 << 31 >> 31 => -1 sizeof(8f) => 4 sizeof(0.3F) => 4 sizeof(0.) => 8 sizeof(.0) => 8 sizeof(5.l) => 16 sizeof(2.0L) => 16 sizeof(char) => 1 sizeof(L'\0') => 4 L'a' => 97 OK test/macro.exe include1 => 5 include2 => 7 m => 5 m => 3 m => 3 m => 2 m => 2 m => 3 m => 1 m => 2 M1 => 3 M1 => 4 M1 5 => 12 M1*5 => 23 5 => 5 m => 5 m => 5 M2 => 9 M3 => 12 M4 => 13 m => 3 m => 5 m => 3 m => 5 M7() => 1 M7 => 5 ret3 () => 3 M8(3, 4) => 7 M8(3+4, 4+5) => 24 M8(3+4, 4+5) => 63 M8(, 4+5) => 9 M8((2+3), 4) => 20 M8((2,3), 4) => 12 dbl(2) => 10 M11( a!b `""c)[0] => 97 M11( a!b `""c)[1] => 33 M11( a!b `""c)[2] => 98 M11( a!b `""c)[3] => 32 M11( a!b `""c)[4] => 96 M11( a!b `""c)[5] => 34 M11( a!b `""c)[6] => 34 M11( a!b `""c)[7] => 99 M11( a!b `""c)[8] => 0 paste(1,5) => 15 paste(0,xff) => 255 ({ int foobar=3; foobar; }) => 3 paste(5,) => 5 paste(,5) => 5 ({ int i3=100; 1+i3; }) => 101 paste2(1+2) => 26 paste3(1+2) => 23 paste4(1,2,3) => 123 m => 3 m => 3 m => 4 m => 4 m => 5 strcmp("foo.bar", "foo.bar") => 0 strcmp("foo. bar", "foo. bar") => 0 strcmp("bar.foo", "bar.foo") => 0 strcmp("bar. foo", "bar. foo") => 0 foo => 3 foo => 4 foo => 3 foo => 4 __STDC__ => 1 strcmp(main_filename1, "test/macro.c") => 0 main_line1 => 5 main_line2 => 7 strcmp(include1_filename, "test/include1.h") => 0 include1_line => 4 M14() => 3 M14() 2 => 2 M14(5) => 5 M14(2, 6) => 8 M14(3,4,5) => 21 M14(3,4,5) => 21 M14() => 3 M14(5) => 5 M14() 2 => 2 M14(5) => 5 M14(2, 6) => 8 M14(3,4,5) => 21 M14(3,4,5) => 21 M14(5) => 5 ({ int f0zz=5; f0zz; }) => 5 ({ 4.57 + 0.5; }) => 5 strlen("Apr 19 2023") => 11 strlen("11:54:22") => 8 __COUNTER__ => 0 __COUNTER__ => 1 __COUNTER__ => 2 strlen("Tue Jul 19 21:12:38 2022") => 24 strcmp("test/macro.c", "test/macro.c") => 0 ({ char buf[100]; sprintf(buf, "foo"); strcmp(buf, "foo"); }) => 0 ({ char buf[100]; sprintf(buf, "foo%d", 3); strcmp(buf, "foo3"); }) => 0 ({ char buf[100]; sprintf(buf, "foo%d%d", 3, 5); strcmp(buf, "foo35"); }) => 0 ({ char buf[100]; sprintf(buf, "foo"); strcmp(buf, "foo"); }) => 0 ({ char buf[100]; sprintf(buf, "foo%d", 3); strcmp(buf, "foo3"); }) => 0 ({ char buf[100]; sprintf(buf, "foo%d%d", 3, 5); strcmp(buf, "foo35"); }) => 0 M31(, 3) => 3 OK test/offsetof.exe offsetof(T, a) => 0 offsetof(T, b) => 4 offsetof(T, c) => 8 offsetof(T, d) => 16 OK test/pointer.exe ({ int x=3; *&x; }) => 3 ({ int x=3; int *y=&x; int **z=&y; **z; }) => 3 ({ int x=3; int y=5; *(&x+1); }) => 5 ({ int x=3; int y=5; *(&y-1); }) => 3 ({ int x=3; int y=5; *(&x-(-1)); }) => 5 ({ int x=3; int *y=&x; *y=5; x; }) => 5 ({ int x=3; int y=5; *(&x+1)=7; y; }) => 7 ({ int x=3; int y=5; *(&y-2+1)=7; x; }) => 7 ({ int x=3; (&x+2)-&x+3; }) => 5 ({ int x, y; x=3; y=5; x+y; }) => 8 ({ int x=3, y=5; x+y; }) => 8 ({ int x[2]; int *y=&x; *y=3; *x; }) => 3 ({ int x[3]; *x=3; *(x+1)=4; *(x+2)=5; *x; }) => 3 ({ int x[3]; *x=3; *(x+1)=4; *(x+2)=5; *(x+1); }) => 4 ({ int x[3]; *x=3; *(x+1)=4; *(x+2)=5; *(x+2); }) => 5 ({ int x[2][3]; int *y=x; *y=0; **x; }) => 0 ({ int x[2][3]; int *y=x; *(y+1)=1; *(*x+1); }) => 1 ({ int x[2][3]; int *y=x; *(y+2)=2; *(*x+2); }) => 2 ({ int x[2][3]; int *y=x; *(y+3)=3; **(x+1); }) => 3 ({ int x[2][3]; int *y=x; *(y+4)=4; *(*(x+1)+1); }) => 4 ({ int x[2][3]; int *y=x; *(y+5)=5; *(*(x+1)+2); }) => 5 ({ int x[3]; *x=3; x[1]=4; x[2]=5; *x; }) => 3 ({ int x[3]; *x=3; x[1]=4; x[2]=5; *(x+1); }) => 4 ({ int x[3]; *x=3; x[1]=4; x[2]=5; *(x+2); }) => 5 ({ int x[3]; *x=3; x[1]=4; x[2]=5; *(x+2); }) => 5 ({ int x[3]; *x=3; x[1]=4; 2[x]=5; *(x+2); }) => 5 ({ int x[2][3]; int *y=x; y[0]=0; x[0][0]; }) => 0 ({ int x[2][3]; int *y=x; y[1]=1; x[0][1]; }) => 1 ({ int x[2][3]; int *y=x; y[2]=2; x[0][2]; }) => 2 ({ int x[2][3]; int *y=x; y[3]=3; x[1][0]; }) => 3 ({ int x[2][3]; int *y=x; y[4]=4; x[1][1]; }) => 4 ({ int x[2][3]; int *y=x; y[5]=5; x[1][2]; }) => 5 OK test/pragma-once.exe OK test/sizeof.exe sizeof(char) => 1 sizeof(short) => 2 sizeof(short int) => 2 sizeof(int short) => 2 sizeof(int) => 4 sizeof(long) => 8 sizeof(long int) => 8 sizeof(long int) => 8 sizeof(char *) => 8 sizeof(int *) => 8 sizeof(long *) => 8 sizeof(int **) => 8 sizeof(int(*)[4]) => 8 sizeof(int*[4]) => 32 sizeof(int[4]) => 16 sizeof(int[3][4]) => 48 sizeof(struct {int a; int b;}) => 8 sizeof(-10 + (long)5) => 8 sizeof(-10 - (long)5) => 8 sizeof(-10 * (long)5) => 8 sizeof(-10 / (long)5) => 8 sizeof((long)-10 + 5) => 8 sizeof((long)-10 - 5) => 8 sizeof((long)-10 * 5) => 8 sizeof((long)-10 / 5) => 8 ({ char i; sizeof(++i); }) => 1 ({ char i; sizeof(i++); }) => 1 sizeof(int(*)[10]) => 8 sizeof(int(*)[][10]) => 8 sizeof(struct { int x, y[]; }) => 4 sizeof(char) => 1 sizeof(signed char) => 1 sizeof(signed char signed) => 1 sizeof(unsigned char) => 1 sizeof(unsigned char unsigned) => 1 sizeof(short) => 2 sizeof(int short) => 2 sizeof(short int) => 2 sizeof(signed short) => 2 sizeof(int short signed) => 2 sizeof(unsigned short) => 2 sizeof(int short unsigned) => 2 sizeof(int) => 4 sizeof(signed int) => 4 sizeof(signed) => 4 sizeof(signed signed) => 4 sizeof(unsigned int) => 4 sizeof(unsigned) => 4 sizeof(unsigned unsigned) => 4 sizeof(long) => 8 sizeof(signed long) => 8 sizeof(signed long int) => 8 sizeof(unsigned long) => 8 sizeof(unsigned long int) => 8 sizeof(long long) => 8 sizeof(signed long long) => 8 sizeof(signed long long int) => 8 sizeof(unsigned long long) => 8 sizeof(unsigned long long int) => 8 sizeof((char)1) => 1 sizeof((short)1) => 2 sizeof((int)1) => 4 sizeof((long)1) => 8 sizeof((char)1 + (char)1) => 4 sizeof((short)1 + (short)1) => 4 sizeof(1?2:3) => 4 sizeof(1?(short)2:(char)3) => 4 sizeof(1?(long)2:(char)3) => 8 sizeof(char) << 31 >> 31 => 1 sizeof(char) << 63 >> 63 => 1 sizeof(float) => 4 sizeof(double) => 8 sizeof(1f+2) => 4 sizeof(1.0+2) => 8 sizeof(1f-2) => 4 sizeof(1.0-2) => 8 sizeof(1f*2) => 4 sizeof(1.0*2) => 8 sizeof(1f/2) => 4 sizeof(1.0/2) => 8 sizeof(long double) => 16 sizeof(main) => 1 OK test/stdhdr.exe OK test/string.exe ""[0] => 0 sizeof("") => 1 "abc"[0] => 97 "abc"[1] => 98 "abc"[2] => 99 "abc"[3] => 0 sizeof("abc") => 4 "\a"[0] => 7 "\b"[0] => 8 "\t"[0] => 9 "\n"[0] => 10 "\v"[0] => 11 "\f"[0] => 12 "\r"[0] => 13 "\e"[0] => 27 "\j"[0] => 106 "\k"[0] => 107 "\l"[0] => 108 "\ax\ny"[0] => 7 "\ax\ny"[1] => 120 "\ax\ny"[2] => 10 "\ax\ny"[3] => 121 "\0"[0] => 0 "\20"[0] => 16 "\101"[0] => 65 "\1500"[0] => 104 "\x00"[0] => 0 "\x77"[0] => 119 sizeof("abc" "def") => 7 sizeof("abc" "d" "efgh") => 9 strcmp("abc" "d" "\nefgh", "abcd\nefgh") => 0 !strcmp("abc" "d", "abcd\nefgh") => 0 strcmp("\x9" "0", "\t0") => 0 sizeof(L"abc" "") => 16 sizeof(L"abc" "def") => 28 sizeof(L"abc" L"def") => 28 sizeof(u"abc" "def") => 14 sizeof(u"abc" u"def") => 14 (L"abc" "def")[0] => 97 (L"abc" "def")[3] => 100 (L"abc" "def")[6] => 0 (u"abc" "def")[0] => 97 (u"abc" "def")[3] => 100 (u"abc" "def")[6] => 0 ("あ" L"")[0] => 12354 ("\343\201\202" L"")[0] => 227 ("\343\201\202" L"")[1] => 129 ("\343\201\202" L"")[2] => 130 ("\343\201\202" L"")[3] => 0 ("a" "b" L"c")[0] => 97 ("a" "b" L"c")[1] => 98 ("a" "b" L"c")[2] => 99 ("a" "b" L"c")[3] => 0 OK test/struct.exe ({ struct {int a; int b;} x; x.a=1; x.b=2; x.a; }) => 1 ({ struct {int a; int b;} x; x.a=1; x.b=2; x.b; }) => 2 ({ struct {char a; int b; char c;} x; x.a=1; x.b=2; x.c=3; x.a; }) => 1 ({ struct {char a; int b; char c;} x; x.b=1; x.b=2; x.c=3; x.b; }) => 2 ({ struct {char a; int b; char c;} x; x.a=1; x.b=2; x.c=3; x.c; }) => 3 ({ struct {char a; char b;} x[3]; char *p=x; p[0]=0; x[0].a; }) => 0 ({ struct {char a; char b;} x[3]; char *p=x; p[1]=1; x[0].b; }) => 1 ({ struct {char a; char b;} x[3]; char *p=x; p[2]=2; x[1].a; }) => 2 ({ struct {char a; char b;} x[3]; char *p=x; p[3]=3; x[1].b; }) => 3 ({ struct {char a[3]; char b[5];} x; char *p=&x; x.a[0]=6; p[0]; }) => 6 ({ struct {char a[3]; char b[5];} x; char *p=&x; x.b[0]=7; p[3]; }) => 7 ({ struct { struct { char b; } a; } x; x.a.b=6; x.a.b; }) => 6 ({ struct {int a;} x; sizeof(x); }) => 4 ({ struct {int a; int b;} x; sizeof(x); }) => 8 ({ struct {int a, b;} x; sizeof(x); }) => 8 ({ struct {int a[3];} x; sizeof(x); }) => 12 ({ struct {int a;} x[4]; sizeof(x); }) => 16 ({ struct {int a[3];} x[2]; sizeof(x); }) => 24 ({ struct {char a; char b;} x; sizeof(x); }) => 2 ({ struct {} x; sizeof(x); }) => 0 ({ struct {char a; int b;} x; sizeof(x); }) => 8 ({ struct {int a; char b;} x; sizeof(x); }) => 8 ({ struct t {int a; int b;} x; struct t y; sizeof(y); }) => 8 ({ struct t {int a; int b;}; struct t y; sizeof(y); }) => 8 ({ struct t {char a[2];}; { struct t {char a[4];}; } struct t y; sizeof(y); }) => 2 ({ struct t {int x;}; int t=1; struct t y; y.x=2; t+y.x; }) => 3 ({ struct t {char a;} x; struct t *y = &x; x.a=3; y->a; }) => 3 ({ struct t {char a;} x; struct t *y = &x; y->a=3; x.a; }) => 3 ({ struct {int a,b;} x,y; x.a=3; y=x; y.a; }) => 3 ({ struct t {int a,b;}; struct t x; x.a=7; struct t y; struct t *z=&y; *z=x; y.a; }) => 7 ({ struct t {int a,b;}; struct t x; x.a=7; struct t y, *p=&x, *q=&y; *q=*p; y.a; }) => 7 ({ struct t {char a, b;} x, y; x.a=5; y=x; y.a; }) => 5 ({ struct {int a,b;} x,y; x.a=3; y=x; y.a; }) => 3 ({ struct t {int a,b;}; struct t x; x.a=7; struct t y; struct t *z=&y; *z=x; y.a; }) => 7 ({ struct t {int a,b;}; struct t x; x.a=7; struct t y, *p=&x, *q=&y; *q=*p; y.a; }) => 7 ({ struct t {char a, b;} x, y; x.a=5; y=x; y.a; }) => 5 ({ struct t {int a; int b;} x; struct t y; sizeof(y); }) => 8 ({ struct t {int a; int b;}; struct t y; sizeof(y); }) => 8 ({ struct {char a; long b;} x; sizeof(x); }) => 16 ({ struct {char a; short b;} x; sizeof(x); }) => 4 ({ struct foo *bar; sizeof(bar); }) => 8 ({ struct T *foo; struct T {int x;}; sizeof(struct T); }) => 4 ({ struct T { struct T *next; int x; } a; struct T b; b.x=1; a.next=&b; a.next->x; }) => 1 ({ typedef struct T T; struct T { int x; }; sizeof(T); }) => 4 ({ struct {int a;} x={1}, y={2}; (x=y).a; }) => 2 ({ struct {int a;} x={1}, y={2}; (1?x:y).a; }) => 1 ({ struct {int a;} x={1}, y={2}; (0?x:y).a; }) => 2 OK test/tls.exe v1 => 0 v2 => 5 v3 => 7 pthread_create(&thr, ((void *)0), thread_main, ((void *)0)) => 0 v1 => 0 v2 => 5 v3 => 7 v1 => 1 v2 => 2 v3 => 3 pthread_join(thr, ((void *)0)) => 0 v1 => 0 v2 => 5 v3 => 3 OK test/typedef.exe ({ typedef int t; t x=1; x; }) => 1 ({ typedef struct {int a;} t; t x; x.a=1; x.a; }) => 1 ({ typedef int t; t t=1; t; }) => 1 ({ typedef struct {int a;} t; { typedef int t; } t x; x.a=2; x.a; }) => 2 ({ typedef t; t x; sizeof(x); }) => 4 ({ MyInt x=3; x; }) => 3 ({ MyInt2 x; sizeof(x); }) => 16 OK test/typeof.exe ({ typeof(int) x=3; x; }) => 3 ({ typeof(1) x=3; x; }) => 3 ({ int x; typeof(x) y; sizeof(y); }) => 4 ({ int x; typeof(&x) y; sizeof(y); }) => 8 ({ typeof("foo") x; sizeof(x); }) => 4 sizeof(typeof(struct { int a,b,c; })) => 12 OK test/unicode.exe sizeof(L'\0') => 4 L'a' => 97 strcmp("αβγ", "αβγ") => 0 strcmp("日本語", "日本語") => 0 strcmp("日本語", "日本語") => 0 strcmp("🌮", "🌮") => 0 L'\xffffffff'>>31 => -1 L'β' => 946 L'あ' => 12354 L'🍣' => 127843 sizeof(u'\0') => 2 u'\xffff'>>15 => 1 u'a' => 97 u'β' => 946 u'あ' => 12354 u'🍣' => 62307 strcmp("u'a'", "u'a'") => 0 sizeof(U'\0') => 4 U'\xffffffff'>>31 => 1 U'a' => 97 U'β' => 946 U'あ' => 12354 U'🍣' => 127843 strcmp("U'a'", "U'a'") => 0 sizeof(u8"abc") => 4 strcmp(u8"abc", "abc") => 0 strcmp("u8\"a\"", "u8\"a\"") => 0 sizeof(u"") => 2 sizeof(u"\xffzzz") => 10 memcmp(u"", "\0\0", 2) => 0 memcmp(u"abc", "a\0b\0c\0\0\0", 8) => 0 memcmp(u"日本語", "\345e,g\236\212\0\0", 8) => 0 memcmp(u"🍣", "<\330c\337\0\0", 6) => 0 u"βb"[0] => 946 u"βb"[1] => 98 u"βb"[2] => 0 strcmp("u\"a\"", "u\"a\"") => 0 sizeof(U"") => 4 sizeof(U"\xffzzz") => 20 memcmp(U"", "\0\0\0\0", 4) => 0 memcmp(U"abc", "a\0\0\0b\0\0\0c\0\0\0\0\0\0\0", 16) => 0 memcmp(U"日本語", "\345e\0\0,g\0\0\236\212\0\0\0\0\0\0", 16) => 0 memcmp(U"🍣", "c\363\001\0\0\0\0\0", 8) => 0 U"βb"[0] => 946 U"βb"[1] => 98 U"βb"[2] => 0 U"\xffffffff"[0] >> 31 => 1 strcmp("U\"a\"", "U\"a\"") => 0 sizeof(L"") => 4 sizeof(L"\xffzzz") => 20 memcmp(L"", "\0\0\0\0", 4) => 0 memcmp(L"abc", "a\0\0\0b\0\0\0c\0\0\0\0\0\0\0", 16) => 0 memcmp(L"日本語", "\345e\0\0,g\0\0\236\212\0\0\0\0\0\0", 16) => 0 memcmp(L"🍣", "c\363\001\0\0\0\0\0", 8) => 0 L"βb"[0] => 946 L"βb"[1] => 98 L"βb"[2] => 0 L"\xffffffff"[0] >> 31 => -1 strcmp("L\"a\"", "L\"a\"") => 0 ({ char16_t x[] = u"αβ"; x[0]; }) => 945 ({ char16_t x[] = u"αβ"; x[1]; }) => 946 ({ char16_t x[] = u"αβ"; sizeof(x); }) => 6 ({ char32_t x[] = U"🤔x"; x[0]; }) => 129300 ({ char32_t x[] = U"🤔x"; x[1]; }) => 120 ({ char32_t x[] = U"🤔x"; sizeof(x); }) => 12 ({ wchar_t x[] = L"🤔x"; x[0]; }) => 129300 ({ wchar_t x[] = L"🤔x"; x[1]; }) => 120 ({ wchar_t x[] = L"🤔x"; sizeof(x); }) => 12 π => 3 ({ int あβ0¾=3; あβ0¾; }) => 3 ({ int $$$=5; $$$; }) => 5 OK test/union.exe ({ union { int a; char b[6]; } x; sizeof(x); }) => 8 ({ union { int a; char b[4]; } x; x.a = 515; x.b[0]; }) => 3 ({ union { int a; char b[4]; } x; x.a = 515; x.b[1]; }) => 2 ({ union { int a; char b[4]; } x; x.a = 515; x.b[2]; }) => 0 ({ union { int a; char b[4]; } x; x.a = 515; x.b[3]; }) => 0 ({ union {int a,b;} x,y; x.a=3; y.a=5; y=x; y.a; }) => 3 ({ union {struct {int a,b;} c;} x,y; x.c.b=3; y.c.b=5; y=x; y.c.b; }) => 3 ({ union { struct { unsigned char a,b,c,d; }; long e; } x; x.e=0xdeadbeef; x.a; }) => 239 ({ union { struct { unsigned char a,b,c,d; }; long e; } x; x.e=0xdeadbeef; x.b; }) => 190 ({ union { struct { unsigned char a,b,c,d; }; long e; } x; x.e=0xdeadbeef; x.c; }) => 173 ({ union { struct { unsigned char a,b,c,d; }; long e; } x; x.e=0xdeadbeef; x.d; }) => 222 ({struct { union { int a,b; }; union { int c,d; }; } x; x.a=3; x.b; }) => 3 ({struct { union { int a,b; }; union { int c,d; }; } x; x.d=5; x.c; }) => 5 OK test/usualconv.exe -10 + (long)5 => -5 -10 - (long)5 => -15 -10 * (long)5 => -50 -10 / (long)5 => -2 -2 < (long)-1 => 1 -2 <= (long)-1 => 1 -2 > (long)-1 => 0 -2 >= (long)-1 => 0 (long)-2 < -1 => 1 (long)-2 <= -1 => 1 (long)-2 > -1 => 0 (long)-2 >= -1 => 0 2147483647 + 2147483647 + 2 => 0 ({ long x; x=-1; x; }) => -1 ({ char x[3]; x[0]=0; x[1]=1; x[2]=2; char *y=x+1; y[0]; }) => 1 ({ char x[3]; x[0]=0; x[1]=1; x[2]=2; char *y=x+1; y[-1]; }) => 0 ({ struct t {char a;} x, y; x.a=5; y=x; y.a; }) => 5 (1 ? ret10 : (void *)0)() => 10 OK test/varargs.exe sum1(1, 2, 3, 0) => 6 sum1(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0) => 55 sum2(1, 2.0, 3, 4.0, 5, 6.0, 0) => 21 sum2(1, 2.0, 3, 4.0, 5, 6.0, 0) => 21 sum2(1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9, 10.0, 11, 12.0, 13, 14.0, 15, 16.0, 17, 18.0, 19, 20.0, 0) => 210 ({ char buf[100]; fmt(buf, "%d %d", 2, 3); strcmp(buf, "2 3"); }) => 0 OK test/variable.exe ({ int a; a=3; a; }) => 3 ({ int a=3; a; }) => 3 ({ int a=3; int z=5; a+z; }) => 8 ({ int a=3; a; }) => 3 ({ int a=3; int z=5; a+z; }) => 8 ({ int a; int b; a=b=3; a+b; }) => 6 ({ int foo=3; foo; }) => 3 ({ int foo123=3; int bar=5; foo123+bar; }) => 8 ({ int x; sizeof(x); }) => 4 ({ int x; sizeof x; }) => 4 ({ int *x; sizeof(x); }) => 8 ({ int x[4]; sizeof(x); }) => 16 ({ int x[3][4]; sizeof(x); }) => 48 ({ int x[3][4]; sizeof(*x); }) => 16 ({ int x[3][4]; sizeof(**x); }) => 4 ({ int x[3][4]; sizeof(**x) + 1; }) => 5 ({ int x[3][4]; sizeof **x + 1; }) => 5 ({ int x[3][4]; sizeof(**x + 1); }) => 4 ({ int x=1; sizeof(x=2); }) => 4 ({ int x=1; sizeof(x=2); x; }) => 1 g1 => 0 ({ g1=3; g1; }) => 3 ({ g2[0]=0; g2[1]=1; g2[2]=2; g2[3]=3; g2[0]; }) => 0 ({ g2[0]=0; g2[1]=1; g2[2]=2; g2[3]=3; g2[1]; }) => 1 ({ g2[0]=0; g2[1]=1; g2[2]=2; g2[3]=3; g2[2]; }) => 2 ({ g2[0]=0; g2[1]=1; g2[2]=2; g2[3]=3; g2[3]; }) => 3 sizeof(g1) => 4 sizeof(g2) => 16 ({ char x=1; x; }) => 1 ({ char x=1; char y=2; x; }) => 1 ({ char x=1; char y=2; y; }) => 2 ({ char x; sizeof(x); }) => 1 ({ char x[10]; sizeof(x); }) => 10 ({ int x=2; { int x=3; } x; }) => 2 ({ int x=2; { int x=3; } int y=4; x; }) => 2 ({ int x=2; { x=3; } x; }) => 3 ({ int x; int y; char z; char *a=&y; char *b=&z; b-a; }) => 7 ({ int x; char y; int z; char *a=&y; char *b=&z; b-a; }) => 1 ({ long x; sizeof(x); }) => 8 ({ short x; sizeof(x); }) => 2 ({ char *x[3]; sizeof(x); }) => 24 ({ char (*x)[3]; sizeof(x); }) => 8 ({ char (x); sizeof(x); }) => 1 ({ char (x)[3]; sizeof(x); }) => 3 ({ char (x[3])[4]; sizeof(x); }) => 12 ({ char (x[3])[4]; sizeof(x[0]); }) => 4 ({ char *x[3]; char y; x[0]=&y; y=3; x[0][0]; }) => 3 ({ char x[3]; char (*y)[3]=x; y[0][0]=4; y[0][0]; }) => 4 g3 => 3 OK test/vla.exe ({ int n=5; int x[n]; sizeof(x); }) => 20 ({ int m=5, n=8; int x[m+1][n*2]; sizeof(x); }) => 384 ({ char n=10; int (*x)[n][n+2]; sizeof(x); }) => 8 ({ char n=10; int (*x)[n][n+2]; sizeof(*x); }) => 480 ({ char n=10; int (*x)[n][n+2]; sizeof(**x); }) => 48 ({ char n=10; int (*x)[n][n+2]; sizeof(***x); }) => 4 ({ char n=3; int x[5][n]; sizeof(x); }) => 60 ({ char n=3; int x[5][n]; sizeof(*x); }) => 12 ({ char n=3; int x[n][5]; sizeof(x); }) => 60 ({ char n=3; int x[n][5]; sizeof(*x); }) => 20 ({ int n=10; int x[n+1][n+6]; int *p=x; for (int i = 0; i 0 ({ int n=10; int x[n+1][n+6]; int *p=x; for (int i = 0; i 5 ({ int n=10; int x[n+1][n+6]; int *p=x; for (int i = 0; i 82 ({ int n=5; sizeof(char[2][n]); }) => 10 OK test/driver.sh ./chibicc testing -o ... passed testing --help ... passed testing -S ... passed testing default output file ... passed testing default output file ... passed testing multiple input files ... passed testing multiple input files ... passed ld: warning: /tmp/chibicc-cjwsn9: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing linker ... passed ld: warning: /tmp/chibicc-uCiyll: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing linker ... passed ld: warning: /tmp/chibicc-XUhlN1: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing a.out ... passed testing -E ... passed testing -E and -o ... passed testing -I ... passed testing -D ... passed testing -D ... passed testing -U ... passed testing ignored options ... passed testing BOM marker ... passed ld: warning: /tmp/chibicc-CAuo0H: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing inline ... passed ld: warning: /tmp/chibicc-TQAEvF: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing inline ... passed testing -idirafter ... passed testing -idirafter ... passed testing -fcommon (default) ... passed testing -fcommon ... passed testing -fno-common ... passed testing -include ... passed testing -include ... passed testing -xc ... passed testing -x assembler ... passed testing -x none ... passed testing -E ... passed ld: warning: bar.o: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing .a ... passed ld: warning: /tmp/chibicc-Df1PiH: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing .so ... passed OK testing hashmap ... passed testing -M ... passed testing -MF ... passed testing -MP ... passed testing -MP ... passed testing -MT ... passed testing -MT ... passed testing -MD ... passed testing -MD ... passed testing -MD ... passed /usr/bin/ld: warning: /tmp/chibicc-test-tw4doo/foo.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ld: warning: /tmp/chibicc-KoywwE: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -fPIC ... passed testing #include_next ... passed ld: warning: /tmp/chibicc-Ccw5et: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -static ... passed testing -static ... passed ld: warning: /tmp/chibicc-UKBEaU: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -shared ... passed ld: warning: /tmp/chibicc-kcEGGc: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ld: warning: /tmp/chibicc-eCIGkT: missing .note.GNU-stack section implies executable stack ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -L ... passed /usr/bin/ld: warning: /tmp/chibicc-test-tw4doo/baz.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -Wl, ... passed /usr/bin/ld: warning: /tmp/chibicc-test-tw4doo/baz.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker testing -Xlinker ... passed OK make[1]: Leaving directory '/build/chibicc-0+git20220719+ds' create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --destdir=debian/chibicc/ dh_install dh_installdocs dh_installchangelogs dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms dh_missing dh_dwz -a dh_strip -a dh_makeshlibs -a dh_shlibdeps -a dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package 'chibicc-dbgsym' in '../chibicc-dbgsym_0+git20220719+ds-4_amd64.deb'. dpkg-deb: building package 'chibicc' in '../chibicc_0+git20220719+ds-4_amd64.deb'. dpkg-genbuildinfo --build=binary -O../chibicc_0+git20220719+ds-4_amd64.buildinfo dpkg-genchanges --build=binary -O../chibicc_0+git20220719+ds-4_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: user script /srv/workspace/pbuilder/627124/tmp/hooks/B01_cleanup starting I: user script /srv/workspace/pbuilder/627124/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/627124 and its subdirectories I: Current time: Wed Apr 19 11:55:02 +14 2023 I: pbuilder-time-stamp: 1681854902