nickdesaulniers added inline comments.
================ Comment at: clang/include/clang/Basic/Builtins.def:513 BUILTIN(__builtin_printf, "icC*.", "Fp:0:") +BUILTIN(__builtin_putchar, "ii", "F") +BUILTIN(__builtin_puts, "icC*", "nF") ---------------- nickdesaulniers wrote: > nickdesaulniers wrote: > > nickdesaulniers wrote: > > > rsmith wrote: > > > > aaron.ballman wrote: > > > > > Should we also add a builtin for `putc()` (I know that's often a > > > > > macro, so I'm not certain if it applies)? > > > > Yes, GCC has a `__builtin_putc`, so it'd make sense for us to support > > > > that too. > > > Curious, `putc` isn't documented at > > > https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html, which is what I > > > was using. It looks like `putc` was a part of ANSI C, so I'm not sure > > > what else might be missing from my implementation. Let me see if I can > > > find a more complete list of C90 functions to verify. > > (retrieves copy of `The Standard C Library` from P. J. Plauger) > Looks like I'm missing: > > From stdlib.h: > * `div` > * `ldiv` > * `bsearch` > * `qsort` > * `rand` > * `srand` > * `atof` > * `atoi` > * `atol` > * `mblen` > * `mbstowcs` > * `mbtowc` > * `wcstombs` > * `wctomb` > * `abort` > * `atexit` > * `getenv` > * `system` > > From string.h: > * `strcoll` > > From stdio.h: > * `remove` > * `rename` > * `tmpfile` > * `fclose` > * `fflush` > * `freopen` > * `setvbuf` > * `scanfwrite` > * `fgetc` > * `fgets` > * `fputc` > * `getc` > * `getchar` > * `gets` > * `putc` > * `ungetc` > * `fgetpos` > * `fseek` > * `fsetpos` > * `ftell` > * `rewind` > * `clearerr` > * `feof` > * `ferror` > * `perror` > > We look good on ctype.h and stdard.h. Shall I very those against GCC and > implement what's missing here? (`abort` should not have been in the above list; it's in GCC's docs and we implement the builtin for it) From the above list, GCC has builtins for: * fputc * putc We already support `abort. Let me: 1. file a docs bug against GCC for those 2 undocumented builtins. 2. add implementations of them to this change. 3. add a test case for pr/47387 just to be safe. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D86508/new/ https://reviews.llvm.org/D86508 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits