[Debian-med-packaging] C++ help needed for yellyfish: "error: catching polymorphic type"

Andreas Tille andreas at an3as.eu
Mon Sep 3 08:18:54 BST 2018


Hi,

I'm trying to build the latest version of jellyfish which I pushed to
Salsa[1].  Unfortunately I'm running into


g++ -DHAVE_CONFIG_H -I.  -Wall -Wnon-virtual-dtor -I. -I./include  -Wdate-time -D_FORTIFY_SOURCE=2   -Werror -std=c++11 -g -O2 -fdebug-prefix-map=/build/jellyfish-2.2.10=. -fstack-protector-strong -Wformat -Werror=format-security -c -o sub_commands/count_main.o sub_commands/count_main.cc
sub_commands/count_main.cc: In function 'int count_main(int, char**)':
sub_commands/count_main.cc:363:28: error: catching polymorphic type 'class MergeError' by value [-Werror=catch-value=]
         } catch(MergeError e) {
                            ^
In file included from sub_commands/count_main.cc:38:
./include/jellyfish/hash_counter.hpp: In instantiation of 'bool jellyfish::cooperative::hash_counter<Key, word, atomic_t, mem_block_t>::double_size(bool) [with Key = jellyfish::mer_dna_ns::mer_base_static<long unsigned int, 0>; word = long unsigned int; atomic_t = atomic::gcc; mem_block_t = allocators::mmap]':
./include/jellyfish/hash_counter.hpp:189:28:   required from 'bool jellyfish::cooperative::hash_counter<Key, word, atomic_t, mem_block_t>::handle_full_ary() [with Key = jellyfish::mer_dna_ns::mer_base_static<long unsigned int, 0>; word = long unsigned int; atomic_t = atomic::gcc; mem_block_t = allocators::mmap]'
./include/jellyfish/hash_counter.hpp:167:7:   required from 'bool jellyfish::cooperative::hash_counter<Key, word, atomic_t, mem_block_t>::update_add(const Key&, uint64_t, Key&) [with Key = jellyfish::mer_dna_ns::mer_base_static<long unsigned int, 0>; word = long unsigned int; atomic_t = atomic::gcc; mem_block_t = allocators::mmap; uint64_t = long unsigned int]'
sub_commands/count_main.cc:176:11:   required from 'void mer_counter_base<MerIteratorType, ParserType>::start(int) [with MerIteratorType = mer_qual_iterator; ParserType = sequence_qual_parser]'
sub_commands/count_main.cc:151:16:   required from here
./include/jellyfish/hash_counter.hpp:216:9: error: catching polymorphic type 'class jellyfish::large_hash::array_base<jellyfish::mer_dna_ns::mer_base_static<long unsigned int, 0>, long unsigned int, atomic::gcc, jellyfish::large_hash::unbounded_array<jellyfish::mer_dna_ns::mer_base_static<long unsigned int, 0>, long unsigned int, atomic::gcc, allocators::mmap> >::ErrorAllocation' by value [-Werror=catch-value=]
       } catch(typename array::ErrorAllocation e) {
         ^~~~~
cc1plus: all warnings being treated as errors


My weak attempt to ignore this for the moment via 

   export DEB_CFLAGS_MAINT_APPEND = -Wno-error=catch-value

in d/rules failed.  Any better hint, how to deal with this?

Kind regards

       Andreas.


[1] https://salsa.debian.org/med-team/jellyfish

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list