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
  • [PATCH] D55500: [... Eric Fiselier via Phabricator via cfe-commits

Reply via email to