pit_type as unsigned

Richard Kimberly Heck rikiheck at lyx.org
Mon May 18 00:56:41 UTC 2020


On 5/12/20 11:47 AM, Jean-Marc Lasgouttes wrote:
> Le 11/05/2020 à 23:55, Richard Kimberly Heck a écrit :
>> On 5/11/20 7:00 AM, Jean-Marc Lasgouttes wrote: This one's a bit
>> weirder:
>>
>>          l_margin += bfm.signedWidth(layout.leftmargin) * 4
>>                       / (par.getDepth() + 4);
>>
>> Here, l_margin is an int; getDepth() returns unsigned; so the convesion
>> is actually of bfm.signedWidth. Can l_margin be negative?
>
> signedWidth can be negative in theory. In this case l_margin would be
> negative. What does the margin say? How would I get it? -Wextra?

QtCreator runs clang in the background with:

-Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic
-Wno-unused-macros -Wno-newline-eof -Wno-exit-time-destructors
-Wno-global-constructors -Wno-gnu-zero-variadic-macro-arguments
-Wno-documentation -Wno-shadow -Wno-switch-enum -Wno-missing-prototypes
-Wno-used-but-marked-unused -Wno-old-style-cast -Wno-extra-semi-stmt

>
>> This is the vector sort of case I mentioned (not to do with pit_type):
>>
>>      Row const & r = pm.rows()[row];
>>
>> Here row is an int but vector::size_type is unsigned long.
>
> We could introduce an unsigned row_type for that. Or use size_t
> instead of int. What would you prefer?

No real preference.

>>>> * It is not clear that depth needs to be an int instead of a
>>>> depth_type
>>>>>
>>>>> @@ -1635,7 +1635,7 @@ int TextMetrics::leftMargin(pit_type const pit,
>>>>> pos_type const pos) const
>>>>>            l_margin += bfm.signedWidth(tclass.leftmargin());
>>>>>        }
>>>>>
>>>>> -    int depth = par.getDepth();
>>>>> +    int depth = int(par.getDepth());
>>>>
>>>> I can change it, but then it throws a different warning here:
>>>>
>>>>       int nestmargin = depth * nestMargin();
>>>
>>> Because nestMargin is naturally unsigned?
>>
>> I would have thought so, but I often find myself unsure whether
>> something could be negative. Perhaps what I should do is just flag these
>> cases for someone else to verify?
>
> Yes. But I would need to know how to get the warnings. What compiler?

See above.

Riki


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20200517/3f914739/attachment.html>


More information about the lyx-devel mailing list