Commit 2abc02a1 by Marek Polacek Committed by Marek Polacek

PR c++/91740 - ICE with constexpr call and ?: in ARRAY_REF.

	* pt.c (build_non_dependent_expr): Call build_non_dependent_expr for
	the first operand.

	* g++.dg/cpp1y/var-templ63.C: New test.

From-SVN: r275736
parent 41fb55fd
2019-09-15 Marek Polacek <polacek@redhat.com>
PR c++/91740 - ICE with constexpr call and ?: in ARRAY_REF.
* pt.c (build_non_dependent_expr): Call build_non_dependent_expr for
the first operand.
2019-09-15 Nathan Sidwell <nathan@acm.org> 2019-09-15 Nathan Sidwell <nathan@acm.org>
* cp-tree.h (DECL_CLONED_FUNCTION_P): Reimplement using * cp-tree.h (DECL_CLONED_FUNCTION_P): Reimplement using
......
...@@ -26710,7 +26710,7 @@ build_non_dependent_expr (tree expr) ...@@ -26710,7 +26710,7 @@ build_non_dependent_expr (tree expr)
if (TREE_CODE (expr) == COND_EXPR) if (TREE_CODE (expr) == COND_EXPR)
return build3 (COND_EXPR, return build3 (COND_EXPR,
TREE_TYPE (expr), TREE_TYPE (expr),
TREE_OPERAND (expr, 0), build_non_dependent_expr (TREE_OPERAND (expr, 0)),
(TREE_OPERAND (expr, 1) (TREE_OPERAND (expr, 1)
? build_non_dependent_expr (TREE_OPERAND (expr, 1)) ? build_non_dependent_expr (TREE_OPERAND (expr, 1))
: build_non_dependent_expr (TREE_OPERAND (expr, 0))), : build_non_dependent_expr (TREE_OPERAND (expr, 0))),
......
2019-09-15 Marek Polacek <polacek@redhat.com>
PR c++/91740 - ICE with constexpr call and ?: in ARRAY_REF.
* g++.dg/cpp1y/var-templ63.C: New test.
2019-09-15 Sandra Loosemore <sandra@codesourcery.com> 2019-09-15 Sandra Loosemore <sandra@codesourcery.com>
* lib/target-supports.exp * lib/target-supports.exp
......
// PR c++/91740 - ICE with constexpr call and ?: in ARRAY_REF.
// { dg-do compile { target c++14 } }
constexpr bool f(const char*) { return true; }
template<typename T> const char c = "FOO"[f("BAR") ? 1 : 0];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment