Tue Apr 18 21:50:40 UTC 2023 I: starting to build chibicc/bookworm/amd64 on jenkins on '2023-04-18 21:50' Tue Apr 18 21:50:40 UTC 2023 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_22/10039/console.log Tue Apr 18 21:50:40 UTC 2023 I: Downloading source for bookworm/chibicc=0+git20220719+ds-4 --2023-04-18 21:50:40-- http://cdn-fastly.deb.debian.org/debian/pool/main/c/chibicc/chibicc_0%2bgit20220719%2bds-4.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 1780 (1.7K) [text/prs.lines.tag] Saving to: ‘chibicc_0+git20220719+ds-4.dsc’ 0K . 100% 151M=0s 2023-04-18 21:50:40 (151 MB/s) - ‘chibicc_0+git20220719+ds-4.dsc’ saved [1780/1780] Tue Apr 18 21:50:40 UTC 2023 I: chibicc_0+git20220719+ds-4.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: chibicc Binary: chibicc Architecture: amd64 Version: 0+git20220719+ds-4 Maintainer: Gürkan Myczko Homepage: https://github.com/rui314/chibicc Standards-Version: 4.6.1 Build-Depends: debhelper-compat (= 13) Package-List: chibicc deb devel optional arch=amd64 Checksums-Sha1: 95e0aa0ca4037c2318fe18faaf24abb6a8fc1881 69360 chibicc_0+git20220719+ds.orig.tar.xz 26f00add751139632e1c0e450e8449e663603c09 2624 chibicc_0+git20220719+ds-4.debian.tar.xz Checksums-Sha256: 21acb270b292ebb62b81c5b1b2143c0d84f7b235cdbdb9409dd81e678021d374 69360 chibicc_0+git20220719+ds.orig.tar.xz aac59d4ab757d1ac2e44fc71a709f240bfc0412875fae954b7fc1741c2ff3c5c 2624 chibicc_0+git20220719+ds-4.debian.tar.xz Files: aad45bb135b77ba4c45931626e5e82b6 69360 chibicc_0+git20220719+ds.orig.tar.xz e50949fc06fe6b9752b91af56366449e 2624 chibicc_0+git20220719+ds-4.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEtgob82PcExn/Co6JEWhSvN91FcAFAmM6iKwACgkQEWhSvN91 FcDIUg/8DtQRBUM3v7AYajYb/rtZ8L941tw4iJIteWPg7Datb+uZBpdGf8H0DS/1 Ubw6lbkvc3mVbDRvoTsvOycAcPSNpQoU9crMrYdv9B8PWAUsz+mHKdtuKAsbBcRx 1eCkdz2kV/+DKb7aoPgX5KOmphywvMmKz621kYUTjbn1zVkYqXPAmGAR2FgQ0ktm OkvWW8MD6GVcUZ0GPxlM3QYS79y327//fAVprP7RrKfnqh9+btM3aKW8CiTSb7OK LmbS8H/txNHGZ2bO2ev1NK5uFbbcaF6wY12wuqP1CwZkT3+4/dkZj++Fxf63mt6+ q2bXTAcIfvAkK/SJp3Rap7tdPcA1Mn+YTlvSQPoKiGXz4ROhYHiZqxG/dygqYOn9 aYH55Vgpm0w02zmHdtoRi61C09lnxz63we3aUfWQYNKbC2shPxDRIKzArjgZaPJi 6/6yA6AdomHIG3WRK4NxrWHOc+03Y6ULS9iGj8euFtzoecc/s++UXh/0yT8afrel U5SOOP3Lbw8jpqhYyS5jPXDsiCQk5xi3l7LeqGOwGOntMQZ5UYw3RH78S8lEWABC ZdBd5ZYQk26wtxkg44wosON3LUNmTJD/XbUV5rOjF7qo8mrKIZiNCmNRlktB3K8L kZ/L+fHL5r3j+SZ9Pmha6eEFvaGebot/q6F3b0dndrgjZWRiMQs= =G8ih -----END PGP SIGNATURE----- Tue Apr 18 21:50:40 UTC 2023 I: Checking whether the package is not for us Tue Apr 18 21:50:40 UTC 2023 I: Starting 1st build on remote node ionos5-amd64.debian.net. Tue Apr 18 21:50:40 UTC 2023 I: Preparing to do remote build '1' on ionos5-amd64.debian.net. Tue Apr 18 21:51:07 UTC 2023 I: Deleting $TMPDIR on ionos5-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Mon May 20 16:13:44 -12 2024 I: pbuilder-time-stamp: 1716264824 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 Sun Oct 2 19:01:00 2022 -12 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/1970340/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16' DISTRIBUTION='bookworm' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='f6b7b164f3204b1ca547c7c2f73a6358' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1970340' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/pbuilderrc_jw6X --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/b1 --logfile b1/build.log chibicc_0+git20220719+ds-4.dsc' SUDO_GID='110' SUDO_UID='105' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://85.184.249.68:3128' I: uname -a Linux ionos5-amd64 6.1.0-0.deb11.5-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.12-1~bpo11+1 (2023-03-05) x86_64 GNU/Linux I: ls -l /bin total 5632 -rwxr-xr-x 1 root root 1265648 Feb 12 2023 bash -rwxr-xr-x 3 root root 39224 Sep 18 2022 bunzip2 -rwxr-xr-x 3 root root 39224 Sep 18 2022 bzcat lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep -rwxr-xr-x 3 root root 39224 Sep 18 2022 bzip2 -rwxr-xr-x 1 root root 14568 Sep 18 2022 bzip2recover lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore -rwxr-xr-x 1 root root 44016 Sep 20 2022 cat -rwxr-xr-x 1 root root 68656 Sep 20 2022 chgrp -rwxr-xr-x 1 root root 64496 Sep 20 2022 chmod -rwxr-xr-x 1 root root 72752 Sep 20 2022 chown -rwxr-xr-x 1 root root 151152 Sep 20 2022 cp -rwxr-xr-x 1 root root 125640 Jan 5 2023 dash -rwxr-xr-x 1 root root 121904 Sep 20 2022 date -rwxr-xr-x 1 root root 89240 Sep 20 2022 dd -rwxr-xr-x 1 root root 102200 Sep 20 2022 df -rwxr-xr-x 1 root root 151344 Sep 20 2022 dir -rwxr-xr-x 1 root root 88656 Mar 22 2023 dmesg lrwxrwxrwx 1 root root 8 Dec 19 2022 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Dec 19 2022 domainname -> hostname -rwxr-xr-x 1 root root 43856 Sep 20 2022 echo -rwxr-xr-x 1 root root 41 Jan 24 2023 egrep -rwxr-xr-x 1 root root 35664 Sep 20 2022 false -rwxr-xr-x 1 root root 41 Jan 24 2023 fgrep -rwxr-xr-x 1 root root 85600 Mar 22 2023 findmnt -rwsr-xr-x 1 root root 35128 Mar 22 2023 fusermount -rwxr-xr-x 1 root root 203152 Jan 24 2023 grep -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe -rwxr-xr-x 1 root root 98136 Apr 9 2022 gzip -rwxr-xr-x 1 root root 22680 Dec 19 2022 hostname -rwxr-xr-x 1 root root 72824 Sep 20 2022 ln -rwxr-xr-x 1 root root 53024 Mar 23 2023 login -rwxr-xr-x 1 root root 151344 Sep 20 2022 ls -rwxr-xr-x 1 root root 207168 Mar 22 2023 lsblk -rwxr-xr-x 1 root root 97552 Sep 20 2022 mkdir -rwxr-xr-x 1 root root 72912 Sep 20 2022 mknod -rwxr-xr-x 1 root root 43952 Sep 20 2022 mktemp -rwxr-xr-x 1 root root 59712 Mar 22 2023 more -rwsr-xr-x 1 root root 59704 Mar 22 2023 mount -rwxr-xr-x 1 root root 18744 Mar 22 2023 mountpoint -rwxr-xr-x 1 root root 142968 Sep 20 2022 mv lrwxrwxrwx 1 root root 8 Dec 19 2022 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Apr 2 2023 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 43952 Sep 20 2022 pwd lrwxrwxrwx 1 root root 4 Feb 12 2023 rbash -> bash -rwxr-xr-x 1 root root 52112 Sep 20 2022 readlink -rwxr-xr-x 1 root root 72752 Sep 20 2022 rm -rwxr-xr-x 1 root root 56240 Sep 20 2022 rmdir -rwxr-xr-x 1 root root 27560 Nov 2 2022 run-parts -rwxr-xr-x 1 root root 126424 Jan 5 2023 sed lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash -rwxr-xr-x 1 root root 43888 Sep 20 2022 sleep -rwxr-xr-x 1 root root 85008 Sep 20 2022 stty -rwsr-xr-x 1 root root 72000 Mar 22 2023 su -rwxr-xr-x 1 root root 39824 Sep 20 2022 sync -rwxr-xr-x 1 root root 531984 Apr 6 2023 tar -rwxr-xr-x 1 root root 14520 Nov 2 2022 tempfile -rwxr-xr-x 1 root root 109616 Sep 20 2022 touch -rwxr-xr-x 1 root root 35664 Sep 20 2022 true -rwxr-xr-x 1 root root 14568 Mar 22 2023 ulockmgr_server -rwsr-xr-x 1 root root 35128 Mar 22 2023 umount -rwxr-xr-x 1 root root 43888 Sep 20 2022 uname -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress -rwxr-xr-x 1 root root 151344 Sep 20 2022 vdir -rwxr-xr-x 1 root root 72024 Mar 22 2023 wdctl lrwxrwxrwx 1 root root 8 Dec 19 2022 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew I: user script /srv/workspace/pbuilder/1970340/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 0s (80.9 MB/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 I: Building the package I: Running cd /build/chibicc-0+git20220719+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-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 -j16 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 -j16 "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 hashmap.c: In function 'rehash': hashmap.c:41:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 41 | HashMap map2 = {}; | ^ parse.c:90:31: warning: ISO C forbids empty initializer braces [-Wpedantic] 90 | static Scope *scope = &(Scope){}; | ^ preprocess.c: In function 'hideset_union': preprocess.c:112:18: warning: ISO C forbids empty initializer braces [-Wpedantic] 112 | Hideset head = {}; | ^ preprocess.c: In function 'hideset_intersection': 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 = {}; | ^ preprocess.c: In function 'append': preprocess.c:155:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 155 | Token head = {}; | ^ preprocess.c: In function 'copy_line': preprocess.c:230:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 230 | Token head = {}; | ^ preprocess.c: In function 'read_const_expr': preprocess.c:249:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 249 | 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 = {}; | ^ parse.c: In function 'func_params': parse.c:590:15: warning: ISO C forbids empty initializer braces [-Wpedantic] 590 | Type head = {}; | ^ preprocess.c: In function 'subst': preprocess.c:519:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 519 | Token head = {}; | ^ tokenize.c: In function 'tokenize': parse.c: In function 'declarator': tokenize.c:494:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 494 | Token head = {}; | ^ 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 = {}; | ^ 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 = {}; | ^ parse.c: In function 'copy_struct_type': parse.c:1283:17: warning: ISO C forbids empty initializer braces [-Wpedantic] 1283 | Member head = {}; | ^ 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] 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] 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] 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] 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); | ^~~~~~~~~~ codegen.c: In function 'store': codegen.c:232:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 232 | switch (ty->kind) { | ^~~~~~ unicode.c:17:14: warning: binary constants are a C2X feature or GCC extension 17 | buf[0] = 0b11100000 | (c >> 12); | ^~~~~~~~~~ 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] unicode.c:18:14: warning: binary constants are a C2X feature or GCC extension 18 | buf[1] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ 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] unicode.c:18:39: warning: binary constants are a C2X feature or GCC extension 18 | buf[1] = 0b10000000 | ((c >> 6) & 0b00111111); | ^~~~~~~~~~ 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] unicode.c:19:14: warning: binary constants are a C2X feature or GCC extension 19 | buf[2] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ main.c: In function 'parse_args': unicode.c:19:32: warning: binary constants are a C2X feature or GCC extension 19 | buf[2] = 0b10000000 | (c & 0b00111111); | ^~~~~~~~~~ main.c:122:27: warning: ISO C forbids empty initializer braces [-Wpedantic] 122 | StringArray idirafter = {}; | ^ 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); | ^~~~~~~~~~ codegen.c: In function 'cmp_zero': 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); | ^~~~~~~~~~ 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] unicode.c: In function 'decode_utf8': 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] unicode.c:47:28: warning: binary constants are a C2X feature or GCC extension 47 | if ((unsigned char)*p >= 0b11110000) { | ^~~~~~~~~~ type.c: In function 'is_compatible': unicode.c:49:14: warning: binary constants are a C2X feature or GCC extension 49 | c = *p & 0b111; | ^~~~~ 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: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; | ^~~~~~~ codegen.c: In function 'getTypeId': parse.c: In function 'gvar_initializer': 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] unicode.c:61:37: warning: binary constants are a C2X feature or GCC extension 61 | if ((unsigned char)p[i] >> 6 != 0b10) | ^~~~ 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:63:28: warning: binary constants are a C2X feature or GCC extension 63 | c = (c << 6) | (p[i] & 0b111111); | ^~~~~~~~ parse.c:1489:21: warning: ISO C forbids empty initializer braces [-Wpedantic] 1489 | Relocation head = {}; | ^ 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] 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 = {}; | ^ main.c: In function 'find_file': main.c:577:16: warning: ISO C forbids empty initializer braces [-Wpedantic] 577 | glob_t buf = {}; | ^ codegen.c: In function 'gen_expr': 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] main.c: In function 'run_linker': 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] main.c:616:21: warning: ISO C forbids empty initializer braces [-Wpedantic] 616 | StringArray arr = {}; | ^ 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] parse.c: In function 'eval2': 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] 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] main.c: In function 'main': 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] main.c:714:25: warning: ISO C forbids empty initializer braces [-Wpedantic] 714 | StringArray ld_args = {}; | ^ 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] 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] parse.c:1934:3: warning: enumeration value 'ND_BITAND' 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] parse.c:1934:3: warning: enumeration value 'ND_BITOR' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_DOUBLE' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_BITXOR' 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] parse.c:1934:3: warning: enumeration value 'ND_SHL' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_PTR' not handled in switch [-Wswitch] parse.c:1934:3: warning: enumeration value 'ND_SHR' 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] parse.c:1934:3: warning: enumeration value 'ND_EQ' 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] parse.c:1934:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] codegen.c:943:5: warning: enumeration value 'TY_UNION' 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] 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] parse.c:1934:3: warning: enumeration value 'ND_RETURN' 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] parse.c:1934:3: warning: enumeration value 'ND_IF' 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] 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] 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] parse.c:1934:3: warning: enumeration value 'ND_CASE' 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] parse.c:1934:3: warning: enumeration value 'ND_BLOCK' 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] parse.c:1934:3: warning: enumeration value 'ND_GOTO' 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] parse.c:1934:3: warning: enumeration value 'ND_GOTO_EXPR' 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] parse.c:1934:3: warning: enumeration value 'ND_LABEL' 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] parse.c:1934:3: warning: enumeration value 'ND_LABEL_VAL' 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] parse.c:1934:3: warning: enumeration value 'ND_FUNCALL' 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] parse.c:1934:3: warning: enumeration value 'ND_EXPR_STMT' 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] parse.c:1934:3: warning: enumeration value 'ND_STMT_EXPR' 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] 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': 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] parse.c:1952:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 1952 | switch (node->kind) { | ^~~~~~ codegen.c:1015:5: warning: enumeration value 'ND_COMMA' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_MOD' 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] parse.c:1952:3: warning: enumeration value 'ND_ASSIGN' 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] parse.c:1952:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_BITNOT' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_ADDR' 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] parse.c:1952:3: warning: enumeration value 'ND_DEREF' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] parse.c:1952:3: 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] parse.c:1952:3: warning: enumeration value 'ND_IF' 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] parse.c:1952:3: warning: enumeration value 'ND_FOR' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_CASE' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_DO' 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] parse.c:1952:3: warning: enumeration value 'ND_SWITCH' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_GOTO_EXPR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_CASE' 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] parse.c:1952:3: warning: enumeration value 'ND_BLOCK' 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] parse.c:1952:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_STMT_EXPR' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_GOTO_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] parse.c:1952:3: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_LABEL_VAL' 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] parse.c:1952:3: warning: enumeration value 'ND_FUNCALL' not handled in switch [-Wswitch] codegen.c:1015:5: warning: enumeration value 'ND_ASM' not handled in switch [-Wswitch] parse.c:1952:3: warning: enumeration value 'ND_EXPR_STMT' 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] 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] 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] parse.c: In function 'eval_double': 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] parse.c:2001:3: warning: enumeration value 'ND_NULL_EXPR' not handled in switch [-Wswitch] 2001 | switch (node->kind) { | ^~~~~~ codegen.c:1059:5: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_MOD' 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] parse.c:2001:3: warning: enumeration value 'ND_BITAND' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_BITOR' 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] parse.c:2001:3: warning: enumeration value 'ND_BITXOR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_LABEL' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_SHL' 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] parse.c:2001:3: warning: enumeration value 'ND_SHR' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_EXPR_STMT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_EQ' 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] parse.c:2001:3: warning: enumeration value 'ND_NE' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_VLA_PTR' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LT' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_NUM' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_LE' 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] parse.c:2001:3: warning: enumeration value 'ND_ASSIGN' 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] parse.c:2001:3: warning: enumeration value 'ND_MEMBER' not handled in switch [-Wswitch] codegen.c:1059:5: warning: enumeration value 'ND_EXCH' 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] codegen.c:1005:3: warning: enumeration value 'TY_VOID' not handled in switch [-Wswitch] 1005 | switch (node->lhs->ty->kind) { | ^~~~~~ parse.c:2001:3: warning: enumeration value 'ND_RETURN' not handled in switch [-Wswitch] 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] parse.c:2001:3: warning: enumeration value 'ND_IF' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_SHORT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_FOR' 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] parse.c:2001:3: warning: enumeration value 'ND_DO' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_ENUM' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_SWITCH' 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] parse.c:2001:3: warning: enumeration value 'ND_CASE' 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] parse.c:2001:3: warning: enumeration value 'ND_BLOCK' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_STRUCT' not handled in switch [-Wswitch] parse.c:2001:3: warning: enumeration value 'ND_GOTO' not handled in switch [-Wswitch] codegen.c:1005:3: warning: enumeration value 'TY_UNION' 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 = {}; | ^ 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] 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] parse.c: In function 'struct_members': 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: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 -j16 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 ./chibicc -Iinclude -Itest -c -o test/attribute.o test/attribute.c ./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 ./chibicc -Iinclude -Itest -c -o test/commonsym.o test/commonsym.c ./chibicc -Iinclude -Itest -c -o test/compat.o test/compat.c ./chibicc -Iinclude -Itest -c -o test/complit.o test/complit.c ./chibicc -Iinclude -Itest -c -o test/const.o test/const.c ./chibicc -Iinclude -Itest -c -o test/constexpr.o test/constexpr.c ./chibicc -Iinclude -Itest -c -o test/control.o test/control.c ./chibicc -Iinclude -Itest -c -o test/decl.o test/decl.c cc -pthread -o test/alignof.exe test/alignof.o -xc test/common cc -pthread -o test/alloca.exe test/alloca.o -xc test/common cc -pthread -o test/asm.exe test/asm.o -xc test/common 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/commonsym.exe test/commonsym.o -xc test/common cc -pthread -o test/complit.exe test/complit.o -xc test/common cc -pthread -o test/decl.exe test/decl.o -xc test/common cc -pthread -o test/const.exe test/const.o -xc test/common cc -pthread -o test/compat.exe test/compat.o -xc test/common cc -pthread -o test/cast.exe test/cast.o -xc test/common cc -pthread -o test/attribute.exe test/attribute.o -xc test/common cc -pthread -o test/constexpr.exe test/constexpr.o -xc test/common cc -pthread -o test/arith.exe test/arith.o -xc test/common cc -pthread -o test/atomic.exe test/atomic.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/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 /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 /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 /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 /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 /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/enum.o test/enum.c /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/extern.o test/extern.c /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 /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 /usr/bin/ld: 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/float.o test/float.c ./chibicc -Iinclude -Itest -c -o test/function.o test/function.c cc -pthread -o test/enum.exe test/enum.o -xc test/common cc -pthread -o test/extern.exe test/extern.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/generic.o test/generic.c ./chibicc -Iinclude -Itest -c -o test/initializer.o test/initializer.c ./chibicc -Iinclude -Itest -c -o test/line.o test/line.c ./chibicc -Iinclude -Itest -c -o test/literal.o test/literal.c ./chibicc -Iinclude -Itest -c -o test/macro.o test/macro.c /usr/bin/ld: 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/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 /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 cc -pthread -o test/float.exe test/float.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/offsetof.o test/offsetof.c ./chibicc -Iinclude -Itest -c -o test/pointer.o test/pointer.c ./chibicc -Iinclude -Itest -c -o test/pragma-once.o test/pragma-once.c cc -pthread -o test/generic.exe test/generic.o -xc test/common cc -pthread -o test/line.exe test/line.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/sizeof.o test/sizeof.c /usr/bin/ld: 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 cc -pthread -o test/literal.exe test/literal.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/offsetof.exe test/offsetof.o -xc test/common cc -pthread -o test/pragma-once.exe test/pragma-once.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/stdhdr.o test/stdhdr.c cc -pthread -o test/pointer.exe test/pointer.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/string.o test/string.c cc -pthread -o test/sizeof.exe test/sizeof.o -xc test/common cc -pthread -o test/macro.exe test/macro.o -xc test/common cc -pthread -o test/function.exe test/function.o -xc test/common cc -pthread -o test/stdhdr.exe test/stdhdr.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/struct.o test/struct.c cc -pthread -o test/string.exe test/string.o -xc test/common cc -pthread -o test/initializer.exe test/initializer.o -xc test/common cc -pthread -o test/struct.exe test/struct.o -xc test/common /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/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 ./chibicc -Iinclude -Itest -c -o test/tls.o test/tls.c /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 /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 /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/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/typedef.o test/typedef.c ./chibicc -Iinclude -Itest -c -o test/typeof.o test/typeof.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 ./chibicc -Iinclude -Itest -c -o test/unicode.o test/unicode.c ./chibicc -Iinclude -Itest -c -o test/union.o test/union.c ./chibicc -Iinclude -Itest -c -o test/usualconv.o test/usualconv.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 /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/typedef.exe test/typedef.o -xc test/common cc -pthread -o test/typeof.exe test/typeof.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/varargs.o test/varargs.c ./chibicc -Iinclude -Itest -c -o test/variable.o test/variable.c cc -pthread -o test/unicode.exe test/unicode.o -xc test/common cc -pthread -o test/union.exe test/union.o -xc test/common ./chibicc -Iinclude -Itest -c -o test/vla.o test/vla.c /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 /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 /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 cc -pthread -o test/tls.exe test/tls.o -xc test/common cc -pthread -o test/usualconv.exe test/usualconv.o -xc test/common cc -pthread -o test/vla.exe test/vla.o -xc test/common /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/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 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/varargs.exe test/varargs.o -xc test/common /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/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/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/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/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/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/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/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/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 /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 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("May 20 2024") => 11 strlen("16:14:03") => 8 __COUNTER__ => 0 __COUNTER__ => 1 __COUNTER__ => 2 strlen("Mon Jul 18 19: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-OLr93R: 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-xCPUiM: 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-T0iJ8V: 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-4j1nvG: 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-c2EHtC: 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-ojjR49: 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-R3YWEX/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-ARjek3: 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-jazJdT: 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-UWHbxM: 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-JiOKpT: 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-TL4XW6: 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-R3YWEX/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-R3YWEX/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' in '../chibicc_0+git20220719+ds-4_amd64.deb'. dpkg-deb: building package 'chibicc-dbgsym' in '../chibicc-dbgsym_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: 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/1970340 and its subdirectories I: Current time: Mon May 20 16:14:09 -12 2024 I: pbuilder-time-stamp: 1716264849 Tue Apr 18 21:51:07 UTC 2023 I: 1st build successful. Starting 2nd build on remote node ionos11-amd64.debian.net. Tue Apr 18 21:51:07 UTC 2023 I: Preparing to do remote build '2' on ionos11-amd64.debian.net. Tue Apr 18 21:55:03 UTC 2023 I: Deleting $TMPDIR on ionos11-amd64.debian.net. Tue Apr 18 21:55:03 UTC 2023 I: chibicc_0+git20220719+ds-4_amd64.changes: Format: 1.8 Date: Mon, 03 Oct 2022 08:59:27 +0200 Source: chibicc Binary: chibicc chibicc-dbgsym Architecture: amd64 Version: 0+git20220719+ds-4 Distribution: unstable Urgency: medium Maintainer: Gürkan Myczko Changed-By: Gürkan Myczko Description: chibicc - small C compiler Changes: chibicc (0+git20220719+ds-4) unstable; urgency=medium . * d/control: restrict to only amd64. Checksums-Sha1: d7d4ebc6adb9bbbebc951be739612c1144ff224c 168808 chibicc-dbgsym_0+git20220719+ds-4_amd64.deb 9800c8b8888a61787fe292df0bcb139b745e7a63 5202 chibicc_0+git20220719+ds-4_amd64.buildinfo 47dc6d81e5f56d44fb6e8def99a9eba302cd085c 59968 chibicc_0+git20220719+ds-4_amd64.deb Checksums-Sha256: 896ad33842f493ec4b48a948fe552e7b3ffdf9e2af1a8835a31ed075e72f6061 168808 chibicc-dbgsym_0+git20220719+ds-4_amd64.deb 3e5794b5955326028bfdc118e980a973dd23c86e8089ff917665dbd279437b46 5202 chibicc_0+git20220719+ds-4_amd64.buildinfo 1410f0800c3c633054708ab5ad400cea9cc88cb944e0b67177c803678d89105c 59968 chibicc_0+git20220719+ds-4_amd64.deb Files: b6c521ae21e1b95681317ebb0b89d3ce 168808 debug optional chibicc-dbgsym_0+git20220719+ds-4_amd64.deb e992c1bc366f939901f6c3fced10f43a 5202 devel optional chibicc_0+git20220719+ds-4_amd64.buildinfo d5eb19293afb40a633d63a8e4dc33393 59968 devel optional chibicc_0+git20220719+ds-4_amd64.deb Tue Apr 18 21:55:05 UTC 2023 I: diffoscope 240 will be used to compare the two builds: # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/chibicc_0+git20220719+ds-4.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/chibicc_0+git20220719+ds-4.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/chibicc_0+git20220719+ds-4.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/b1/chibicc_0+git20220719+ds-4_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.VdRpH4V7/b2/chibicc_0+git20220719+ds-4_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call abc.DotChangesFile ## main (total time: 0.333s) 0.333s 2 calls outputs 0.000s 1 call cleanup ## recognizes (total time: 0.019s) 0.019s 12 calls diffoscope.comparators.binary.FilesystemFile 0.000s 10 calls abc.DotChangesFile ## specialize (total time: 0.000s) 0.000s 1 call specialize Tue Apr 18 21:55:07 UTC 2023 I: diffoscope 240 found no differences in the changes files, and a .buildinfo file also exists. Tue Apr 18 21:55:07 UTC 2023 I: chibicc from bookworm built successfully and reproducibly on amd64. Tue Apr 18 21:55:08 UTC 2023 I: Submitting .buildinfo files to external archives: Tue Apr 18 21:55:08 UTC 2023 I: Submitting 8.0K b1/chibicc_0+git20220719+ds-4_amd64.buildinfo.asc Tue Apr 18 21:55:09 UTC 2023 I: Submitting 8.0K b2/chibicc_0+git20220719+ds-4_amd64.buildinfo.asc Tue Apr 18 21:55:09 UTC 2023 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Tue Apr 18 21:55:09 UTC 2023 I: Done submitting .buildinfo files. Tue Apr 18 21:55:09 UTC 2023 I: Removing signed chibicc_0+git20220719+ds-4_amd64.buildinfo.asc files: removed './b1/chibicc_0+git20220719+ds-4_amd64.buildinfo.asc' removed './b2/chibicc_0+git20220719+ds-4_amd64.buildinfo.asc'