diff options
author | Jason Merrill <jason@redhat.com> | 2018-02-16 21:02:55 +0000 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2018-02-16 21:02:55 +0000 |
commit | d509b90879628009b97b4e4a6d8211681b4d8574 (patch) | |
tree | cf047000740d1698d40e8998390e30b3fe94c896 | |
parent | a62f2e6333048cac5f9a9f05173cb87cd1d8063a (diff) |
PR c++/81853 - using-directive and constexpr.
* constexpr.c (cxx_eval_constant_expression): Handle USING_STMT.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@257762 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/constexpr.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/stmtexpr22.C | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b7d45707d5e..07788c0d516 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2018-02-16 Jason Merrill <jason@redhat.com> + PR c++/81853 - using-directive and constexpr. + * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT. + PR c++/84420 - ICE with structured binding in lambda. * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P. diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index d89bdd5a6a4..91148aa8d72 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -4726,6 +4726,10 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t, jump_target); break; + case USING_STMT: + r = void_node; + break; + default: if (STATEMENT_CODE_P (TREE_CODE (t))) { diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr22.C b/gcc/testsuite/g++.dg/ext/stmtexpr22.C new file mode 100644 index 00000000000..f46523a5875 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/stmtexpr22.C @@ -0,0 +1,13 @@ +// PR c++/81853 +// { dg-do compile { target c++11 } } +// { dg-options "" } + +namespace N { + enum { i }; +} + +int g () +{ + constexpr int j = ({ using namespace N; i; }); + return j; +} |