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

2018-09-03 Thread Gert Wollny
Am Montag, den 03.09.2018, 09:18 +0200 schrieb Andreas Tille:
> Hi,
> 
> I'm trying to build the latest version of jellyfish which I pushed to
> Salsa[1].  Unfortunately I'm running into

You can just catch by reference 

  catch(MergeError& e)

This is the better approach anyway: 
https://blog.knatten.org/2010/04/02/always-catch-exceptions-by-referenc
e/

best, 
Gert 



C++ help needed for yellyfish: "error: catching polymorphic type"

2018-09-03 Thread Andreas Tille
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::double_size(bool) [with Key = 
jellyfish::mer_dna_ns::mer_base_static; 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::handle_full_ary() [with Key = 
jellyfish::mer_dna_ns::mer_base_static; 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::update_add(const Key&, uint64_t, Key&) [with Key = 
jellyfish::mer_dna_ns::mer_base_static; 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::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, long unsigned int, atomic::gcc, 
jellyfish::large_hash::unbounded_array, 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