enh added inline comments.
================ Comment at: clang/lib/Headers/stdckdint.h:13 + +#if defined(__GNUC__) +#define ckd_add(R, A, B) __builtin_add_overflow((A), (B), (R)) ---------------- enh wrote: > ZijunZhao wrote: > > enh wrote: > > > is this ever _not_ set for clang? > > https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/stdbool.h#L23 > > I think it is set? > i get an error from > ``` > /tmp$ cat x.c > #if defined(__GNUC__) > #error foo > #endif > ``` > regardless of whether i compile with -std=c11 or -std=gnu11. > neither -ansi nor -pedantic seem to stop it either. it does look like it _should_ be possible to not have it set though? llvm/llvm-project/clang/lib/Frontend/InitPreprocessor.cpp has: ``` if (LangOpts.GNUCVersion != 0) { // Major, minor, patch, are given two decimal places each, so 4.2.1 becomes // 40201. unsigned GNUCMajor = LangOpts.GNUCVersion / 100 / 100; unsigned GNUCMinor = LangOpts.GNUCVersion / 100 % 100; unsigned GNUCPatch = LangOpts.GNUCVersion % 100; Builder.defineMacro("__GNUC__", Twine(GNUCMajor)); Builder.defineMacro("__GNUC_MINOR__", Twine(GNUCMinor)); Builder.defineMacro("__GNUC_PATCHLEVEL__", Twine(GNUCPatch)); Builder.defineMacro("__GXX_ABI_VERSION", "1002"); if (LangOpts.CPlusPlus) { Builder.defineMacro("__GNUG__", Twine(GNUCMajor)); Builder.defineMacro("__GXX_WEAK__"); } } ``` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157331/new/ https://reviews.llvm.org/D157331 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits