=>> Building mail/avenger build started at Thu Apr 4 04:15:08 BST 2024 port directory: /usr/ports/mail/avenger package name: avenger-0.8.5_1 building for: FreeBSD pkg-builder.dan.net.uk 13.2-RELEASE-p10 FreeBSD 13.2-RELEASE-p10 amd64 maintained by: ports@FreeBSD.org Makefile datestamp: -rw-r--r-- 1 root wheel 1447 Feb 25 10:26 /usr/ports/mail/avenger/Makefile Ports top last git commit: c2c35d895e Ports top unclean checkout: yes Port dir last git commit: 19bcd12fa4 Port dir unclean checkout: no Poudriere version: poudriere-git-3.4.99.20240122_1 Host OSVERSION: 1400097 Jail OSVERSION: 1302001 Job Id: 08 ---Begin Environment--- SHELL=/bin/csh OSVERSION=1302001 UNAME_v=FreeBSD 13.2-RELEASE-p10 UNAME_r=13.2-RELEASE-p10 BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin MAKE_OBJDIR_CHECK_WRITABLE=0 LOCALBASE=/usr/local USER=root POUDRIERE_NAME=poudriere-git LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.4.99.20240122_1 MASTERMNT=/usr/local/poudriere/data/.m/13-amd64-default-dan/ref LC_COLLATE=C POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM=screen OUTPUT_REDIRECTED_STDERR=4 OUTPUT_REDIRECTED=1 PWD=/usr/local/poudriere/data/.m/13-amd64-default-dan/08/.p OUTPUT_REDIRECTED_STDOUT=3 P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS MASTERNAME=13-amd64-default-dan SCRIPTPREFIX=/usr/local/share/poudriere SCRIPTNAME=bulk.sh OLDPWD=/usr/local/poudriere/data/.m/13-amd64-default-dan/ref/.p/pool POUDRIERE_PKGNAME=poudriere-git-3.4.99.20240122_1 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for avenger-0.8.5_1: DOCS=on: Build and/or install documentation SASL=off: SASL authentication support ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- ports@FreeBSD.org --End MAINTAINER-- --CONFIGURE_ARGS-- --enable-ssl=/usr/local --with-db=/usr/local --with-etcdir=/usr/local/etc/avenger --disable-sasl --prefix=/usr/local ${_LATE_CONFIGURE_ARGS} --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- WFLAGS='-Wall' XDG_DATA_HOME=/wrkdirs/usr/ports/mail/avenger/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/mail/avenger/work XDG_CACHE_HOME=/wrkdirs/usr/ports/mail/avenger/work/.cache HOME=/wrkdirs/usr/ports/mail/avenger/work TMPDIR="/tmp" PATH=/ccache/libexec/ccache:/wrkdirs/usr/ports/mail/avenger/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/mail/avenger/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CCACHE_DIR="/root/.ccache" CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=524288 --End CONFIGURE_ENV-- --MAKE_ENV-- OPENSSLBASE=/usr/local OPENSSLDIR=/usr/local/openssl OPENSSLINC=/usr/local/include OPENSSLLIB=/usr/local/lib OPENSSLRPATH=/usr/local/lib XDG_DATA_HOME=/wrkdirs/usr/ports/mail/avenger/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/mail/avenger/work XDG_CACHE_HOME=/wrkdirs/usr/ports/mail/avenger/work/.cache HOME=/wrkdirs/usr/ports/mail/avenger/work TMPDIR="/tmp" PATH=/ccache/libexec/ccache:/wrkdirs/usr/ports/mail/avenger/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/mail/avenger/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local CC="cc" CFLAGS="-O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing " CPP="cpp" CPPFLAGS="" LDFLAGS=" -Wl,-rpath,/usr/local/lib -fstack-protector-strong " LIBS="" CXX="c++" CXXFLAGS="-O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 " CCACHE_DIR="/root/.ccache" BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- PORTDOCS="" OSREL=13.2 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/avenger" EXAMPLESDIR="share/examples/avenger" DATADIR="share/avenger" WWWDIR="www/avenger" ETCDIR="etc/avenger" --End PLIST_SUB-- --SUB_LIST-- PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/avenger DOCSDIR=/usr/local/share/doc/avenger EXAMPLESDIR=/usr/local/share/examples/avenger WWWDIR=/usr/local/www/avenger ETCDIR=/usr/local/etc/avenger --End SUB_LIST-- ---Begin make.conf--- USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles FORCE_PACKAGE=yes PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes #### #### CCACHE_CPP2=1 WITH_SSP_PORTS=yes WITH_SSP=yes #WITH_LTO=yes DISABLE_LICENSES=yes LICENSES_ACCEPTED=AGPLv3 APACHE10 APACHE11 APACHE20 ART10 ARTPERL10 ART20 BSD BSD2CLAUSE BSD3CLAUSE BSD4CLAUSE BSL CC0-1.0 CDDL ClArtistic EPL GFDL GMGPL GPLv1 GPLv2 GPLv3 GPLv3RLE ISCL LGPL20 LGPL21 LGPL3 LPPL10 LPPL11 LPPL12 LPPL13 LPPL13a LPPL13b LPPL13c MIT MPL OpenSSL OFL10 OFL11 OWL PostgreSQL PHP202 PHP30 PHP301 PSFL RUBY ZLIB ZPL21 SVM-Light EULA ALASIR Microsoft-exFAT SIMIAN UDEVGAME unknown MTA COMMERCIAL teamspeak NO_LICENSES_DIALOGS=yes #### #### NO_IGNORE=yes DEFAULT_VERSIONS+=ssl=openssl mysql=8.0 imagemagick=7 samba=4.13 java=18 WITH_SETID_MODE=force PHP_ZTS=enabled OPTIONS_UNSET+=OPENJPEG OPTIONS_UNSET+=GSSAPI_BASE OPTIONS_SET+=ZTS OPTIONS_SET+=GSSAPI_NONE WITH_CCACHE_BUILD=yes CCACHE_DIR=/root/.ccache NO_CCACHE_DEPEND=1 CCACHE_WRAPPER_PATH= /ccache/libexec/ccache #### Misc Poudriere #### .include "/etc/make.conf.ports_env" GID=0 UID=0 DISABLE_MAKE_JOBS=poudriere ---End make.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 33554432 stack size (kbytes, -s) 524288 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 8192 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited --End resource limits-- =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The avenger port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> avenger-0.8.5_1 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.20.9_1.pkg [pkg-builder.dan.net.uk] Installing pkg-1.20.9_1... [pkg-builder.dan.net.uk] Extracting pkg-1.20.9_1: .......... done ===> avenger-0.8.5_1 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of avenger-0.8.5_1 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The avenger port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> Fetching all distfiles required by avenger-0.8.5_1 for building =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The avenger port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> Fetching all distfiles required by avenger-0.8.5_1 for building => SHA256 Checksum OK for avenger-0.8.5.tar.gz. =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The avenger port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> Fetching all distfiles required by avenger-0.8.5_1 for building ===> Extracting for avenger-0.8.5_1 => SHA256 Checksum OK for avenger-0.8.5.tar.gz. =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Patching for avenger-0.8.5_1 ===> Applying FreeBSD patches for avenger-0.8.5_1 from /usr/ports/mail/avenger/files =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> avenger-0.8.5_1 depends on file: /usr/local/lib/libcrypto.so.12 - not found ===> Installing existing package /packages/All/openssl-3.0.13_1,1.pkg [pkg-builder.dan.net.uk] Installing openssl-3.0.13_1,1... [pkg-builder.dan.net.uk] Extracting openssl-3.0.13_1,1: .......... done ===> avenger-0.8.5_1 depends on file: /usr/local/lib/libcrypto.so.12 - found ===> Returning to build of avenger-0.8.5_1 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> avenger-0.8.5_1 depends on shared library: libdb-5.3.so - not found ===> Installing existing package /packages/All/db5-5.3.28_9.pkg [pkg-builder.dan.net.uk] Installing db5-5.3.28_9... [pkg-builder.dan.net.uk] Extracting db5-5.3.28_9: .......... done ===== Message from db5-5.3.28_9: -- ===> NOTICE: The db5 port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing -- ===> NOTICE: This port is deprecated; you may wish to reconsider installing it: EOLd, potential security issues, maybe use db18 instead. It is scheduled to be removed on or after 2022-06-30. ===> avenger-0.8.5_1 depends on shared library: libdb-5.3.so - found (/usr/local/lib/libdb-5.3.so) ===> Returning to build of avenger-0.8.5_1 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Configuring for avenger-0.8.5_1 configure: loading site script /usr/ports/Templates/config.site checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p checking for gawk... (cached) /usr/bin/awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking build system type... amd64-portbld-freebsd13.2 checking host system type... amd64-portbld-freebsd13.2 checking for gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking whether cc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of cc... gcc3 checking how to run the C preprocessor... cpp checking whether we are using the GNU C++ compiler... yes checking whether c++ accepts -g... yes checking dependency style of c++... gcc3 checking whether ln -s works... yes checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... (cached) /usr/bin/egrep checking for fgrep... (cached) /usr/bin/fgrep checking for ld used by cc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm checking the name lister (/usr/bin/nm) interface... BSD nm checking the maximum length of command line arguments... (cached) 524288 checking how to convert amd64-portbld-freebsd13.2 file names to amd64-portbld-freebsd13.2 format... func_convert_file_noop checking how to convert amd64-portbld-freebsd13.2 file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... no checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... no checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm output from cc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking for ANSI C header files... (cached) yes checking for sys/types.h... (cached) yes checking for sys/stat.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for memory.h... (cached) yes checking for strings.h... (cached) yes checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking for dlfcn.h... (cached) yes checking for objdir... .libs checking if cc supports -fno-rtti -fno-exceptions... yes checking for cc option to produce PIC... -fPIC -DPIC checking if cc PIC flag -fPIC -DPIC works... yes checking if cc static flag -static works... yes checking if cc supports -c -o file.o... yes checking if cc supports -c -o file.o... (cached) yes checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... freebsd13.2 ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking how to run the C++ preprocessor... c++ -E checking for ld used by c++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes checking for c++ option to produce PIC... -fPIC -DPIC checking if c++ PIC flag -fPIC -DPIC works... yes checking if c++ static flag -static works... yes checking if c++ supports -c -o file.o... yes checking if c++ supports -c -o file.o... (cached) yes checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... freebsd13.2 ld.so checking how to hardcode library paths into programs... immediate checking for library containing clock_gettime... none required checking for logger... /usr/bin/logger checking for mail.local... /usr/libexec/mail.local checking for kernel random number generator... /dev/urandom checking for perl5... no checking for perl... no checking for pod2man... no checking for ANSI C header files... (cached) yes checking for sys/wait.h that is POSIX.1 compatible... (cached) yes checking sys/rusage.h usability... no checking sys/rusage.h presence... no checking for sys/rusage.h... no checking sys/sockio.h usability... yes checking sys/sockio.h presence... yes checking for sys/sockio.h... yes checking sys/filio.h usability... yes checking sys/filio.h presence... yes checking for sys/filio.h... yes checking for sys/file.h... (cached) yes checking rpc/rpc.h usability... yes checking rpc/rpc.h presence... yes checking for rpc/rpc.h... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking whether struct tm is in sys/time.h or time.h... time.h checking for off_t... (cached) yes checking for uid_t in sys/types.h... (cached) yes checking for size_t... (cached) yes checking whether byte ordering is bigendian... no checking for sys/time.h... (cached) yes checking whether time.h and sys/time.h may both be included... yes checking for clock_gettime... (cached) yes checking for a declaration of clock_gettime... yes checking for struct timespec... yes checking size of long... 8 checking size of long long... 8 checking for u_int64_t... yes checking whether u_int64_t is an unsigned long long... no checking for ssize_t... yes checking for int32_t... yes checking for u_int32_t... yes checking for u_int16_t... yes checking for u_int8_t... yes checking for mode_t... yes checking for u_char... yes checking for u_int... yes checking for u_long... yes checking for int64_t... yes checking for u_int64_t... (cached) yes checking for socklen_t... yes checking for rlim_t... yes checking for 64-bit off_t... yes checking for setgroups declaration in grp.h... no checking for a declaration of getrusage... yes checking for a declaration of bindresvport... yes checking for strchr... (cached) yes checking for memcpy... (cached) yes checking for strcasecmp... (cached) yes checking for getdtablesize... (cached) yes checking for strerror... (cached) yes checking for inet_aton... (cached) yes checking for bindresvport... yes checking for issetugid... (cached) yes checking for geteuid... (cached) yes checking for getegid... (cached) yes checking for arc4random... (cached) yes checking for flock... yes checking for unsetenv... (cached) yes checking for getpeereid... (cached) yes checking for memory.h... (cached) yes checking for wide select... yes checking if putenv() copies its argument... no checking for sa_len in struct sockaddr... yes checking for fd passing with msg_accrights in msghdr... no checking for fd passing with struct cmsghdr... yes checking whether socket buffers > 64k are allowed... yes checking arpa/nameser_compat.h usability... yes checking arpa/nameser_compat.h presence... yes checking for arpa/nameser_compat.h... yes checking for resolver functions in standard C library... yes checking for a declaration of res_init... yes checking for a declaration of res_mkquery... yes checking for a declaration of dn_skipname... yes checking for a declaration of dn_expand... yes checking for struct sockaddr_storage... yes checking for __ss_len in sockaddr_storage... no checking for __res_ninit... yes checking for st_atimespec in stat structure... yes checking for st_mtimespec in stat structure... yes checking for st_mtim in stat structure... yes checking for mkdtemp... (cached) yes checking for a declaration of sys_signame... yes checking type of array argument to getgroups... gid_t checking if egid is first element of grouplist... yes checking for getspnam... no checking for setlogin... (cached) yes checking for initgroups... yes checking for seteuid... (cached) yes checking for pw_expire in struct passwd... yes checking for pw_class in struct passwd... yes checking for getgrouplist... (cached) yes checking whether getgrouplist uses int or gid_t... gid_t checking for setusercontext... no checking for util in -lsetusercontext... no checking for a declaration of pread... yes checking for a declaration of pwrite... yes checking pcap.h usability... yes checking pcap.h presence... yes checking for pcap.h... yes checking for bpf_u_int32... yes checking for pcap_freecode... yes checking for OpenSSL... /usr/local checking for library containing dbm_open... none required checking for BerkeleyDB library... -L/usr/local/lib/db5 -ldb-5.3 checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating libasync/Makefile config.status: creating asmtpd/Makefile config.status: creating util/Makefile config.status: creating local/Makefile config.status: creating doc/Makefile config.status: creating etc/Makefile config.status: creating etc/avenger.service config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building for avenger-0.8.5_1 /usr/bin/make all-recursive Making all in libasync cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT arandom.o -MD -MP -MF .deps/arandom.Tpo -c -o arandom.o arandom.c mv -f .deps/arandom.Tpo .deps/arandom.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT clock_gettime.o -MD -MP -MF .deps/clock_gettime.Tpo -c -o clock_gettime.o clock_gettime.c mv -f .deps/clock_gettime.Tpo .deps/clock_gettime.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT getopt_long.o -MD -MP -MF .deps/getopt_long.Tpo -c -o getopt_long.o getopt_long.c mv -f .deps/getopt_long.Tpo .deps/getopt_long.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT maketables.o -MD -MP -MF .deps/maketables.Tpo -c -o maketables.o maketables.c mv -f .deps/maketables.Tpo .deps/maketables.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT dftables.o -MD -MP -MF .deps/dftables.Tpo -c -o dftables.o dftables.c mv -f .deps/dftables.Tpo .deps/dftables.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o dftables dftables.o libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o dftables dftables.o ./dftables chartables.c cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT pcre.o -MD -MP -MF .deps/pcre.Tpo -c -o pcre.o pcre.c pcre.c:1338:6: warning: explicitly assigning value of variable of type 'BOOL' (aka 'int') to itself [-Wself-assign] utf8 = utf8; /* Stop pedantic compilers complaining */ ~~~~ ^ ~~~~ pcre.c:1411:6: warning: explicitly assigning value of variable of type 'BOOL' (aka 'int') to itself [-Wself-assign] utf8 = utf8; /* Stop pedantic compilers complaining */ ~~~~ ^ ~~~~ pcre.c:2891:35: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand] else if ((digitab[ptr[1]] && ctype_digit) != 0) ^ ~~~~~~~~~~~ pcre.c:2891:35: note: use '&' for a bitwise operation else if ((digitab[ptr[1]] && ctype_digit) != 0) ^~ & pcre.c:2891:35: note: remove constant to silence this warning else if ((digitab[ptr[1]] && ctype_digit) != 0) ~^~~~~~~~~~~~~~ 3 warnings generated. mv -f .deps/pcre.Tpo .deps/pcre.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT rwfd.o -MD -MP -MF .deps/rwfd.Tpo -c -o rwfd.o rwfd.c mv -f .deps/rwfd.Tpo .deps/rwfd.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -w -c ./stktrace.c cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT study.o -MD -MP -MF .deps/study.Tpo -c -o study.o study.c mv -f .deps/study.Tpo .deps/study.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT suidprotect.o -MD -MP -MF .deps/suidprotect.Tpo -c -o suidprotect.o suidprotect.c mv -f .deps/suidprotect.Tpo .deps/suidprotect.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT aerr.o -MD -MP -MF .deps/aerr.Tpo -c -o aerr.o aerr.C In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from aerr.C:25: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 21 warnings generated. mv -f .deps/aerr.Tpo .deps/aerr.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT aios.o -MD -MP -MF .deps/aios.Tpo -c -o aios.o aios.C In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from aios.C:26: In file included from ./aios.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./aios.h:40:11: note: in instantiation of template class 'callback' requested here typedef callback::ptr rcb_t; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./aios.h:41:11: note: in instantiation of template class 'callback' requested here typedef callback::ptr wcb_t; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from aios.C:26: In file included from ./aios.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 26 warnings generated. mv -f .deps/aios.Tpo .deps/aios.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT arena.o -MD -MP -MF .deps/arena.Tpo -c -o arena.o arena.C In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from arena.C:24: In file included from ./arena.h:28: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 21 warnings generated. mv -f .deps/arena.Tpo .deps/arena.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT armor.o -MD -MP -MF .deps/armor.Tpo -c -o armor.o armor.C In file included from armor.C:24: In file included from ./serial.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from armor.C:24: In file included from ./serial.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from armor.C:24: In file included from ./serial.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from armor.C:24: In file included from ./serial.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from armor.C:24: In file included from ./serial.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from armor.C:24: In file included from ./serial.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ 9 warnings generated. mv -f .deps/armor.Tpo .deps/armor.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT cbuf.o -MD -MP -MF .deps/cbuf.Tpo -c -o cbuf.o cbuf.C mv -f .deps/cbuf.Tpo .deps/cbuf.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT convertint.o -MD -MP -MF .deps/convertint.Tpo -c -o convertint.o convertint.C In file included from convertint.C:24: In file included from ./parseopt.h:28: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from convertint.C:24: In file included from ./parseopt.h:29: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from convertint.C:24: In file included from ./parseopt.h:29: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ convertint.C:66:44: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] strtoi64 (const char *nptr, char **endptr, register int base) ^~~~~~~~~ convertint.C:68:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register const char *s; ^~~~~~~~~ convertint.C:69:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int64_t acc, cutoff; ^~~~~~~~~ convertint.C:69:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int64_t acc, cutoff; ^~~~~~~~~ convertint.C:70:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int c; ^~~~~~~~~ convertint.C:71:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int neg, any, cutlim; ^~~~~~~~~ convertint.C:71:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int neg, any, cutlim; ^~~~~~~~~ convertint.C:71:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int neg, any, cutlim; ^~~~~~~~~ 34 warnings generated. mv -f .deps/convertint.Tpo .deps/convertint.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT core.o -MD -MP -MF .deps/core.Tpo -c -o core.o core.C In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ core.C:71:55: note: in instantiation of template class 'ihash' requested here static ihash chldcbs; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ core.C:71:55: note: in instantiation of template class 'ihash' requested here static ihash chldcbs; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./itree.h:162:23: note: in instantiation of template class 'callback' requested here T *search (typename callback::ref cb) const { ^ ./itree.h:225:12: note: in instantiation of template class 'itree_core>>' requested here : public itree_core > ^ core.C:80:66: note: in instantiation of template class 'itree' requested here static itree timecbs; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./itree.h:203:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./itree.h:225:12: note: in instantiation of template class 'itree_core>>' requested here : public itree_core > ^ core.C:80:66: note: in instantiation of template class 'itree' requested here static itree timecbs; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ core.C:119:29: note: in instantiation of template class 'ptr>' requested here chldcb (pid_t pid, cbi::ptr cb) ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./list.h:62:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ core.C:335:11: note: in instantiation of template class 'list' requested here lazylist->insert_head (this); ^ In file included from core.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 32 warnings generated. mv -f .deps/core.Tpo .deps/core.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT daemonize.o -MD -MP -MF .deps/daemonize.Tpo -c -o daemonize.o daemonize.C In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from daemonize.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 21 warnings generated. mv -f .deps/daemonize.Tpo .deps/daemonize.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT dns.o -MD -MP -MF .deps/dns.Tpo -c -o dns.o dns.C In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: ./dnsimpl.h:49:1: warning: 'dnsreq' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class dnsreq { ^ ./dns.h:101:9: note: did you mean class here? typedef struct dnsreq dnsreq_t; ^~~~~~ class In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:82:10: note: in instantiation of template class 'ref, int>>' requested here cbhent cb; // Callback for hostbyname/addr ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:93:12: note: in instantiation of template class 'ref, int>>' requested here cbmxlist cb; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:129:13: note: in instantiation of template class 'ref, int>>' requested here cbtxtlist cb; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dnsimpl.h:138:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:140:8: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:141:13: note: in instantiation of template class 'ref' requested here ref destroyed; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dnsimpl.h:174:16: note: in instantiation of template class 'ptr' requested here ptr udpsock; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dns.C:360:6: note: in instantiation of template class 'ptr' requested here wrap (this, &resolver::udpcheck_cb), ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dns.C:614:15: note: in instantiation of template class 'ptr' requested here ptr m; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dns.C:772:16: note: in instantiation of template class 'ptr' requested here ptr t; ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ In file included from dns.C:30: In file included from ./dnsimpl.h:28: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ In file included from dns.C:30: ./dnsimpl.h:50:7: warning: private field 'ntries' is not used [-Wunused-private-field] int ntries; ^ 54 warnings generated. mv -f .deps/dns.Tpo .deps/dns.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT dnsparse.o -MD -MP -MF .deps/dnsparse.Tpo -c -o dnsparse.o dnsparse.C In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dnsparse.C:399:11: note: in instantiation of template class 'ptr' requested here dnsparse::tohostent () ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ dnsparse.C:435:14: note: in instantiation of template class 'ref' requested here (sizeof (*h) ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dnsparse.C:477:11: note: in instantiation of template class 'ptr' requested here dnsparse::tomxlist () ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ dnsparse.C:527:16: note: in instantiation of template class 'ref' requested here ref mxl = refcounted::alloc ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ dnsparse.C:664:16: note: in instantiation of template class 'ref' requested here ref s = refcounted::alloc ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ dnsparse.C:684:11: note: in instantiation of template class 'ptr' requested here dnsparse::totxtlist () ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ dnsparse.C:716:16: note: in instantiation of template class 'ref' requested here ref t = refcounted::alloc ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ In file included from dnsparse.C:29: In file included from ./dnsparse.h:29: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ 44 warnings generated. mv -f .deps/dnsparse.Tpo .deps/dnsparse.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT err.o -MD -MP -MF .deps/err.Tpo -c -o err.o err.C In file included from err.C:24: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from err.C:24: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from err.C:24: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from err.C:24: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from err.C:24: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from err.C:24: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ 9 warnings generated. mv -f .deps/err.Tpo .deps/err.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT ident.o -MD -MP -MF .deps/ident.Tpo -c -o ident.o ident.C In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from ident.C:24: In file included from ./rxx.h:32: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ident.C:39:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ident.C:40:47: note: in instantiation of template class 'ptr, int>>' requested here callback, int>::ptr cb; ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ident.C:73:63: note: in instantiation of template class 'ref, int>>' requested here identptr (int fd, callback, int>::ref cb, ^ In file included from ident.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ident.C:127:32: note: in instantiation of template class 'ref, int>>' requested here dns_hostbyaddr (ra.sin_addr, wrap (is, &identstat::dnscb)); ^ 40 warnings generated. mv -f .deps/ident.Tpo .deps/ident.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT ifchg.o -MD -MP -MF .deps/ifchg.Tpo -c -o ifchg.o ifchg.C In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./list.h:62:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ifchg.C:38:42: note: in instantiation of template class 'list' requested here static list chglist; ^ In file included from ifchg.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 33 warnings generated. mv -f .deps/ifchg.Tpo .deps/ifchg.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT ihash.o -MD -MP -MF .deps/ihash.Tpo -c -o ihash.o ihash.C In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from ihash.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ 16 warnings generated. mv -f .deps/ihash.Tpo .deps/ihash.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT itree.o -MD -MP -MF .deps/itree.Tpo -c -o itree.o itree.C mv -f .deps/itree.Tpo .deps/itree.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT malloc.o -MD -MP -MF .deps/malloc.Tpo -c -o malloc.o malloc.C In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from malloc.C:3: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ 16 warnings generated. mv -f .deps/malloc.Tpo .deps/malloc.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT msb.o -MD -MP -MF .deps/msb.Tpo -c -o msb.o msb.C mv -f .deps/msb.Tpo .deps/msb.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT myaddrs.o -MD -MP -MF .deps/myaddrs.Tpo -c -o myaddrs.o myaddrs.C In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ./qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ myaddrs.C:75:18: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash addrs; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ./qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ myaddrs.C:75:18: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash addrs; ^ In file included from myaddrs.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 20 warnings generated. mv -f .deps/myaddrs.Tpo .deps/myaddrs.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT myname.o -MD -MP -MF .deps/myname.Tpo -c -o myname.o myname.C In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from myname.C:24: In file included from ./dns.h:29: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ 31 warnings generated. mv -f .deps/myname.Tpo .deps/myname.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT parseopt.o -MD -MP -MF .deps/parseopt.Tpo -c -o parseopt.o parseopt.C In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from parseopt.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ 26 warnings generated. mv -f .deps/parseopt.Tpo .deps/parseopt.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT pipe2str.o -MD -MP -MF .deps/pipe2str.Tpo -c -o pipe2str.o pipe2str.C In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from pipe2str.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ pipe2str.C:27:23: note: in instantiation of template class 'ref>' requested here pipe2str (int fd, cbs cb, int *fdp, strbuf *sb) ^ 22 warnings generated. mv -f .deps/pipe2str.Tpo .deps/pipe2str.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT refcnt.o -MD -MP -MF .deps/refcnt.Tpo -c -o refcnt.o refcnt.C In file included from refcnt.C:46: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ refcnt.C:59:1: note: in instantiation of template class 'callback' requested here callback::ref cbv_null (gwrap (ignore_void)); ^ In file included from refcnt.C:46: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from refcnt.C:24: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ refcnt.C:59:21: note: in instantiation of template class 'ref>' requested here callback::ref cbv_null (gwrap (ignore_void)); ^ In file included from refcnt.C:46: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ refcnt.C:60:1: note: in instantiation of template class 'callback' requested here callback::ref cbi_null (gwrap (ignore_int)); ^ In file included from refcnt.C:46: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from refcnt.C:24: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ refcnt.C:60:26: note: in instantiation of template class 'ref>' requested here callback::ref cbi_null (gwrap (ignore_int)); ^ In file included from refcnt.C:62: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from refcnt.C:62: In file included from ./err.h:28: In file included from ./str.h:29: ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from refcnt.C:62: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from refcnt.C:24: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ 12 warnings generated. mv -f .deps/refcnt.Tpo .deps/refcnt.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT resolvconf.o -MD -MP -MF .deps/resolvconf.Tpo -c -o resolvconf.o resolvconf.C In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ./qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:6: ./dnsimpl.h:49:1: warning: 'dnsreq' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class dnsreq { ^ ./dns.h:101:9: note: did you mean class here? typedef struct dnsreq dnsreq_t; ^~~~~~ class In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:82:10: note: in instantiation of template class 'ref, int>>' requested here cbhent cb; // Callback for hostbyname/addr ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:93:12: note: in instantiation of template class 'ref, int>>' requested here cbmxlist cb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:129:13: note: in instantiation of template class 'ref, int>>' requested here cbtxtlist cb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dnsimpl.h:138:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:140:8: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dnsimpl.h:141:13: note: in instantiation of template class 'ref' requested here ref destroyed; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dnsimpl.h:174:16: note: in instantiation of template class 'ptr' requested here ptr udpsock; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ In file included from resolvconf.C:2: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ./qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ 60 warnings generated. mv -f .deps/resolvconf.Tpo .deps/resolvconf.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT rxx.o -MD -MP -MF .deps/rxx.Tpo -c -o rxx.o rxx.C In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from rxx.C:24: In file included from ./rxx.h:32: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rxx.C:24: In file included from ./rxx.h:32: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ 16 warnings generated. mv -f .deps/rxx.Tpo .deps/rxx.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT socket.o -MD -MP -MF .deps/socket.Tpo -c -o socket.o socket.C In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from socket.C:29: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ 16 warnings generated. mv -f .deps/socket.Tpo .deps/socket.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT spawn.o -MD -MP -MF .deps/spawn.Tpo -c -o spawn.o spawn.C In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spawn.C:24: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ spawn.C:135:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (np = searchdir (builddir, prog)) ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ spawn.C:135:12: note: place parentheses around the assignment to silence this warning if (np = searchdir (builddir, prog)) ^ ( ) spawn.C:135:12: note: use '==' to turn this assignment into an equality comparison if (np = searchdir (builddir, prog)) ^ == spawn.C:137:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (np = searchdir (builddir << "/lib", prog)) ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ spawn.C:137:12: note: place parentheses around the assignment to silence this warning if (np = searchdir (builddir << "/lib", prog)) ^ ( ) spawn.C:137:12: note: use '==' to turn this assignment into an equality comparison if (np = searchdir (builddir << "/lib", prog)) ^ == 18 warnings generated. mv -f .deps/spawn.Tpo .deps/spawn.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT str.o -MD -MP -MF .deps/str.Tpo -c -o str.o str.C In file included from str.C:24: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from str.C:24: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from str.C:24: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from str.C:24: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from str.C:24: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from str.C:24: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ 9 warnings generated. mv -f .deps/str.Tpo .deps/str.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT str2file.o -MD -MP -MF .deps/str2file.Tpo -c -o str2file.o str2file.C In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from str2file.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ 16 warnings generated. mv -f .deps/str2file.Tpo .deps/str2file.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT straux.o -MD -MP -MF .deps/straux.Tpo -c -o straux.o straux.C In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from straux.C:25: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ straux.C:34:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register const char *cp; ^~~~~~~~~ straux.C:35:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int i1, i2; ^~~~~~~~~ straux.C:35:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int i1, i2; ^~~~~~~~~ 19 warnings generated. mv -f .deps/straux.Tpo .deps/straux.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT suio++.o -MD -MP -MF .deps/suio++.Tpo -c -o suio++.o suio++.C In file included from suio++.C:24: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from suio++.C:24: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from suio++.C:24: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from suio++.C:24: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from suio++.C:24: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ suio++.C:195:23: note: in instantiation of template class 'ptr>' requested here callback::ptr cb; ^ suio++.C:459:21: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] suio_flatten (const struct suio *uio) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ suio++.C:459:21: note: did you mean class here? suio_flatten (const struct suio *uio) ^~~~~~ class 9 warnings generated. mv -f .deps/suio++.Tpo .deps/suio++.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT suio_vuprintf.o -MD -MP -MF .deps/suio_vuprintf.Tpo -c -o suio_vuprintf.o suio_vuprintf.C In file included from suio_vuprintf.C:62: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from suio_vuprintf.C:62: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from suio_vuprintf.C:62: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from suio_vuprintf.C:62: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class suio_vuprintf.C:109:16: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] suio_vuprintf (struct suio *uio, const char *_fmt, va_list ap) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ suio_vuprintf.C:109:16: note: did you mean class here? suio_vuprintf (struct suio *uio, const char *_fmt, va_list ap) ^~~~~~ class suio_vuprintf.C:116:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int ch; /* character from fmt */ ^~~~~~~~~ suio_vuprintf.C:117:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int n, m; /* handy integers (short term usage) */ ^~~~~~~~~ suio_vuprintf.C:117:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int n, m; /* handy integers (short term usage) */ ^~~~~~~~~ suio_vuprintf.C:118:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register char *cp; /* handy char pointer (short term usage) */ ^~~~~~~~~ suio_vuprintf.C:119:3: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] register int flags; /* flags as above */ ^~~~~~~~~ suio_vuprintf.C:717:15: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] suio_uprintf (struct suio *uio, const char *fmt, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ suio_vuprintf.C:717:15: note: did you mean class here? suio_uprintf (struct suio *uio, const char *fmt, ...) ^~~~~~ class 14 warnings generated. mv -f .deps/suio_vuprintf.Tpo .deps/suio_vuprintf.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT tcpconnect.o -MD -MP -MF .deps/tcpconnect.Tpo -c -o tcpconnect.o tcpconnect.C In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:29: In file included from ./vec.h:30: ./array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ./array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ./suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ./suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ./suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ./suio++.h:46:7: note: previous use is here class suio { ^ ./suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: ./str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ./str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ./callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: ./callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ tcpconnect.C:77:36: note: in instantiation of template class 'ptr' requested here dnsp = dns_hostbyname (hostname, wrap (this, &tcpportconnect_t::name_cb), ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ tcpconnect.C:77:36: note: in instantiation of template class 'ref, int>>' requested here dnsp = dns_hostbyname (hostname, wrap (this, &tcpportconnect_t::name_cb), ^ In file included from tcpconnect.C:24: In file included from ./async.h:28: In file included from ./amisc.h:29: In file included from ./err.h:28: In file included from ./str.h:29: In file included from ./suio++.h:30: In file included from ./callback.h:612: ./refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ tcpconnect.C:282:48: note: in instantiation of template class 'ref' requested here tcpsrvconnect_t::tcpsrvconnect_t (ref sl, cbi cb, str *np) ^ 34 warnings generated. mv -f .deps/tcpconnect.Tpo .deps/tcpconnect.Po rm -f libasync.a ar cru libasync.a arandom.o clock_gettime.o getopt_long.o maketables.o pcre.o rwfd.o stktrace.o study.o suidprotect.o aerr.o aios.o arena.o armor.o cbuf.o convertint.o core.o daemonize.o dns.o dnsparse.o err.o ident.o ifchg.o ihash.o itree.o malloc.o msb.o myaddrs.o myname.o parseopt.o pipe2str.o refcnt.o resolvconf.o rxx.o socket.o spawn.o str.o str2file.o straux.o suio++.o suio_vuprintf.o tcpconnect.o ranlib libasync.a Making all in asmtpd c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT addrparse.o -MD -MP -MF .deps/addrparse.Tpo -c -o addrparse.o addrparse.C In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from addrparse.C:32: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 88 warnings generated. mv -f .deps/addrparse.Tpo .deps/addrparse.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT asmtpd.o -MD -MP -MF .deps/asmtpd.Tpo -c -o asmtpd.o asmtpd.C In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:25: ./rawnet.h:129:1: warning: 'synfp_collect' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class synfp_collect { ^ ./asmtpd.h:63:1: note: did you mean class here? struct synfp_collect; ^~~~~~ class In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ../libasync/dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ../libasync/dnsparse.h:67:9: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here map_t name2pos; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:27: ../libasync/dnsimpl.h:49:1: warning: 'dnsreq' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class dnsreq { ^ ../libasync/dns.h:101:9: note: did you mean class here? typedef struct dnsreq dnsreq_t; ^~~~~~ class In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dnsimpl.h:82:10: note: in instantiation of template class 'ref, int>>' requested here cbhent cb; // Callback for hostbyname/addr ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dnsimpl.h:93:12: note: in instantiation of template class 'ref, int>>' requested here cbmxlist cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dnsimpl.h:129:13: note: in instantiation of template class 'ref, int>>' requested here cbtxtlist cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dnsimpl.h:138:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dnsimpl.h:140:8: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dnsimpl.h:141:13: note: in instantiation of template class 'ref' requested here ref destroyed; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dnsimpl.h:174:16: note: in instantiation of template class 'ptr' requested here ptr udpsock; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/dnsimpl.h:196:57: note: in instantiation of template class 'ihash' requested here ihash reqtab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:62:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ asmtpd.C:55:40: note: in instantiation of template class 'list' requested here static list listen_list; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ asmtpd.C:57:41: note: in instantiation of template class 'ihash' requested here &listener::sin, &listener::hlink> listen_tab; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ asmtpd.C:189:19: note: in instantiation of template class 'ref, int>>' requested here identptr (fd, wrap (this, &newcon::ident_cb), opt->ident_timeout); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ asmtpd.C:238:20: note: in instantiation of template class 'ref' requested here rbl_check_con (rs, opt->rbls, sin.sin_addr, ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ asmtpd.C:238:5: note: in instantiation of template class 'ref' requested here rbl_check_con (rs, opt->rbls, sin.sin_addr, ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:62:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ asmtpd.C:378:27: note: in instantiation of template class 'list' requested here for (smtpd *s = smtplist.first, *ns; s; s = ns) { ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ asmtpd.C:519:29: note: in instantiation of template class 'ref>' requested here spf_check (a, parse[3], wrap (spftst_2, line), parse[5]); ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ asmtpd.C:587:48: note: in instantiation of template class 'ref>' requested here avenge_c (aios_t in, strbuf sb, ref > cmdv, str line, int err) ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ../libasync/dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ In file included from asmtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ../libasync/dnsparse.h:69:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here nameset () : pos (0) {} ^ 139 warnings generated. mv -f .deps/asmtpd.Tpo .deps/asmtpd.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT auth.o -MD -MP -MF .deps/auth.Tpo -c -o auth.o auth.C In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from auth.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 88 warnings generated. mv -f .deps/auth.Tpo .deps/auth.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT avif.o -MD -MP -MF .deps/avif.Tpo -c -o avif.o avif.C In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:26: ./rawnet.h:129:1: warning: 'synfp_collect' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class synfp_collect { ^ ./asmtpd.h:63:1: note: did you mean class here? struct synfp_collect; ^~~~~~ class In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ avif.C:28:60: note: in instantiation of template class 'ihash' requested here ihash avctab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ avif.C:28:60: note: in instantiation of template class 'ihash' requested here ihash avctab; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ avif.C:159:6: note: in instantiation of template class 'ref, int>>' requested here wrap (this, &avif::dns_a_cb, dnsarx[1], rp), ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ avif.C:181:4: note: in instantiation of template class 'ref, int>>' requested here wrap (this, &avif::dns_mx_cb, dnsmxrx[1], rp), ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ avif.C:189:4: note: in instantiation of template class 'ptr' requested here wrap (this, &avif::dns_txt_cb, dnstxtrx[1], rp), ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ avif.C:189:4: note: in instantiation of template class 'ref, int>>' requested here wrap (this, &avif::dns_txt_cb, dnstxtrx[1], rp), ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from avif.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 117 warnings generated. mv -f .deps/avif.Tpo .deps/avif.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT config.o -MD -MP -MF .deps/config.Tpo -c -o config.o config.C In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ config.C:297:19: note: in instantiation of template class 'ref' requested here rbls.push_back (New refcounted (domain, flags, score)); ^ ../libasync/opnew.h:64:13: note: expanded from macro 'New' #define New new ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ config.C:471:25: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash cache; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ config.C:471:25: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash cache; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ config.C:54:10: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here options::options () ^ In file included from config.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ config.C:54:10: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here options::options () ^ 95 warnings generated. mv -f .deps/config.Tpo .deps/config.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT enqmsg.o -MD -MP -MF .deps/enqmsg.Tpo -c -o enqmsg.o enqmsg.C In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ enqmsg.C:231:4: note: in instantiation of template class 'ref' requested here wrap (this, &enqmsg_file::smcb, av[0], cb), ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ enqmsg.C:231:4: note: in instantiation of template class 'ref>>' requested here wrap (this, &enqmsg_file::smcb, av[0], cb), ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from enqmsg.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 90 warnings generated. mv -f .deps/enqmsg.Tpo .deps/enqmsg.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT mxcheck.o -MD -MP -MF .deps/mxcheck.Tpo -c -o mxcheck.o mxcheck.C In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ mxcheck.C:29:24: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here static qhash mxcache; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ mxcheck.C:29:24: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here static qhash mxcache; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ mxcheck.C:30:23: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here static bhash addrcache; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ mxcheck.C:30:23: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here static bhash addrcache; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ mxcheck.C:68:46: note: in instantiation of template class 'ref, int>>' requested here else if (dnsreq *rq = dns_mxbyname (relay, wrap (this, &mxcheck::getmx))) ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ mxcheck.C:108:29: note: in instantiation of template class 'ref, int>>' requested here = dns_hostbyname (mxes[i], wrap (this, &mxcheck::geta, i))) ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ mxcheck.C:149:11: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here mxcache.clear (); ^ In file included from mxcheck.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ mxcheck.C:149:11: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here mxcache.clear (); ^ 100 warnings generated. mv -f .deps/mxcheck.Tpo .deps/mxcheck.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT netpath.o -MD -MP -MF .deps/netpath.Tpo -c -o netpath.o netpath.C In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:132:9: note: in instantiation of template class 'ref>' requested here cbs cb; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from netpath.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ netpath.C:656:22: note: in instantiation of template class 'ptr' requested here static ptr is; ^ 48 warnings generated. mv -f .deps/netpath.Tpo .deps/netpath.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT osguess.o -MD -MP -MF .deps/osguess.Tpo -c -o osguess.o osguess.C In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ osguess.C:44:32: note: in instantiation of template class 'tailq' requested here tailq q; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:52:5: note: in instantiation of template class 'ref' requested here V value; ^ ../libasync/qhash.h:61:5: note: in instantiation of template class 'qhash_slot>' requested here = &qhash_slot::link> ^ osguess.C:52:8: note: in instantiation of default argument for 'qhash, hashfn, equals, qhash_lookup_return>>' required here static qhash > ostab; ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback> *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core>, &qhash_slot>::link>' requested here : public ihash_core, kludge> { ^ osguess.C:52:35: note: in instantiation of template class 'qhash, hashfn, equals, qhash_lookup_return>, &qhash_slot>::link>' requested here static qhash > ostab; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback> &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core>, &qhash_slot>::link>' requested here : public ihash_core, kludge> { ^ osguess.C:52:35: note: in instantiation of template class 'qhash, hashfn, equals, qhash_lookup_return>, &qhash_slot>::link>' requested here static qhash > ostab; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ osguess.C:134:24: note: in instantiation of template class 'ptr' requested here ptr ol = ostab[ln]; ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref> *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ osguess.C:113:9: note: in instantiation of member function 'qhash, hashfn, equals, qhash_lookup_return>, &qhash_slot>::link>::clear' requested here ostab.clear (); ^ In file included from osguess.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref> &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ osguess.C:113:9: note: in instantiation of member function 'qhash, hashfn, equals, qhash_lookup_return>, &qhash_slot>::link>::clear' requested here ostab.clear (); ^ 98 warnings generated. mv -f .deps/osguess.Tpo .deps/osguess.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT quota.o -MD -MP -MF .deps/quota.Tpo -c -o quota.o quota.C In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:25: ./rawnet.h:129:1: warning: 'synfp_collect' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class synfp_collect { ^ ./asmtpd.h:63:1: note: did you mean class here? struct synfp_collect; ^~~~~~ class In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ quota.C:27:60: note: in instantiation of template class 'ihash' requested here ihash iitab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ quota.C:27:60: note: in instantiation of template class 'ihash' requested here ihash iitab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ quota.C:28:62: note: in instantiation of template class 'ihash' requested here ihash uitab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ quota.C:28:62: note: in instantiation of template class 'ihash' requested here ihash uitab; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ quota.C:45:19: note: in instantiation of template class 'ref>' requested here iitab.traverse (&ipinfo::maybe_delete); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ quota.C:45:19: note: in instantiation of template class 'ref>' requested here iitab.traverse (&ipinfo::maybe_delete); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ quota.C:46:19: note: in instantiation of template class 'ref>' requested here uitab.traverse (&userinfo::maybe_delete); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ quota.C:46:19: note: in instantiation of template class 'ref>' requested here uitab.traverse (&userinfo::maybe_delete); ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from quota.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 121 warnings generated. mv -f .deps/quota.Tpo .deps/quota.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT rbl.o -MD -MP -MF .deps/rbl.Tpo -c -o rbl.o rbl.C In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ rbl.C:95:19: note: in instantiation of template class 'ref' requested here ref stat; ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ rbl.C:112:11: note: in instantiation of template class 'ref' requested here if (!(rblv[i]->flags & (rbl::QUERY_IP | rbl::QUERY_PTR))) ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ rbl.C:117:29: note: in instantiation of template class 'ref, int>>' requested here dns_hostbyname (name, wrap (this, &rbl_check::result, rblv[i]), ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from rbl.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 91 warnings generated. mv -f .deps/rbl.Tpo .deps/rbl.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT rcptcheck.o -MD -MP -MF .deps/rcptcheck.Tpo -c -o rcptcheck.o rcptcheck.C In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from rcptcheck.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 88 warnings generated. mv -f .deps/rcptcheck.Tpo .deps/rcptcheck.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT runprog.o -MD -MP -MF .deps/runprog.Tpo -c -o runprog.o runprog.C In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ runprog.C:39:15: note: in instantiation of template class 'ref>>' requested here runprogcb_t cb; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ runprog.C:42:16: note: in instantiation of template class 'ref' requested here ref po; ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from runprog.C:25: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 90 warnings generated. mv -f .deps/runprog.Tpo .deps/runprog.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT smtpd.o -MD -MP -MF .deps/smtpd.Tpo -c -o smtpd.o smtpd.C In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:25: ./rawnet.h:129:1: warning: 'synfp_collect' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class synfp_collect { ^ ./asmtpd.h:63:1: note: did you mean class here? struct synfp_collect; ^~~~~~ class In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./async_ssl.h:48:13: note: in instantiation of template class 'ptr' requested here ptr oldout; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async_ssl.h:86:22: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ smtpd.C:49:29: note: in instantiation of template class 'ihash' requested here &smtp_dispatch::link> dispatch_tab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ smtpd.C:49:29: note: in instantiation of template class 'ihash' requested here &smtp_dispatch::link> dispatch_tab; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:62:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ smtpd.C:51:27: note: in instantiation of template class 'list' requested here list smtplist; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:300:22: note: in instantiation of template class 'ref' requested here rbl_check_env (rblenv, opt->rbls, relay, ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:300:7: note: in instantiation of template class 'ref' requested here rbl_check_env (rblenv, opt->rbls, relay, ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:334:30: note: in instantiation of template class 'ref>' requested here spf_check (ipaddr, addr, wrap (this, &smtpd::cmd_mail_3, addr), ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:344:35: note: in instantiation of template class 'ref>>' requested here vrfy (myipaddr, addr, ipaddr, wrap (this, &smtpd::cmd_mail_4, addr)); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:719:7: note: in instantiation of template class 'ref' requested here wrap (this, &smtpd::data_3, avc), ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:719:7: note: in instantiation of template class 'ref>>' requested here wrap (this, &smtpd::data_3, avc), ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ smtpd.C:913:26: note: in instantiation of template class 'ref, int>>' requested here dns_hostbyaddr (a, wrap (relaunch, myfd, myfd, nn, a)); ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from smtpd.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 124 warnings generated. mv -f .deps/smtpd.Tpo .deps/smtpd.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT spf.o -MD -MP -MF .deps/spf.Tpo -c -o spf.o spf.C In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ spf.C:80:37: note: in instantiation of template class 'ptr' requested here spf_t::getexp (cbv cb, ptr t, int err) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ spf.C:103:22: note: in instantiation of template class 'ref, int>>' requested here = dns_txtbyname (n, wrap (this, &spf_t::getexp, ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ spf.C:150:43: note: in instantiation of template class 'ref, int>>' requested here if (dnsreq_t *d = dns_hostbyaddr (addr, wrap (this, &spf_t::getptr_2, cb))) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ spf.C:464:46: note: in instantiation of template class 'ref' requested here spf_t::addr_check (int cidrlen, ref h) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ spf.C:693:29: note: in instantiation of template class 'ref, int>>' requested here = dns_mxbyname (targ, wrap (this, &spf_t::mech_mx_2, cidrlen))) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ spf.C:814:24: note: in instantiation of template class 'ref>' requested here spf_check_3 (spfckcb_t cb, spf_result override, str omech, spf_t *spf) ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from spf.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 94 warnings generated. mv -f .deps/spf.Tpo .deps/spf.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT synfp.o -MD -MP -MF .deps/synfp.Tpo -c -o synfp.o synfp.C In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:136:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry cbentry_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback::synfp_entry *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback::synfp_entry &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core::synfp_entry, &synfp_state::synfp_entry::hlink>' requested here : public ihash_core ^ ./rawnet.h:103:36: note: in instantiation of template class 'ihash::synfp_entry, &synfp_state::synfp_entry::sin, &synfp_state::synfp_entry::hlink>' requested here &synfp_entry::synfp_entry::hlink> tab; ^ ./rawnet.h:137:11: note: in instantiation of template class 'synfp_state' requested here typedef synfp_state::synfp_entry fpentry_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:176:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:180:16: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:185:25: note: in instantiation of template class 'ref' requested here const ref is; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ./rawnet.h:208:30: note: in instantiation of template class 'ihash' requested here &icmpsock::icmpclnt::hlink> cbtab; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./rawnet.h:232:17: note: in instantiation of template class 'ref' requested here ref setcb (in_addr a, cb_t cb) ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./rawnet.h:240:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/vec.h:43:27: note: in instantiation of template class 'ref>' requested here char defbuf_space[N * sizeof (elm_t)]; ^ ../libasync/vec.h:41:3: note: in instantiation of member class 'vec_base>, 1>::(anonymous)' requested here union { ^ ../libasync/vec.h:74:52: note: in instantiation of template class 'vec_base>, 1>' requested here template class vec : public vec_base { ^ ./rawnet.h:261:16: note: in instantiation of template class 'vec>, 1>' requested here vec cbvec; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:85:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:85:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:150:18: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:150:18: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:302:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:302:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:303:20: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen_port; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ synfp.C:303:20: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash seen_port; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from synfp.C:24: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ synfp.C:488:16: note: in instantiation of template class 'ref' requested here ref s = New refcounted; ^ 68 warnings generated. mv -f .deps/synfp.Tpo .deps/synfp.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT vrfy.o -MD -MP -MF .deps/vrfy.Tpo -c -o vrfy.o vrfy.C In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ vrfy.C:43:59: note: in instantiation of template class 'ihash' requested here &addrcache_entry::addr, &addrcache_entry::hashlink> addrcache; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ vrfy.C:43:59: note: in instantiation of template class 'ihash' requested here &addrcache_entry::addr, &addrcache_entry::hashlink> addrcache; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:153:3: note: in instantiation of template class 'ref>' requested here cbb::ptr cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ vrfy.C:153:12: note: in instantiation of template class 'ptr>' requested here cbb::ptr cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ vrfy.C:175:70: note: in instantiation of template class 'ihash' requested here static ihash mstab; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ vrfy.C:175:70: note: in instantiation of template class 'ihash' requested here static ihash mstab; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:260:18: note: in instantiation of template class 'ref>' requested here ref > cv = New refcounted > (cmds); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ vrfy.C:355:11: note: in instantiation of template class 'callback>' requested here typedef callback >::ref cb_t; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:358:8: note: in instantiation of template class 'ref>>' requested here cb_t cb; ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:368:25: note: in instantiation of template class 'ref, int>>' requested here dns_mxbyname (name, wrap (this, &mxconnect::mxcb)); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:396:24: note: in instantiation of template class 'ref, int>>' requested here dns_hostbyname (a, wrap (this, &mxconnect::tryip, a)); ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ vrfy.C:456:31: note: in instantiation of template class 'ref>>' requested here vrfy_mkcb (str addr, vrfycb_t cb, str msg, ptr mxl) ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from vrfy.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ 105 warnings generated. mv -f .deps/vrfy.Tpo .deps/vrfy.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT starttls.o -MD -MP -MF .deps/starttls.Tpo -c -o starttls.o starttls.C In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:104:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbhent; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:109:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbmxlist; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:112:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbsrvlist; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/dns.h:115:9: note: in instantiation of template class 'callback, int>' requested here typedef callback, int>::ref cbtxtlist; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/dns.h:120:19: note: in instantiation of template class 'ref, int>>' requested here cbsrvlist cb, bool search = false) ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/dns.h:122:10: note: in instantiation of template class 'ptr' requested here return dns_srvbyname (strbuf ("_%s._%s.%s", srv, proto, name), cb, search); ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/parseopt.h:98:9: note: in instantiation of template class 'callback, str, bool *>' requested here typedef callback, str, bool *>::ref confcb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:114:3: note: in instantiation of template class 'ref, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:114:15: note: in instantiation of template class 'ptr, str, bool *>>' requested here confcb::ptr cnfcb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/parseopt.h:115:3: note: in instantiation of template class 'ref>' requested here cbs::ptr scb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/parseopt.h:115:12: note: in instantiation of template class 'ptr>' requested here cbs::ptr scb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/ihash.h:229:12: note: in instantiation of template class 'ihash_core' requested here : public ihash_core ^ ../libasync/parseopt.h:178:71: note: in instantiation of template class 'ihash' requested here ihash tab; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:73:16: note: in instantiation of template class 'ptr' requested here ptr h; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:74:19: note: in instantiation of template class 'ptr' requested here ptr rs; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:187:22: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash bindaddrh; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:149:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:202:14: note: in instantiation of template class 'bhash, equals, &qhash_slot::link>' requested here bhash nocheck; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:213:22: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash warn_filter; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:373:31: note: in instantiation of template class 'ptr' requested here const ptr rblcon; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:386:15: note: in instantiation of template class 'ptr' requested here ptr mxl; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:454:28: note: in instantiation of template class 'ptr' requested here const ptr ptr_cache; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:473:21: note: in instantiation of template class 'ptr' requested here ptr get_mxl () const { return mxl; } ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:491:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref runprogcb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:524:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:533:14: note: in instantiation of template class 'ref>' requested here const cb_t cb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/list.h:129:27: note: in instantiation of template class 'callback' requested here void traverse (typename callback::ref cb) const { ^ ./asmtpd.h:539:32: note: in instantiation of template class 'tailq' requested here tailq reslist; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: ./asmtpd.h:571:1: warning: 'enqmsg' defined as a class here but previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] class enqmsg { ^ ./asmtpd.h:354:1: note: did you mean class here? struct enqmsg; ^~~~~~ class In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:617:9: note: in instantiation of template class 'callback>' requested here typedef callback >::ref vrfycb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ ./asmtpd.h:622:19: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here qhash table; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:694:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:696:3: note: in instantiation of template class 'ref>' requested here cb_t::ptr cb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:696:13: note: in instantiation of template class 'ptr>' requested here cb_t::ptr cb; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./asmtpd.h:713:20: note: in instantiation of template class 'ref, equals, &qhash_slot::link>>' requested here ref > loopcheck; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./asmtpd.h:762:20: note: in instantiation of template class 'ptr, equals, &qhash_slot::link>>' requested here ptr > loopcheck = NULL, int recdepth = 0); ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ./asmtpd.h:770:9: note: in instantiation of template class 'callback' requested here typedef callback::ref spfckcb_t; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./async_ssl.h:48:13: note: in instantiation of template class 'ptr' requested here ptr oldout; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async_ssl.h:86:22: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ starttls.C:50:3: warning: 'RSA_free' is deprecated [-Wdeprecated-declarations] RSA_free (ssl_tmpkey_key); ^ /usr/local/include/openssl/rsa.h:293:1: note: 'RSA_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:64:3: warning: 'RSA_generate_key_ex' is deprecated [-Wdeprecated-declarations] RSA_generate_key_ex (ssl_tmpkey_key, keylen, bne, NULL); ^ /usr/local/include/openssl/rsa.h:260:1: note: 'RSA_generate_key_ex' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:196:27: note: in instantiation of template class 'callback *>' requested here void traverse (typename callback::ref cb) { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ starttls.C:75:27: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here static qhash parmtab; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/ihash.h:204:27: note: in instantiation of template class 'callback &>' requested here void traverse (typename callback::ref cb) const { ^ ../libasync/qhash.h:63:12: note: in instantiation of template class 'ihash_core, &qhash_slot::link>' requested here : public ihash_core, kludge> { ^ starttls.C:75:27: note: in instantiation of template class 'qhash, equals, qhash_lookup_return, &qhash_slot::link>' requested here static qhash parmtab; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ starttls.C:82:10: warning: 'PEM_read_DHparams' is deprecated [-Wdeprecated-declarations] dh = PEM_read_DHparams(fp, NULL, NULL, NULL); ^ /usr/local/include/openssl/pem.h:469:21: note: 'PEM_read_DHparams' has been explicitly marked deprecated here DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:89:10: warning: 'DH_new' is deprecated [-Wdeprecated-declarations] dh = DH_new (); ^ /usr/local/include/openssl/dh.h:203:1: note: 'DH_new' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 DH *DH_new(void); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:90:5: warning: 'DH_generate_parameters_ex' is deprecated [-Wdeprecated-declarations] DH_generate_parameters_ex (dh, len, 2, NULL); ^ /usr/local/include/openssl/dh.h:216:1: note: 'DH_generate_parameters_ex' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int DH_generate_parameters_ex(DH *dh, int prime_len, ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:93:7: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free (dh); ^ /usr/local/include/openssl/dh.h:204:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:101:2: warning: 'PEM_write_DHparams' is deprecated [-Wdeprecated-declarations] PEM_write_DHparams (fp, dh); ^ /usr/local/include/openssl/pem.h:469:21: note: 'PEM_write_DHparams' has been explicitly marked deprecated here DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ starttls.C:209:3: warning: 'SSL_CTX_set_tmp_dh_callback' is deprecated [-Wdeprecated-declarations] SSL_CTX_set_tmp_dh_callback (ctx, ssl_dhparm); ^ /usr/local/include/openssl/ssl.h:2226:1: note: 'SSL_CTX_set_tmp_dh_callback' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ ./asmtpd.h:626:3: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here map_base () : loadno (0) {} ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref *>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ starttls.C:75:27: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here static qhash parmtab; ^ In file included from starttls.C:24: In file included from ./asmtpd.h:25: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/qhash.h:90:21: note: in instantiation of template class 'ref &>>' requested here core::traverse (wrap (this, &qhash::delslot)); ^ ../libasync/qhash.h:93:15: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::clear' requested here ~qhash () { clear (); } ^ starttls.C:75:27: note: in instantiation of member function 'qhash, equals, qhash_lookup_return, &qhash_slot::link>::~qhash' requested here static qhash parmtab; ^ 104 warnings generated. mv -f .deps/starttls.Tpo .deps/starttls.Po c++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -MT async_ssl.o -MD -MP -MF .deps/async_ssl.Tpo -c -o async_ssl.o async_ssl.C In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:29: In file included from ../libasync/vec.h:30: ../libasync/array.h:85:29: warning: 'array' defined as a class template here but previously declared as a struct template; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] template class array { ^ ../libasync/array.h:75:29: note: did you mean class here? template struct array; ^~~~~~ class In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:673:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/suio++.h:52:11: note: in instantiation of template class 'callback' requested here typedef callback::ref cb_t; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:674:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/suio++.h:57:10: note: in instantiation of template class 'ref>' requested here cb_t cb; ^ ../libasync/suio++.h:250:28: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_vuprintf (struct suio *, const char *, va_list); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:250:28: note: did you mean class here? extern void suio_vuprintf (struct suio *, const char *, va_list); ^~~~~~ class ../libasync/suio++.h:251:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] extern void suio_uprintf (struct suio *, const char *, ...) ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:251:27: note: did you mean class here? extern void suio_uprintf (struct suio *, const char *, ...) ^~~~~~ class ../libasync/suio++.h:268:27: warning: struct 'suio' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] char *suio_flatten (const struct suio *); ^ ../libasync/suio++.h:46:7: note: previous use is here class suio { ^ ../libasync/suio++.h:268:27: note: did you mean class here? char *suio_flatten (const struct suio *); ^~~~~~ class In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: ../libasync/str.h:178:1: warning: 'bssstr' defined as a struct here but previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] struct bssstr : public str { ^ ../libasync/str.h:91:10: note: did you mean struct here? friend class bssstr; ^~~~~ struct In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/str.h:273:19: note: in instantiation of template class 'ref' requested here const ref uio; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:39:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbi; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:40:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbs; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1186:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/amisc.h:41:9: note: in instantiation of template class 'callback' requested here typedef callback::ref cbb; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1187:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/amisc.h:104:16: note: in instantiation of template class 'ptr>' requested here cbv::ptr postforkcb = NULL, char *const *env = NULL); ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/async.h:39:21: note: in instantiation of template class 'ref>' requested here void chldcb (pid_t, cbi::ptr); ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2212:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:77:24: note: in instantiation of template class 'callback, int>' requested here void identptr (int fd, callback, int>::ref, ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:2213:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ ../libasync/callback.h:1699:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref > ref; ^ ../libasync/async.h:79:21: note: in instantiation of template class 'callback' requested here void ident (int fd, callback::ref, unsigned timeout = 15); ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: ../libasync/callback.h:1700:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr > ptr; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:45:9: note: in instantiation of template class 'ptr>' requested here rcb_t rcb; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:58:39: note: in instantiation of template class 'ref>' requested here { infn = &aios::rnone; rcb_t::ref cb = rcb; rcb = NULL; (*cb) (s, err); } ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:67:29: note: in instantiation of template class 'ptr>' requested here virtual void mkwcb (wcb_t cb) { if (fd >= 0) (*cb) (err); } ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ../libasync/aios.h:116:20: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ../libasync/aios.h:161:44: note: in instantiation of template class 'ptr' requested here aiosout (const aios_t::ptr &a) : strbuf (a->outb), s(a) { s->outstart (); } ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:482:11: warning: struct 'ref' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ref ref; ^ ./async_ssl.h:48:13: note: in instantiation of template class 'ptr' requested here ptr oldout; ^ In file included from async_ssl.C:24: In file included from ./async_ssl.h:28: In file included from ../libasync/async.h:28: In file included from ../libasync/amisc.h:29: In file included from ../libasync/err.h:28: In file included from ../libasync/str.h:29: In file included from ../libasync/suio++.h:30: In file included from ../libasync/callback.h:612: ../libasync/refcnt.h:420:11: warning: struct 'ptr' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] typedef struct ptr ptr; ^ ./async_ssl.h:86:22: note: in instantiation of template class 'ref' requested here static ref alloc (int fd, size_t rbsz = defrbufsize) ^ 28 warnings generated. mv -f .deps/async_ssl.Tpo .deps/async_ssl.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT synos.o -MD -MP -MF .deps/synos.Tpo -c -o synos.o synos.c mv -f .deps/synos.Tpo .deps/synos.Po /bin/sh ../libtool --tag=CXX --mode=link c++ -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o asmtpd addrparse.o asmtpd.o auth.o avif.o config.o enqmsg.o mxcheck.o netpath.o osguess.o quota.o rbl.o rcptcheck.o runprog.o smtpd.o spf.o synfp.o vrfy.o starttls.o async_ssl.o synos.o ../libasync/libasync.a -lpcap -L/usr/local/lib -lssl -lcrypto libtool: link: c++ -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o asmtpd addrparse.o asmtpd.o auth.o avif.o config.o enqmsg.o mxcheck.o netpath.o osguess.o quota.o rbl.o rcptcheck.o runprog.o smtpd.o spf.o synfp.o vrfy.o starttls.o async_ssl.o synos.o ../libasync/libasync.a -lpcap -L/usr/local/lib -lssl -lcrypto Making all in util cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT armor.o -MD -MP -MF .deps/armor.Tpo -c -o armor.o armor.c mv -f .deps/armor.Tpo .deps/armor.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT aes.o -MD -MP -MF .deps/aes.Tpo -c -o aes.o aes.c mv -f .deps/aes.Tpo .deps/aes.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT buf.o -MD -MP -MF .deps/buf.Tpo -c -o buf.o buf.c mv -f .deps/buf.Tpo .deps/buf.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT clock_gettime.o -MD -MP -MF .deps/clock_gettime.Tpo -c -o clock_gettime.o clock_gettime.c mv -f .deps/clock_gettime.Tpo .deps/clock_gettime.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT dbexp.o -MD -MP -MF .deps/dbexp.Tpo -c -o dbexp.o dbexp.c mv -f .deps/dbexp.Tpo .deps/dbexp.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT flock.o -MD -MP -MF .deps/flock.Tpo -c -o flock.o flock.c mv -f .deps/flock.Tpo .deps/flock.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT getopt_long.o -MD -MP -MF .deps/getopt_long.Tpo -c -o getopt_long.o getopt_long.c mv -f .deps/getopt_long.Tpo .deps/getopt_long.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT mdblock.o -MD -MP -MF .deps/mdblock.Tpo -c -o mdblock.o mdblock.c mv -f .deps/mdblock.Tpo .deps/mdblock.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT sha1.o -MD -MP -MF .deps/sha1.Tpo -c -o sha1.o sha1.c mv -f .deps/sha1.Tpo .deps/sha1.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT straux.o -MD -MP -MF .deps/straux.Tpo -c -o straux.o straux.c mv -f .deps/straux.Tpo .deps/straux.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT time.o -MD -MP -MF .deps/time.Tpo -c -o time.o time.c mv -f .deps/time.Tpo .deps/time.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT version.o -MD -MP -MF .deps/version.Tpo -c -o version.o version.c mv -f .deps/version.Tpo .deps/version.Po rm -f libavutil.a ar cru libavutil.a armor.o aes.o buf.o clock_gettime.o dbexp.o flock.o getopt_long.o mdblock.o sha1.o straux.o time.o version.o ranlib libavutil.a cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT aliascheck.o -MD -MP -MF .deps/aliascheck.Tpo -c -o aliascheck.o aliascheck.c mv -f .deps/aliascheck.Tpo .deps/aliascheck.Po cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -c ./aliascheck_dbm.c /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -static -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o aliascheck aliascheck.o aliascheck_dbm.o -L. -lavutil -L/usr/local/lib/db5 -ldb-5.3 libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o aliascheck aliascheck.o aliascheck_dbm.o -L. -lavutil -L/usr/local/lib/db5 -ldb-5.3 cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT dbutil.o -MD -MP -MF .deps/dbutil.Tpo -c -o dbutil.o dbutil.c mv -f .deps/dbutil.Tpo .deps/dbutil.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -static -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o dbutil dbutil.o -L. -lavutil -L/usr/local/lib/db5 -ldb-5.3 libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o dbutil dbutil.o -L. -lavutil -L/usr/local/lib/db5 -ldb-5.3 cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT edinplace.o -MD -MP -MF .deps/edinplace.Tpo -c -o edinplace.o edinplace.c mv -f .deps/edinplace.Tpo .deps/edinplace.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o edinplace edinplace.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o edinplace edinplace.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT escape.o -MD -MP -MF .deps/escape.Tpo -c -o escape.o escape.c mv -f .deps/escape.Tpo .deps/escape.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o escape escape.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o escape escape.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT synos.o -MD -MP -MF .deps/synos.Tpo -c -o synos.o synos.c mv -f .deps/synos.Tpo .deps/synos.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o synos synos.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o synos synos.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT macutil.o -MD -MP -MF .deps/macutil.Tpo -c -o macutil.o macutil.c mv -f .deps/macutil.Tpo .deps/macutil.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o macutil macutil.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o macutil macutil.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT match.o -MD -MP -MF .deps/match.Tpo -c -o match.o match.c mv -f .deps/match.Tpo .deps/match.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o match match.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o match match.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT smtpdcheck.o -MD -MP -MF .deps/smtpdcheck.Tpo -c -o smtpdcheck.o smtpdcheck.c mv -f .deps/smtpdcheck.Tpo .deps/smtpdcheck.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o smtpdcheck smtpdcheck.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o smtpdcheck smtpdcheck.o -L. -lavutil cc -DHAVE_CONFIG_H -I. -I.. -DAVUTIL_MAIN=1 -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT omacutil.o -MD -MP -MF .deps/omacutil.Tpo -c -o omacutil.o omacutil.c mv -f .deps/omacutil.Tpo .deps/omacutil.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o omacutil omacutil.o -L. -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o omacutil omacutil.o -L. -lavutil Making all in local cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT deliver.o -MD -MP -MF .deps/deliver.Tpo -c -o deliver.o deliver.c mv -f .deps/deliver.Tpo .deps/deliver.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT copymsg.o -MD -MP -MF .deps/copymsg.Tpo -c -o copymsg.o copymsg.c mv -f .deps/copymsg.Tpo .deps/copymsg.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT lock.o -MD -MP -MF .deps/lock.Tpo -c -o lock.o lock.c mv -f .deps/lock.Tpo .deps/lock.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT mailbox.o -MD -MP -MF .deps/mailbox.Tpo -c -o mailbox.o mailbox.c mailbox.c:71:26: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int] if (strncmp ("From " + 5 - size, buf, size)) ~~~~~~~~^~~ mailbox.c:71:26: note: use array indexing to silence this warning if (strncmp ("From " + 5 - size, buf, size)) ^ & [ ] 1 warning generated. mv -f .deps/mailbox.Tpo .deps/mailbox.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o deliver deliver.o copymsg.o lock.o mailbox.o -L../util -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o deliver deliver.o copymsg.o lock.o mailbox.o -L../util -lavutil cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT dotlock.o -MD -MP -MF .deps/dotlock.Tpo -c -o dotlock.o dotlock.c mv -f .deps/dotlock.Tpo .deps/dotlock.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o dotlock dotlock.o lock.o -L../util -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o dotlock dotlock.o lock.o -L../util -lavutil cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT mailexec.o -MD -MP -MF .deps/mailexec.Tpo -c -o mailexec.o mailexec.c mailexec.c:101:64: warning: variable 'err' is uninitialized when used here [-Wuninitialized] fprintf (stderr, "%s: fchdir: %s\n", progname, strerror (err)); ^~~ mailexec.c:63:10: note: initialize the variable 'err' to silence this warning int err; ^ = 0 1 warning generated. mv -f .deps/mailexec.Tpo .deps/mailexec.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o mailexec mailexec.o lock.o -L../util -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o mailexec mailexec.o lock.o -L../util -lavutil cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT local.o -MD -MP -MF .deps/local.Tpo -c -o local.o local.c mv -f .deps/local.Tpo .deps/local.Po cc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/pcap -I/usr/local/include -I/usr/local/include/db5 -DETCDIR=\"/usr/local/etc/avenger\" -DLIBEXEC=\"/usr/local/libexec\" -DBINDIR=\"/usr/local/bin\" -DEXECDIR=LIBEXEC -DDATADIR=\"/usr/local/share\" -DPIDDIR=\"/var/run\" -I../libasync -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -MT child.o -MD -MP -MF .deps/child.Tpo -c -o child.o child.c mv -f .deps/child.Tpo .deps/child.Po /bin/sh ../libtool --tag=CC --mode=link cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath,/usr/local/lib -fstack-protector-strong -o avenger.local local.o child.o copymsg.o lock.o mailbox.o -L../util -lavutil libtool: link: cc -O2 -pipe -fcommon -fstack-protector-strong -fno-strict-aliasing -Wall -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o avenger.local local.o child.o copymsg.o lock.o mailbox.o -L../util -lavutil Making all in doc cd . && CONFIG_FILES=avenger CONFIG_HEADERS= /bin/sh ./config.status config.status: creating avenger config.status: executing depfiles commands config.status: executing libtool commands chmod +x avenger =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> avenger-0.8.5_1 depends on file: /usr/local/lib/libcrypto.so.12 - found =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Staging for avenger-0.8.5_1 ===> Generating temporary packing list ===> Creating groups. ===> Creating users Making install in libasync Making install in asmtpd /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/sbin' /bin/sh ../libtool --mode=install install -s -m 555 asmtpd '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/sbin' libtool: install: install -m 555 -s asmtpd /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/sbin/asmtpd Making install in util /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin' /bin/sh ../libtool --mode=install install -s -m 555 aliascheck dbutil edinplace escape synos macutil match smtpdcheck '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin' libtool: install: install -m 555 -s aliascheck /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/aliascheck libtool: install: install -m 555 -s dbutil /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/dbutil libtool: install: install -m 555 -s edinplace /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/edinplace libtool: install: install -m 555 -s escape /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/escape libtool: install: install -m 555 -s synos /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/synos libtool: install: install -m 555 -s macutil /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/macutil libtool: install: install -m 555 -s match /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/match libtool: install: install -m 555 -s smtpdcheck /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/smtpdcheck /usr/bin/make install-exec-hook rm -f /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/sendmac ln /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/macutil /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/sendmac Making install in local /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin' /bin/sh ../libtool --mode=install install -s -m 555 deliver dotlock mailexec '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin' libtool: install: install -m 555 -s deliver /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/deliver libtool: install: install -m 555 -s dotlock /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/dotlock libtool: install: install -m 555 -s mailexec /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/bin/mailexec /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/libexec' /bin/sh ../libtool --mode=install install -s -m 555 avenger.local '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/libexec' libtool: install: install -m 555 -s avenger.local /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/libexec/avenger.local Making install in doc /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man1' install -m 0644 aliascheck.1 avenger.1 dbutil.1 deliver.1 dotlock.1 edinplace.1 escape.1 macutil.1 mailexec.1 match.1 smtpdcheck.1 synos.1 '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man1' /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man5' install -m 0644 asmtpd.conf.5 '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man5' /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man8' install -m 0644 asmtpd.8 avenger.local.8 '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/man/man8' /bin/mkdir -p '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/libexec' install -m 555 avenger '/wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/libexec' install -m 0644 /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/INSTALL /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/INSTALL.html /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/README /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/NEWS /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/doc/avenger install -m 0644 /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/etc/asmtpd.conf /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/etc/avenger/asmtpd.conf.sample install -m 0644 /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/etc/unknown /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/etc/avenger/unknown.sample install -m 0644 /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/etc/pf.os /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share (cd /wrkdirs/usr/ports/mail/avenger/work/avenger-0.8.5/etc ; install -m 0644 smtp-filter.pf avsendmail.m4 /wrkdirs/usr/ports/mail/avenger/work/stage/usr/local/share/avenger) ====> Compressing man pages (compress-man) =========================================================================== =================================================== ===== env: 'PKG_NOTES=build_timestamp ports_top_git_hash ports_top_checkout_unclean port_git_hash port_checkout_unclean built_by' 'PKG_NOTE_build_timestamp=2024-04-04T03:15:08+0000' 'PKG_NOTE_ports_top_git_hash=c2c35d895e' 'PKG_NOTE_ports_top_checkout_unclean=yes' 'PKG_NOTE_port_git_hash=19bcd12fa4' 'PKG_NOTE_port_checkout_unclean=no' 'PKG_NOTE_built_by=poudriere-git-3.4.99.20240122_1' NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building packages for avenger-0.8.5_1 ===> Building avenger-0.8.5_1 =========================================================================== =>> Cleaning up wrkdir ===> Cleaning for avenger-0.8.5_1 build of mail/avenger | avenger-0.8.5_1 ended at Thu Apr 4 04:16:33 BST 2024 build time: 00:01:26