diff options
author | Jason Merrill <jason@redhat.com> | 2009-09-29 22:10:19 +0000 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2009-09-29 22:10:19 +0000 |
commit | d6c3fa09624b309a9ddcaab844db915a7f56009f (patch) | |
tree | 5c897d62ddf62886852ff027f2d0be45cd69eb32 | |
parent | fdc89fffc582ed106fcf40b0d9240c3c107d9267 (diff) |
tweaky
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/cxx0x-lambdas-branch@152303 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/mangle.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 224196330d2..30cac5620e2 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1038,7 +1038,8 @@ write_prefix (const tree node) { write_prefix (decl_mangling_context (decl)); write_unqualified_name (decl); - if (TREE_CODE (decl) == VAR_DECL) + if (TREE_CODE (decl) == VAR_DECL + || TREE_CODE (decl) == FIELD_DECL) { /* <data-member-prefix> := <member source-name> M */ write_char ('M'); @@ -1261,6 +1262,9 @@ write_unnamed_type_name (const tree type __attribute__ ((__unused__))) write_char ('_'); } +/* <closure-type-name> ::= Ul <lambda-sig> E [ <nonnegative number> ] _ + <lambda-sig> ::= <parameter type>+ # Parameter types or "v" if the lambda has no parameters */ + static void write_closure_type_name (const tree type) { @@ -1657,8 +1661,7 @@ write_local_name (tree function, const tree local_entity, from <local-name>, so it doesn't try to process the enclosing function scope again. */ write_name (entity, /*ignore_local_scope=*/1); - if (!parm) - write_discriminator (discriminator_for_local_entity (local_entity)); + write_discriminator (discriminator_for_local_entity (local_entity)); } } |