Hello,

I'm looking at gcc6 compiler warnings with current master and while most
of them are benign, I think I found some that may be significant:

intl/collations/xx885913lt.h:821:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252i850.h:832:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252i850.h:832:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252i850.h:832:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252span.h:841:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252span.h:841:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252span.h:841:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1252span.h:841:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1254turk.h:826:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]
intl/collations/pw1254turk.h:826:1: warning: large integer implicitly truncated 
to unsigned type [-Woverflow]

The line number is misleading as it points to the closing curly brace of
NoCaseOrderTbl initializer but the problem is that the Secondary member
which is a 4-bit bitfield is sometimes initialized to FIRST_SECONDARY+14
or FIRST_SECONDARY+15 where FIRST_SECONDARY expands to 2. This doesn't
happen in xx885913lt.h but there the Tertiary field (a 2-bit bitfield)
is initialized to FIRST_TERTIARY+3 and FIRST_TERTIARY expands to 1.

I didn't dig into the implementation details (so I don't know why (if?)
we need to have the Primary/Secondary/Tertiary values distinct when they
live in separate bitfields) but I'm afraid this might lead to incorrect
results for these collations.

                                                          Michal Kubecek


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to