From: jason Date: Tue, 13 Apr 2010 17:24:52 +0000 (+0000) Subject: * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=2921ec1c0967d239f8e09638532b95eda8d0915b * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of CLASS_TYPE_P. * parser.c (cp_parser_lambda_expression): Complain about lambda in unevaluated context. * pt.c (iterative_hash_template_arg): Don't crash on lambda. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158277 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index bd139b1d5c1..e4d899f83f5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2010-04-13 Jason Merrill + + * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of + CLASS_TYPE_P. + * parser.c (cp_parser_lambda_expression): Complain about lambda in + unevaluated context. + * pt.c (iterative_hash_template_arg): Don't crash on lambda. + 2010-04-12 Jason Merrill PR c++/43641 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 632dd314021..2dc73f5feaa 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -2249,7 +2249,7 @@ type_decays_to (tree type) return build_pointer_type (TREE_TYPE (type)); if (TREE_CODE (type) == FUNCTION_TYPE) return build_pointer_type (type); - if (!CLASS_TYPE_P (type)) + if (!MAYBE_CLASS_TYPE_P (type)) type = cv_unqualified (type); return type; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7954b3f26d0..a33b7c49349 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-04-13 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-deduce2.C: Remove. + * g++.dg/cpp0x/lambda/lambda-uneval.C: New. + 2010-04-13 Manuel López-Ibáñez * gcc.dg/cpp/cpp.exp: Test also c-c++-common/cpp. diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C deleted file mode 100644 index e92f6f2752c..00000000000 --- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Test that cv-quals are dropped from non-class return type -// { dg-options "-std=c++0x" } - -template -struct assert_same_type; -template -struct assert_same_type { }; - -struct A -{ - int i; -}; - -extern const int i; -assert_same_type x;