diff options
author | Martin Sebor <msebor@redhat.com> | 2019-02-22 18:38:36 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2019-02-22 11:38:36 -0700 |
commit | 16a919a7162aa5dc92c0834ad4eef8b7f878a7ae (patch) | |
tree | 0d0c124dc1e6b0238b69ed522a53e7d765dfb438 /gcc | |
parent | c87cc0c01e374c992d4085990bb0f65fbaf33128 (diff) | |
download | gcc-16a919a7162aa5dc92c0834ad4eef8b7f878a7ae.zip gcc-16a919a7162aa5dc92c0834ad4eef8b7f878a7ae.tar.gz gcc-16a919a7162aa5dc92c0834ad4eef8b7f878a7ae.tar.bz2 |
extend.texi (Other Builtins): Add __builtin_is_constant_evaluated.
gcc/ChangeLog:
* doc/extend.texi (Other Builtins): Add
__builtin_is_constant_evaluated.
From-SVN: r269129
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/doc/extend.texi | 17 |
2 files changed, 33 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d56987..77e2e83 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-02-22 Martin Sebor <msebor@redhat.com> + + * doc/extend.texi (Other Builtins): Add + __builtin_is_constant_evaluated. + 2019-02-22 Richard Biener <rguenther@suse.de> PR tree-optimization/87609 @@ -28,6 +33,17 @@ 2019-02-22 Martin Sebor <msebor@redhat.com> + PR tree-optimization/88993 + PR tree-optimization/88853 + * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): + New helper. + (sprintf_dom_walker::call_info::is_string_func): New helper. + (format_directive): Only issue "may exceed" 4095/INT_MAX warnings + for formatted string functions. + (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. + +2019-02-22 Martin Sebor <msebor@redhat.com> + PR c/89425 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in unreachable subexpressions. diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 545d851..d9c78a3 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -12890,6 +12890,23 @@ built-in in this case, because it has no opportunity to perform optimization. @end deftypefn +@deftypefn {Built-in Function} bool __builtin_is_constant_evaluated (void) +The @code{__builtin_is_constant_evaluated} function is available only +in C++. The built-in is intended to be used by implementations of +the @code{std::is_constant_evaluated} C++ function. Programs should make +use of the latter function rather than invoking the built-in directly. + +The main use case of the built-in is to determine whether a @code{constexpr} +function is being called in a @code{constexpr} context. A call to +the function evaluates to a core constant expression with the value +@code{true} if and only if it occurs within the evaluation of an expression +or conversion that is manifestly constant-evaluated as defined in the C++ +standard. Manifestly constant-evaluated contexts include constant-expressions, +the conditions of @code{constexpr if} statements, constraint-expressions, and +initializers of variables usable in constant expressions. For more details +refer to the latest revision of the C++ standard. +@end deftypefn + @deftypefn {Built-in Function} long __builtin_expect (long @var{exp}, long @var{c}) @opindex fprofile-arcs You may use @code{__builtin_expect} to provide the compiler with |