Fixed bug 3285386: parse error from 'operator T*&()'

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12637 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Stefan Zager 2011-04-12 16:34:31 +00:00
commit cade0f6533
3 changed files with 28 additions and 1 deletions

View file

@ -4,6 +4,14 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.4 (in progress)
===========================
2011-04-12: szager
Fixed bug #3285386: parse error from 'operator T*&()'. Added operator_pointer_ref
test case to demonstrate.
2011-04-11: szager
Fixed PyVarObject_HEAD_INIT to eliminate VC++ compiler errors about
static initialization of struct members with pointers.
2011-04-11: wsfulton
[Tcl] Apply patch #3284326 from Colin McDonald to fix some compiler warnings.
@ -39,4 +47,3 @@ Version 2.0.4 (in progress)
2011-04-01: wsfulton
Add in missing wrappers for friend functions for some target languages, mostly
the non-scripting languages like Java and C#.

View file

@ -264,6 +264,7 @@ CPP_TEST_CASES += \
null_pointer \
operator_overload \
operator_overload_break \
operator_pointer_ref \
operbool \
ordering \
overload_copy \

View file

@ -4475,6 +4475,25 @@ cpp_conversion_operator : storage_class COPERATOR type pointer LPAREN parms RPAR
add_symbols($$);
}
| storage_class COPERATOR type pointer AND LPAREN parms RPAREN cpp_vend {
SwigType *decl;
$$ = new_node("cdecl");
Setattr($$,"type",$3);
Setattr($$,"name",$2);
Setattr($$,"storage",$1);
decl = NewStringEmpty();
SwigType_add_pointer(decl);
SwigType_add_reference(decl);
SwigType_add_function(decl,$7);
if ($9.qualifier) {
SwigType_push(decl,$9.qualifier);
}
Setattr($$,"decl",decl);
Setattr($$,"parms",$7);
Setattr($$,"conversion_operator","1");
add_symbols($$);
}
| storage_class COPERATOR type LPAREN parms RPAREN cpp_vend {
String *t = NewStringEmpty();
$$ = new_node("cdecl");