|
|
Subscribe / Log in / New account

Better handling of integer wraparound in the kernel

Better handling of integer wraparound in the kernel

Posted Feb 5, 2024 12:15 UTC (Mon) by mathstuf (subscriber, #69389)
In reply to: Better handling of integer wraparound in the kernel by farnz
Parent article: Better handling of integer wraparound in the kernel

What other C++ compilers exist (that aren't on their way to being LLVM-based)? GCC, EDG, Clang, MSVC are the ones I know of (and see represented at ISO meetings).


to post comments

Better handling of integer wraparound in the kernel

Posted Feb 5, 2024 14:01 UTC (Mon) by farnz (subscriber, #17727) [Link] (2 responses)

Good question; I've not paid attention for a long time; I know of many C compilers, but not many C++ compilers, and most of the C compilers can best be described as "barely maintained" (one I'm aware of - an expensive one - is talking about having full C90 support "soon", and mostly relies on the fact that it's a qualified compiler for the purposes of various certifications to keep going).

Better handling of integer wraparound in the kernel

Posted Feb 6, 2024 4:29 UTC (Tue) by mathstuf (subscriber, #69389) [Link] (1 responses)

Yeah…those compilers aren't even really paying attention to "modern C" nevermind "modern C++" for sources of "inspiration". There are over 100 C implementations but I'd be surprised if C++ were really something that mattered to the vast majority of them (beyond what may cross-pollinate to C).

Better handling of integer wraparound in the kernel

Posted Feb 6, 2024 11:03 UTC (Tue) by farnz (subscriber, #17727) [Link]

AFAICT, most of them don't care about the C standard at all; they have their own dialect of C that's not the same as standard C, and a niche where it's more important that they either comply with other standards (qualified compilers etc), or a niche where they are deliberately non-standard to support legacy code bases that depend on historic behaviour that conflicts with the C standard.

For example, one vendor I'm aware of has two C compilers they sell; one is LLVM-based, and does standard C; the other is their legacy compiler, which is guaranteed to interpret certain constructs the way their compilers in the 1980s did, even though that interpretation conflicts with the C standard. But this is valuable if you have legacy code that "knows" that floating point to integer casts are bitwise, while implicit conversions are value based (for example - not the actual case, but it's that sort of weirdness).


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds