Cook: par2 0.4 ================================================================================ QA: checking package receipt... Extracting source archive "par2cmdline-0.4.tar.gz" Executing: compile_rules CFLAGS : -march=i486 -Os -pipe -mindirect-branch=thunk CXXLAGS : -march=i486 -Os -pipe -mindirect-branch=thunk CPPFLAGS : -D_GLIBCXX_USE_C99_MATH=1 LDFLAGS : -Wl,-Os,--as-needed Applying patch par2cmdline-0.4-gcc4.patch patching file reedsolomon.cpp configure: loading site script /etc/slitaz/cook.site checking build system type... i486-slitaz-linux-gnu checking host system type... i486-slitaz-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for i486-slitaz-linux-g++... i486-slitaz-linux-g++ checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether i486-slitaz-linux-g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of i486-slitaz-linux-g++... gcc3 checking for a BSD-compatible install... /usr/bin/install -c checking for i486-slitaz-linux-gcc... i486-slitaz-linux-gcc checking whether we are using the GNU C compiler... yes checking whether i486-slitaz-linux-gcc accepts -g... yes checking for i486-slitaz-linux-gcc option to accept ANSI C... none needed checking dependency style of i486-slitaz-linux-gcc... gcc3 checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking how to run the C preprocessor... i486-slitaz-linux-gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for ANSI C header files... (cached) yes checking stdio.h usability... yes checking stdio.h presence... yes checking for stdio.h... yes checking endian.h usability... yes checking endian.h presence... yes checking for endian.h... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking for size_t... yes checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking for inline... inline checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking for _LARGE_FILES value needed for large files... no checking for _LARGEFILE_SOURCE value needed for large files... no checking for fseeko... yes checking for working memcmp... yes checking for stricmp... no checking for strcasecmp... yes checking for strchr... yes checking for memcpy... yes checking for getopt... yes checking for getopt_long... yes configure: creating ./config.status config.status: creating stamp-h config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands make all-am make[1]: Entering directory '/home/slitaz/wok/par2/source/par2-0.4' if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2cmdline.o -MD -MP -MF ".deps/par2cmdline.Tpo" -c -o par2cmdline.o par2cmdline.cpp; \ then mv -f ".deps/par2cmdline.Tpo" ".deps/par2cmdline.Po"; else rm -f ".deps/par2cmdline.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT commandline.o -MD -MP -MF ".deps/commandline.Tpo" -c -o commandline.o commandline.cpp; \ then mv -f ".deps/commandline.Tpo" ".deps/commandline.Po"; else rm -f ".deps/commandline.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT crc.o -MD -MP -MF ".deps/crc.Tpo" -c -o crc.o crc.cpp; \ then mv -f ".deps/crc.Tpo" ".deps/crc.Po"; else rm -f ".deps/crc.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT creatorpacket.o -MD -MP -MF ".deps/creatorpacket.Tpo" -c -o creatorpacket.o creatorpacket.cpp; \ then mv -f ".deps/creatorpacket.Tpo" ".deps/creatorpacket.Po"; else rm -f ".deps/creatorpacket.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT criticalpacket.o -MD -MP -MF ".deps/criticalpacket.Tpo" -c -o criticalpacket.o criticalpacket.cpp; \ then mv -f ".deps/criticalpacket.Tpo" ".deps/criticalpacket.Po"; else rm -f ".deps/criticalpacket.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT datablock.o -MD -MP -MF ".deps/datablock.Tpo" -c -o datablock.o datablock.cpp; \ then mv -f ".deps/datablock.Tpo" ".deps/datablock.Po"; else rm -f ".deps/datablock.Tpo"; exit 1; fi In file included from par2cmdline.h:265, from commandline.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from par2cmdline.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from commandline.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from commandline.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2cmdline.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2cmdline.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from commandline.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from par2cmdline.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:265, from creatorpacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ In file included from par2cmdline.h:265, from crc.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from criticalpacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from datablock.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from crc.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from creatorpacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from crc.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from creatorpacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from crc.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from creatorpacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from criticalpacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from criticalpacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from datablock.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from datablock.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT descriptionpacket.o -MD -MP -MF ".deps/descriptionpacket.Tpo" -c -o descriptionpacket.o descriptionpacket.cpp; \ then mv -f ".deps/descriptionpacket.Tpo" ".deps/descriptionpacket.Po"; else rm -f ".deps/descriptionpacket.Tpo"; exit 1; fi In file included from par2cmdline.h:289, from criticalpacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from datablock.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT diskfile.o -MD -MP -MF ".deps/diskfile.Tpo" -c -o diskfile.o diskfile.cpp; \ then mv -f ".deps/diskfile.Tpo" ".deps/diskfile.Po"; else rm -f ".deps/diskfile.Tpo"; exit 1; fi In file included from /usr/include/c++/8.2.0/cassert:44, from par2cmdline.h:250, from criticalpacket.cpp:20: criticalpacket.cpp: In member function 'bool CriticalPacket::WritePacket(DiskFile&, u64) const': criticalpacket.cpp:32:20: warning: the compiler can assume that the address of 'diskfile' will never be NULL [-Waddress] assert(&diskfile != 0 && packetdata != 0 && packetlength != 0); ~~~~~~~~~~^~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT filechecksummer.o -MD -MP -MF ".deps/filechecksummer.Tpo" -c -o filechecksummer.o filechecksummer.cpp; \ then mv -f ".deps/filechecksummer.Tpo" ".deps/filechecksummer.Po"; else rm -f ".deps/filechecksummer.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT galois.o -MD -MP -MF ".deps/galois.Tpo" -c -o galois.o galois.cpp; \ then mv -f ".deps/galois.Tpo" ".deps/galois.Po"; else rm -f ".deps/galois.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT mainpacket.o -MD -MP -MF ".deps/mainpacket.Tpo" -c -o mainpacket.o mainpacket.cpp; \ then mv -f ".deps/mainpacket.Tpo" ".deps/mainpacket.Po"; else rm -f ".deps/mainpacket.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT md5.o -MD -MP -MF ".deps/md5.Tpo" -c -o md5.o md5.cpp; \ then mv -f ".deps/md5.Tpo" ".deps/md5.Po"; else rm -f ".deps/md5.Tpo"; exit 1; fi In file included from par2cmdline.h:265, from mainpacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from descriptionpacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ In file included from par2cmdline.h:284, from mainpacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from mainpacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from diskfile.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:289, from mainpacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from descriptionpacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from descriptionpacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from diskfile.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from diskfile.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from filechecksummer.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:289, from descriptionpacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from diskfile.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from filechecksummer.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from filechecksummer.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from md5.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par1fileformat.o -MD -MP -MF ".deps/par1fileformat.Tpo" -c -o par1fileformat.o par1fileformat.cpp; \ then mv -f ".deps/par1fileformat.Tpo" ".deps/par1fileformat.Po"; else rm -f ".deps/par1fileformat.Tpo"; exit 1; fi In file included from par2cmdline.h:284, from md5.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from md5.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from galois.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:289, from filechecksummer.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par1repairer.o -MD -MP -MF ".deps/par1repairer.Tpo" -c -o par1repairer.o par1repairer.cpp; \ then mv -f ".deps/par1repairer.Tpo" ".deps/par1repairer.Po"; else rm -f ".deps/par1repairer.Tpo"; exit 1; fi In file included from par2cmdline.h:289, from md5.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from galois.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from galois.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from galois.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par1repairersourcefile.o -MD -MP -MF ".deps/par1repairersourcefile.Tpo" -c -o par1repairersourcefile.o par1repairersourcefile.cpp; \ then mv -f ".deps/par1repairersourcefile.Tpo" ".deps/par1repairersourcefile.Po"; else rm -f ".deps/par1repairersourcefile.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2creator.o -MD -MP -MF ".deps/par2creator.Tpo" -c -o par2creator.o par2creator.cpp; \ then mv -f ".deps/par2creator.Tpo" ".deps/par2creator.Po"; else rm -f ".deps/par2creator.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2creatorsourcefile.o -MD -MP -MF ".deps/par2creatorsourcefile.Tpo" -c -o par2creatorsourcefile.o par2creatorsourcefile.cpp; \ then mv -f ".deps/par2creatorsourcefile.Tpo" ".deps/par2creatorsourcefile.Po"; else rm -f ".deps/par2creatorsourcefile.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2fileformat.o -MD -MP -MF ".deps/par2fileformat.Tpo" -c -o par2fileformat.o par2fileformat.cpp; \ then mv -f ".deps/par2fileformat.Tpo" ".deps/par2fileformat.Po"; else rm -f ".deps/par2fileformat.Tpo"; exit 1; fi In file included from par2cmdline.h:265, from par1fileformat.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from par1repairersourcefile.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from par1fileformat.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par1fileformat.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par1repairersourcefile.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par1repairersourcefile.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from par2creator.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:289, from par1repairersourcefile.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from par1fileformat.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from par2creator.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2creator.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:265, from par1repairer.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:289, from par2creator.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:284, from par1repairer.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par1repairer.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2repairer.o -MD -MP -MF ".deps/par2repairer.Tpo" -c -o par2repairer.o par2repairer.cpp; \ then mv -f ".deps/par2repairer.Tpo" ".deps/par2repairer.Po"; else rm -f ".deps/par2repairer.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT par2repairersourcefile.o -MD -MP -MF ".deps/par2repairersourcefile.Tpo" -c -o par2repairersourcefile.o par2repairersourcefile.cpp; \ then mv -f ".deps/par2repairersourcefile.Tpo" ".deps/par2repairersourcefile.Po"; else rm -f ".deps/par2repairersourcefile.Tpo"; exit 1; fi In file included from par2cmdline.h:289, from par1repairer.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:267, from par2creator.cpp:20: reedsolomon.h: In instantiation of 'bool ReedSolomon::Compute(CommandLine::NoiseLevel) [with g = Galois<16, 69643, short unsigned int>]': par2creator.cpp:863:29: required from here reedsolomon.h:227:9: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(leftmatrix, 0, outcount * incount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par2creator.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} declared here class Galois ^~~~~~ In file included from par2cmdline.h:267, from par2creator.cpp:20: reedsolomon.h:235:11: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(rightmatrix, 0, outcount *outcount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par2creator.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} declared here class Galois ^~~~~~ par1repairer.cpp: In member function 'bool Par1Repairer::LoadRecoveryFile(std::__cxx11::string)': par1repairer.cpp:327:87: warning: suggest parentheses around '&&' within '||' [-Wparentheses] (fileheader.datasize && (fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize || fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ par1repairer.cpp: In member function 'bool Par1Repairer::LoadOtherRecoveryFiles(std::__cxx11::string)': par1repairer.cpp:521:48: warning: suggest parentheses around '&&' within '||' [-Wparentheses] (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ par1repairer.cpp: In member function 'bool Par1Repairer::LoadExtraRecoveryFiles(const std::__cxx11::list&)': par1repairer.cpp:552:48: warning: suggest parentheses around '&&' within '||' [-Wparentheses] (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ par1repairer.cpp: In member function 'bool Par1Repairer::VerifyExtraFiles(const std::__cxx11::list&)': par1repairer.cpp:655:48: warning: suggest parentheses around '&&' within '||' [-Wparentheses] (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:267, from par1repairer.cpp:20: reedsolomon.h: In instantiation of 'bool ReedSolomon::Compute(CommandLine::NoiseLevel) [with g = Galois<8, 285, unsigned char>]': par1repairer.cpp:1205:39: required from here reedsolomon.h:227:9: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<8, 285, unsigned char>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(leftmatrix, 0, outcount * incount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par1repairer.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<8, 285, unsigned char>'} declared here class Galois ^~~~~~ In file included from par2cmdline.h:267, from par1repairer.cpp:20: reedsolomon.h:235:11: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<8, 285, unsigned char>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(rightmatrix, 0, outcount *outcount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par1repairer.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<8, 285, unsigned char>'} declared here class Galois ^~~~~~ In file included from par2cmdline.h:265, from par2fileformat.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from par2creatorsourcefile.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from par2fileformat.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2fileformat.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2creatorsourcefile.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2creatorsourcefile.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from par2fileformat.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from par2creatorsourcefile.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT recoverypacket.o -MD -MP -MF ".deps/recoverypacket.Tpo" -c -o recoverypacket.o recoverypacket.cpp; \ then mv -f ".deps/recoverypacket.Tpo" ".deps/recoverypacket.Po"; else rm -f ".deps/recoverypacket.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT reedsolomon.o -MD -MP -MF ".deps/reedsolomon.Tpo" -c -o reedsolomon.o reedsolomon.cpp; \ then mv -f ".deps/reedsolomon.Tpo" ".deps/reedsolomon.Po"; else rm -f ".deps/reedsolomon.Tpo"; exit 1; fi In file included from par2cmdline.h:265, from par2repairer.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from par2repairersourcefile.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from recoverypacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from recoverypacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from recoverypacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2repairer.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2repairer.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2repairersourcefile.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from par2repairersourcefile.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from recoverypacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from par2repairer.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ In file included from par2cmdline.h:289, from par2repairersourcefile.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT verificationhashtable.o -MD -MP -MF ".deps/verificationhashtable.Tpo" -c -o verificationhashtable.o verificationhashtable.cpp; \ then mv -f ".deps/verificationhashtable.Tpo" ".deps/verificationhashtable.Po"; else rm -f ".deps/verificationhashtable.Tpo"; exit 1; fi if i486-slitaz-linux-g++ -DHAVE_CONFIG_H -I. -I. -I. -D_GLIBCXX_USE_C99_MATH=1 -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -MT verificationpacket.o -MD -MP -MF ".deps/verificationpacket.Tpo" -c -o verificationpacket.o verificationpacket.cpp; \ then mv -f ".deps/verificationpacket.Tpo" ".deps/verificationpacket.Po"; else rm -f ".deps/verificationpacket.Tpo"; exit 1; fi par2repairer.cpp: In member function 'bool Par2Repairer::LoadPacketsFromFile(std::__cxx11::string)': par2repairer.cpp:361:52: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct PACKET_HEADER' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] memcpy(&header, current, sizeof(header)); ^ In file included from par2cmdline.h:265, from par2repairer.cpp:20: par2fileformat.h:62:8: note: 'struct PACKET_HEADER' declared here struct PACKET_HEADER ^~~~~~~~~~~~~ In file included from par2cmdline.h:267, from par2repairer.cpp:20: reedsolomon.h: In instantiation of 'bool ReedSolomon::Compute(CommandLine::NoiseLevel) [with g = Galois<16, 69643, short unsigned int>]': par2repairer.cpp:2089:39: required from here reedsolomon.h:227:9: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(leftmatrix, 0, outcount * incount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par2repairer.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} declared here class Galois ^~~~~~ In file included from par2cmdline.h:267, from par2repairer.cpp:20: reedsolomon.h:235:11: warning: 'void* memset(void*, int, size_t)' clearing an object of type 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} with no trivial copy-assignment; use assignment or value-initialization instead [-Wclass-memaccess] memset(rightmatrix, 0, outcount *outcount * sizeof(G)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:262, from par2repairer.cpp:20: galois.h:57:7: note: 'ReedSolomon >::G' {aka 'class Galois<16, 69643, short unsigned int>'} declared here class Galois ^~~~~~ In file included from par2cmdline.h:265, from reedsolomon.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from reedsolomon.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from reedsolomon.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from reedsolomon.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:265, from verificationhashtable.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:265, from verificationpacket.cpp:20: par2fileformat.h:67:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::hash' MD5Hash hash; // Hash of entire packet excepting the first 3 fields ^~~~ par2fileformat.h:68:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PACKET_HEADER::setid' MD5Hash setid; // Normally computed as the Hash of body of "Main Packet" ^~~~~ par2fileformat.h:79:18: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONENTRY::hash' MD5Hash hash; ^~~~ par2fileformat.h:84:25: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEVERIFICATIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:86:25: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEVERIFICATIONPACKET::fileid' MD5Hash fileid; // MD5hash of file_hash_16k, file_length, file_name ^~~~~~ par2fileformat.h:87:33: warning: ignoring packed attribute because of unpacked non-POD field 'FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries []' FILEVERIFICATIONENTRY entries[]; ^ par2fileformat.h:99:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER FILEDESCRIPTIONPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:101:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::fileid' MD5Hash fileid; // MD5hash of [hash16k, length, name] ^~~~~~ par2fileformat.h:102:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hashfull' MD5Hash hashfull; // MD5 Hash of the whole file ^~~~~~~~ par2fileformat.h:103:20: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash FILEDESCRIPTIONPACKET::hash16k' MD5Hash hash16k; // MD5 Hash of the first 16k of the file ^~~~~~~ par2fileformat.h:127:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER MAINPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:131:28: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash MAINPACKET::fileid [0]' MD5Hash fileid[0]; ^ par2fileformat.h:141:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER CREATORPACKET::header' PACKET_HEADER header; ^~~~~~ par2fileformat.h:151:20: warning: ignoring packed attribute because of unpacked non-POD field 'PACKET_HEADER RECOVERYBLOCKPACKET::header' PACKET_HEADER header; ^~~~~~ In file included from par2cmdline.h:284, from verificationhashtable.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from verificationhashtable.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from verificationpacket.cpp:20: verificationhashtable.h: In member function 'bool VerificationHashEntry::operator<(const VerificationHashEntry&) const': verificationhashtable.h:69:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc < r.crc || crc == r.crc && hash < r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'bool VerificationHashEntry::operator>(const VerificationHashEntry&) const': verificationhashtable.h:73:40: warning: suggest parentheses around '&&' within '||' [-Wparentheses] return crc > r.crc || crc == r.crc && hash > r.hash; ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ verificationhashtable.h: In static member function 'static const VerificationHashEntry* VerificationHashEntry::Search(const VerificationHashEntry*, const MD5Hash&)': verificationhashtable.h:186:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (entry->crc < crc || entry->crc == crc && entry->hash < hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:190:52: warning: suggest parentheses around '&&' within '||' [-Wparentheses] else if (entry->crc > crc || entry->crc == crc && entry->hash > hash) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h: In member function 'const VerificationHashEntry* VerificationHashTable::FindMatch(const VerificationHashEntry*, const Par2RepairerSourceFile*, FileCheckSummer&, bool&) const': verificationhashtable.h:405:54: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ verificationhashtable.h:412:56: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:284, from verificationpacket.cpp:20: verificationhashtable.h:429:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses] checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength() ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from par2cmdline.h:289, from verificationhashtable.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ In file included from par2cmdline.h:289, from verificationpacket.cpp:20: par1fileformat.h: At global scope: par1fileformat.h:41:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::controlhash' MD5Hash controlhash; ^~~~~~~~~~~ par1fileformat.h:42:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEHEADER::sethash' MD5Hash sethash; ^~~~~~~ par1fileformat.h:56:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hashfull' MD5Hash hashfull; ^~~~~~~~ par1fileformat.h:57:15: warning: ignoring packed attribute because of unpacked non-POD field 'MD5Hash PAR1FILEENTRY::hash16k' MD5Hash hash16k; ^~~~~~~ i486-slitaz-linux-g++ -Wall -march=i486 -Os -pipe -mindirect-branch=thunk -Wl,-Os,--as-needed -o par2 par2cmdline.o commandline.o crc.o creatorpacket.o criticalpacket.o datablock.o descriptionpacket.o diskfile.o filechecksummer.o galois.o mainpacket.o md5.o par1fileformat.o par1repairer.o par1repairersourcefile.o par2creator.o par2creatorsourcefile.o par2fileformat.o par2repairer.o par2repairersourcefile.o recoverypacket.o reedsolomon.o verificationhashtable.o verificationpacket.o -lstdc++ make[1]: Leaving directory '/home/slitaz/wok/par2/source/par2-0.4' make[1]: Entering directory '/home/slitaz/wok/par2/source/par2-0.4' make[1]: Nothing to be done for 'install-data-am'. test -z "/usr/bin" || /bin/bash ./mkinstalldirs "/home/slitaz/wok/par2/install/usr/bin" mkdir /home/slitaz/wok/par2/install mkdir /home/slitaz/wok/par2/install/usr mkdir /home/slitaz/wok/par2/install/usr/bin /usr/bin/install -c 'par2' '/home/slitaz/wok/par2/install/usr/bin/par2' make install-exec-hook make[2]: Entering directory '/home/slitaz/wok/par2/source/par2-0.4' ln -f /home/slitaz/wok/par2/install/usr/bin/par2 /home/slitaz/wok/par2/install/usr/bin/par2create ln -f /home/slitaz/wok/par2/install/usr/bin/par2 /home/slitaz/wok/par2/install/usr/bin/par2verify ln -f /home/slitaz/wok/par2/install/usr/bin/par2 /home/slitaz/wok/par2/install/usr/bin/par2repair make[2]: Leaving directory '/home/slitaz/wok/par2/source/par2-0.4' make[1]: Leaving directory '/home/slitaz/wok/par2/source/par2-0.4' ================================================================================ Executing strip on all files... Done Time: 0.80s. Size: 670576 B -> 513648 B. Save: 153 KB. ================================================================================ Pack: par2 0.4 ================================================================================ Executing: genpkg_rules Copying "receipt"... Done Determining package architecture... i486 Creating the list of files... Done Creating md5sum of files... Done Compressing the FS... Done Creating full cpio archive... Done QA: checking for empty package... Done Removing old package "par2-0.4-i486.tazpkg" Done The release checksum has changed. ================================================================================ Package "par2-0.4-i486.tazpkg" created Post-check ================================================================================ Checking build... Done Checking 'any' arch... Done Checking libtool in source/par2-0.4... Done Checking site script in source/par2-0.4... Done Checking ownership in install... Done Checking permissions in install... Done Checking broken symlinks in install... Done Querying Repology... Done Updating activity log... Done ================================================================================ Summary for: par2 0.4 ================================================================================ Src file : par2cmdline-0.4.tar.gz Src size : 236.0K Source dir : 2.1M Produced : 140.0K Cook time : 23s Cook date : 2020-07-21 00:11 Target arch : i486 -------------------------------------------------------------------------------- # : Packed : Compressed : Files : Package name -------------------------------------------------------------------------------- 1 : 156.0K : 52.3K : 4 : par2-0.4-i486.tazpkg ================================================================================