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)
Feb 15 2024, 2:22 AM
Unknown Object (File)
Dec 26 2023, 7:37 PM
Unknown Object (File)
Dec 20 2023, 6:46 AM
Unknown Object (File)
Dec 16 2023, 5:35 AM
Unknown Object (File)
Dec 14 2023, 8:29 PM
Unknown Object (File)
Nov 29 2023, 4:15 AM
Unknown Object (File)
Oct 31 2023, 11:16 PM
Unknown Object (File)
Sep 26 2023, 2:29 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.