[PATCH] D86508: [clang] implement+test remaining C90 __builtin_ functions

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 1 11:56:57 PDT 2020


rsmith added a comment.

LGTM

I've not checked all the types are correct (someone should double-check that prior to commit), but it looks like GCC provides these `__builtin_*` functions, so we should too. The addition of the non-`__builtin_` versions should improve our diagnostics but otherwise have no effect.



================
Comment at: clang/lib/Lex/PPMacroExpansion.cpp:348
   // C++ Standing Document Extensions.
-  if (LangOpts.CPlusPlus)
+  if (getLangOpts().CPlusPlus)
     Ident__has_cpp_attribute =
----------------
The changes to this file appear to be independent of the rest of the patch. Please go ahead and land this cleanup separately.


================
Comment at: clang/test/CXX/over/over.oper/over.literal/p7.cpp:10
 
-void puts(const char *);
+int puts(const char *);
 static inline void operator "" _puts(const char *c) {
----------------
Doesn't this also need to be `extern "C"` to be recognized as the builtin?


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