[PATCH] D86508: [clang] improve GCC-compat for C90 __builtin_ functions

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 3 12:46:42 PDT 2020


rsmith added inline comments.


================
Comment at: clang/docs/LanguageExtensions.rst:2370-2398
+* ``bcmp``
 * ``memchr``
-* ``memcmp`` (and its deprecated BSD / POSIX alias ``bcmp``)
+* ``memcmp``
+* ``memcpy``
+* ``memmove``
+* ``memset``
+* ``strcat``
----------------
aaron.ballman wrote:
> Can you mention the deprecation issue here?
Do we really provide constant evaluation support for all of these functions?


================
Comment at: clang/docs/LanguageExtensions.rst:2381
+* ``strcspn``
+* ``strerror``
 * ``strlen``
----------------
Do we really provide `__builtin_strerror`? I don't see it below.


================
Comment at: clang/docs/LanguageExtensions.rst:2425-2435
-Clang provides constant expression evaluation support for builtin forms of the
-following functions from the C standard library headers
-``<string.h>`` and ``<wchar.h>``:
-
-* ``memcpy``
-* ``memmove``
-* ``wmemcpy``
----------------
You've moved this from the section where we describe the constant evaluation rules for these functions to a section where we describe the constant evaluation rules for string functions; those rules are quite different.


================
Comment at: clang/docs/LanguageExtensions.rst:2427-2428
+----------------
+Clang provides support for builtins forms of the following functions from the C
+standard library header ``<ctype.h>``:
+
----------------
We should say how these "builtin forms" are named and what they're for: that we provide a `__builtin_`-prefixed version of each of these functions that has the same signature and semantics as the function from the C standard library but doesn't require a header to be included.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86508/new/

https://reviews.llvm.org/D86508



More information about the cfe-commits mailing list