* internal-fn.def (LAUNDER): New internal function.
commit6e1b2ffbce9601223b3b5a066f91b3a000c1401d
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Oct 2016 08:47:15 +0000 (25 08:47 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Oct 2016 08:47:15 +0000 (25 08:47 +0000)
tree2d1523ca1b3160a1e7eafa9814f6a920b91ac43e
parent6c287ec8f77955171df3e4b31d1c5093f43d60ea
* internal-fn.def (LAUNDER): New internal function.
* internal-fn.c (expand_LAUNDER): New function.
c-family/
* c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
* c-common.c (c_common_reswords): Add __builtin_launder.
cp/
* cp-tree.h (finish_builtin_launder): Declare.
* parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_LAUNDER.
* semantics.c (finish_builtin_launder): New function.
* pt.c (tsubst_copy_and_build): Handle instantiation of IFN_LAUNDER.
* constexpr.c (cxx_eval_internal_function): Handle IFN_LAUNDER.
(potential_constant_expression_1): Likewise.
testsuite/
* g++.dg/cpp1z/launder1.C: New test.
* g++.dg/cpp1z/launder2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241506 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/cp/ChangeLog
gcc/cp/constexpr.c
gcc/cp/cp-tree.h
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/internal-fn.c
gcc/internal-fn.def
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1z/launder1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/launder2.C [new file with mode: 0644]