[llvm-dev] [RFC] Coding Standards: "prefer `int` for regular arithmetic, use `unsigned` only for bitmask and when you intend to rely on wrapping behavior."

Aaron Ballman via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 10 10:31:50 PDT 2019


On Mon, Jun 10, 2019, 7:16 PM Jake Ehrlich via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I'm in the same situation James is in and thus have the same bias but I'll
> +1 that comment nevertheless. I think I prefer using size_t or the uintX_t
> types where applicable. Only when I need a signed value do I use one.
>

+1 to prefering unsigned types.

~Aaron


> On Mon, Jun 10, 2019, 9:59 AM James Henderson via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Maybe it's just because I work in code around the binary file formats
>> almost exclusively, but unsigned (or more often uint64_t) is FAR more
>> common than int everywhere I go. I don't have time right now to read up on
>> the different links you provided, and I expect this is covered in them, but
>> it also seems odd to me to use int in a loop when indexing in a container
>> (something that can't always be avoided), given the types of size() etc.
>>
>> On Mon, 10 Jun 2019 at 17:26, Michael Kruse via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>>
>>> Am Sa., 8. Juni 2019 um 13:12 Uhr schrieb Tim Northover via llvm-dev
>>> <llvm-dev at lists.llvm.org>:
>>> > I'd prefer us to have something neater than static_cast<int> for the
>>> > loop problem before we made that change. Perhaps add an ssize (or
>>> > equivalent) method to all of our internal data structures? They're a
>>> > lot more common than std::* containers.
>>>
>>> +1
>>>
>>> Since C++20 is also introducing ssize [1] members, this makes a lot of
>>> sense to me. Using it would help avoiding an unsigned comparison as in
>>>
>>>     if (IndexOfInterestingElement >= Container.size())
>>>       ...
>>>
>>> to sneak in from the start.
>>>
>>> Michael
>>>
>>> [1] http://wg21.link/p1227r1
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190610/90024af3/attachment.html>


More information about the llvm-dev mailing list