[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Help needed to fix gcc 4.7 bug in jellyfish package



Hi,

I tried to fix the problem in the jellyfish package but the general
hints given did not helped me really.  Any more precise help to fix
this problem:

parse_dna.cc:97:3: error: narrowing conversion of '-3' from 'int' to 'const uint_t {aka const long unsigned int}' inside { } is ill-formed in C++11 [-Werror=narrowing]

My first idea was to do

--- jellyfish.orig/jellyfish/parse_dna.cc
+++ jellyfish/jellyfish/parse_dna.cc
@@ -57,7 +57,7 @@
     }
   }

-  const uint_t parse_dna::codes[256] = {
+  const int parse_dna::codes[256] = {
     -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -3, -3, -3, -3, -3,
     -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
     -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -1, -3, -3,
--- jellyfish.orig/jellyfish/parse_dna.hpp
+++ jellyfish/jellyfish/parse_dna.hpp
@@ -55,7 +55,7 @@
     static uint64_t mer_string_to_binary(const char *in, uint_t klen) {
       uint64_t res = 0;
       for(uint_t i = 0; i < klen; i++) {
-        const uint_t c = parse_dna::codes[(uint_t)*in++];
+        const int c = parse_dna::codes[(int)*in++];
         if(c & CODE_NOT_DNA)
           return 0;
         res = (res << 2) | c;


because it makes no sense to initialise uint with negative numbers but
this did not changed the error message which sounds totally strange to
me.

Kind regards

        Andreas.

-- 
http://fam-tille.de


Reply to: