Page MenuHomeFreeBSD

<linux/overflow.h>: Don't use __has_builtin().
ClosedPublic

Authored by jhb on Sep 13 2021, 6:23 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jan 24, 8:28 AM
Unknown Object (File)
Sat, Jan 11, 12:32 AM
Unknown Object (File)
Dec 21 2024, 12:24 PM
Unknown Object (File)
Dec 13 2024, 11:48 PM
Unknown Object (File)
Nov 24 2024, 7:25 PM
Unknown Object (File)
Nov 18 2024, 5:46 AM
Unknown Object (File)
Nov 18 2024, 4:37 AM
Unknown Object (File)
Nov 18 2024, 2:52 AM
Subscribers

Details

Summary

GCC only added support for __has_builtin in GCC 10. However, all
supported versions of GCC and clang include these builtins so just use
them unconditionally.

This fixes the build with GCC 9.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Sep 13 2021, 6:23 PM

I was asked to add those checks in D25015 but if all the compiler that we support have those it's good for me (that was my guess at the time but didn't bother to check).

This revision is now accepted and ready to land.Sep 13 2021, 6:32 PM

As an alternative, you could define __has_builtin(x) to 1 and suffer with a less precise error message should x not actually be supported.

In D31942#720643, @imp wrote:

As an alternative, you could define __has_builtin(x) to 1 and suffer with a less precise error message should x not actually be supported.

We can't really do that. __has_builtin() gets used for various things and in other places it is always defined to 0 when it doesn't exist. Breaking that pattern in a header would probably cause other breakage in the future.

This revision was automatically updated to reflect the committed changes.