Commit 66a90e86 by Paolo Carlini Committed by Paolo Carlini

re PR c++/83204 (c++ -std=c++14 ICE in maybe_undo_parenthesized_ref, at cp/semantics.c:1694)

/cp
2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83204
	* pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.

/testsuite
2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83204
	* g++.dg/cpp0x/lambda/lambda-ice25.C: New.

From-SVN: r257478
parent f986f7e4
2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/83204
* pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.
2018-02-07 Jakub Jelinek <jakub@redhat.com>
PR c++/84082
......
......@@ -17224,8 +17224,8 @@ tsubst_copy_and_build (tree t,
r = build_x_indirect_ref (input_location, r, RO_UNARY_STAR,
complain|decltype_flag);
if (TREE_CODE (r) == INDIRECT_REF)
REF_PARENTHESIZED_P (r) = REF_PARENTHESIZED_P (t);
if (REF_PARENTHESIZED_P (t))
r = force_paren_expr (r);
RETURN (r);
}
......
2018-02-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/83204
* g++.dg/cpp0x/lambda/lambda-ice25.C: New.
2018-02-07 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/vsxcopy.c: Update scan-assembler stanzas.
......
// PR c++/83204
// { dg-do compile { target c++11 } }
int rand();
template<typename T>
struct s
{
int count() { return rand(); }
};
template<typename v>
void f(s<v> a)
{
int const x = a.count();
int r = 0;
auto l = [&](int& r)
{
for(int y = 0, yend = (x); y < yend; ++y)
{
r += y;
}
};
l(r);
}
template void f(s<float>);
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