PR c++/66561 - __builtin_LINE at al. should yield constant expressions
commitc388a0cf8d1facc88351350d9dc3274192526239
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2016 21:15:28 +0000 (3 21:15 +0000)
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2016 21:15:28 +0000 (3 21:15 +0000)
tree0909668e48da930feebd5b9147810cbe08e38f6c
parent2e063ded5483a92525ee58cac98bbefc996336af
PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr

gcc/testsuite/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* c-c++-common/builtin_location.c: New test.
* g++.dg/cpp1y/builtin_location.C: New test.

gcc/cp/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.

gcc/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* builtins.c (fold_builtin_FILE): New function.
(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
(fold_builtin_0): Call them.
* gimplify.c (gimplify_call_expr): Remove the handling of
BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.

PR c++/66561
* doc/extend.texi (Other Builtins): Update __builtin_FILE,
__builtin_FUNCTION, and __builtin_LINE to reflect they yield
constants.

PR c++/66639
* doc/extend.texi (Function Names as Strings): Update __func__,
__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
constants.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235845 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/cp/ChangeLog
gcc/cp/tree.c
gcc/doc/extend.texi
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/builtin_location.c [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/builtin_location.C [new file with mode: 0644]