EricWF marked 2 inline comments as done. EricWF added a comment. Sorry for the delayed response. My email filters were incorrect.
================ Comment at: include/clang/Basic/Builtins.def:759 +// Random C++ builtins. +LANGBUILTIN(__builtin_is_constant_evaluated, "b", "ncu", CXX_LANG) + ---------------- bruno wrote: > Name bikeshedding : perhaps the builtin name could be detached from the std:: > name? Suggestion: `__builtin_in_constant_evaluation_context` I'm not sure detaching it from the `std::` name is desirable. Most importantly it should match w/e GCC does/decides to do. But if it is, we should name in deference to the standardese it implements. Specifically weither an expression or conversion is //manifestly constant-evaluated// [[expr.const](http://eel.is/c++draft/expr.const#11)]p11. Therefore I proffer `__builtin_is_manifestly_constant_evaluated()` or `__builtin_is_being_manifestly_constant_evaluated()`. ================ Comment at: lib/AST/ExprConstant.cpp:8207 + case Builtin::BI__builtin_is_constant_evaluated: + return Success(Info.InConstantContext, E); ---------------- bruno wrote: > Do we need compat and extension warnings for the use of this builtin before > c++2a? I assume people will play with the builtin before the library facility > is there. OTOH, since this will be mainly exposed as a library thing, > whatever check for c++ version is done at the library level should be enough? No. We don't warn for any other builtin used to serve the standard library (`__is_constructible()`, `__builtin_addressof()`, etc) The builtin is useful in all dialects, and I suspect users will frequently want to call it directly. If `__has_builtin(__builtin_is_constant_evaluated)` returns true, it should be safe to use. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55500/new/ https://reviews.llvm.org/D55500 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits