Commit 41d04a8d by Jason Merrill Committed by Jason Merrill

re PR c++/45520 ([C++0x] compiler segmentation fault on decltype in lambda-declarator)

	PR c++/45520
	* tree.c (maybe_dummy_object): Check current_class_ref against
	context, not current_class_type.

From-SVN: r168654
parent 5826c8d2
2011-01-11 Jason Merrill <jason@redhat.com>
PR c++/45520
* tree.c (maybe_dummy_object): Check current_class_ref against
context, not current_class_type.
2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/47078
......
......@@ -2374,12 +2374,12 @@ maybe_dummy_object (tree type, tree* binfop)
if (binfop)
*binfop = binfo;
if (current_class_ref && context == current_class_type
/* Kludge: Make sure that current_class_type is actually
correct. It might not be if we're in the middle of
tsubst_default_argument. */
&& same_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (current_class_ref)),
current_class_type))
if (current_class_ref
/* current_class_ref might not correspond to current_class_type if
we're in tsubst_default_argument or a lambda-declarator; in either
case, we want to use current_class_ref if it matches CONTEXT. */
&& (same_type_ignoring_top_level_qualifiers_p
(TREE_TYPE (current_class_ref), context)))
decl = current_class_ref;
else if (current != current_class_type
&& context == nonlambda_method_basetype ())
......
2011-01-11 Jason Merrill <jason@redhat.com>
PR c++/45520
* g++.dg/cpp0x/lambda/lambda-this3.C: New.
2011-01-11 Iain Sandoe <iains@gcc.gnu.org>
* objc-obj-c++-shared/next-mapping.h: Add copyright header.
......
// PR c++/45520
// { dg-options -std=c++0x }
struct M {
int i;
};
struct S {
M m;
void f() {
auto lambda=[&](decltype(m.i) & i) { };
}
};
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