From 85632cd24fa3d7f890fe9537936088c42792970c Mon Sep 17 00:00:00 2001 From: jakub Date: Fri, 3 Jun 2011 20:21:38 +0000 Subject: [PATCH] PR c++/49276 * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of DECL_CONTEXT. * g++.dg/cpp0x/lambda/lambda-mangle2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174620 138bc75d-0d04-0410-961f-82ee72b054a4 index f063d47..be4ef0a 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1,6 +1,6 @@ /* Name mangling for the 3.0 C++ ABI. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, + 2011 Free Software Foundation, Inc. Written by Alex Samuel This file is part of GCC. @@ -943,7 +943,7 @@ write_nested_name (const tree decl) else { /* No, just use */ - write_prefix (DECL_CONTEXT (decl)); + write_prefix (CP_DECL_CONTEXT (decl)); write_unqualified_name (decl); } write_char ('E'); new file mode 100644 index 0000000..4b7d15a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle2.C @@ -0,0 +1,21 @@ +// PR c++/49276 +// { dg-do compile } +// { dg-options "-std=c++0x" } + +template +struct F +{ + template F (U); +}; + +struct S +{ + void foo (F <0> x = [] {}) {} +}; + +int +main () +{ + S s; + s.foo (); +} -- 1.7.0.4