re PR c++/54122 (segfault comparing enum class in lambda inside constructor of a templated class)
PR c++/54122 * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for METHOD_TYPE. From-SVN: r195806
This commit is contained in:
parent
155664b33d
commit
5099f36b1a
|
@ -1,3 +1,9 @@
|
|||
2013-02-05 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/54122
|
||||
* tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for
|
||||
METHOD_TYPE.
|
||||
|
||||
2013-02-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Backported from mainline
|
||||
|
|
|
@ -143,9 +143,7 @@ lvalue_kind (const_tree ref)
|
|||
case ARRAY_REF:
|
||||
case PARM_DECL:
|
||||
case RESULT_DECL:
|
||||
if (TREE_CODE (TREE_TYPE (ref)) != METHOD_TYPE)
|
||||
return clk_ordinary;
|
||||
break;
|
||||
return clk_ordinary;
|
||||
|
||||
/* A scope ref in a template, left as SCOPE_REF to support later
|
||||
access checking. */
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// PR c++/54122
|
||||
// { dg-options -std=c++11 }
|
||||
|
||||
enum E { F };
|
||||
|
||||
template <typename A>
|
||||
struct C
|
||||
{
|
||||
E e;
|
||||
void f () { auto l = [&](void)->void { if (e == F) return; }; }
|
||||
};
|
Loading…
Reference in New Issue