-Wsign-promo (Re: [BUILD FAILS DEBUG MODE] with test_strings_valuex.cxx)
Lubos Lunak
l.lunak at suse.cz
Sat Jan 19 02:28:35 PST 2013
On Friday 18 of January 2013, julien2412 wrote:
> Hello,
>
> On pc Debian x86-64 with master sources after having runned "make clean",
> I've got this:
> /home/julien/compile-libreoffice/libo/sal/qa/rtl/strings/test_strings_value
>x.cxx: In instantiation of ‘void testInt() [with T = rtl::OUString]’:
> /home/julien/compile-libreoffice/libo/sal/qa/rtl/strings/test_strings_value
>x.cxx:77:28: required from here
> /home/julien/compile-libreoffice/libo/sal/qa/rtl/strings/test_strings_value
>x.cxx:48:5: error: passing ‘unsigned char’ chooses ‘int’ over ‘unsigned int’
> [-Werror=sign-promo]
-Wsign-promo is a rather pointless warning these days (the section in the gcc
manpage is a funny read and not only because it talks about Cfront). I've
added more overloads to silence it, but I rather wonder why we have this
explicitly enabled at all.
My hypothesis is like this:
- the idea behind the warning is just nonsense (who cares to what integer type
the value is promoted)
- but it incidentally triggers when passing bool to SvStream, because it
doesn't have any overload for operator<<(bool), and int is chosen over
unsigned char AKA sal_Bool , so Caolan added it in
e8bbb76827dd7a0e30d7d1db34a812a84d85f390
- if SvStream gets overload for bool, the warning can be dumped
Or am I missing something there?
--
Lubos Lunak
l.lunak at suse.cz
More information about the LibreOffice
mailing list