From 059bb0c0a09f771dc88757446add9928797b22ba Mon Sep 17 00:00:00 2001 From: Thomas REITMAYR Date: Thu, 13 Feb 2020 16:25:15 +0100 Subject: [PATCH] Recognize C++ conversion operators with trailing '= 0' as abstract This fix is done for all supported variants of user-defined conversion operators and fixes swig#1723. --- Source/CParse/parser.y | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y index 470b7d065..8029dee3d 100644 --- a/Source/CParse/parser.y +++ b/Source/CParse/parser.y @@ -4800,6 +4800,9 @@ cpp_conversion_operator : storage_class CONVERSIONOPERATOR type pointer LPAREN p if ($8.qualifier) { SwigType_push($4,$8.qualifier); } + if ($8.val) { + Setattr($$,"value",$8.val); + } Setattr($$,"refqualifier",$8.refqualifier); Setattr($$,"decl",$4); Setattr($$,"parms",$6); @@ -4818,6 +4821,9 @@ cpp_conversion_operator : storage_class CONVERSIONOPERATOR type pointer LPAREN p if ($8.qualifier) { SwigType_push(decl,$8.qualifier); } + if ($8.val) { + Setattr($$,"value",$8.val); + } Setattr($$,"refqualifier",$8.refqualifier); Setattr($$,"decl",decl); Setattr($$,"parms",$6); @@ -4836,6 +4842,9 @@ cpp_conversion_operator : storage_class CONVERSIONOPERATOR type pointer LPAREN p if ($8.qualifier) { SwigType_push(decl,$8.qualifier); } + if ($8.val) { + Setattr($$,"value",$8.val); + } Setattr($$,"refqualifier",$8.refqualifier); Setattr($$,"decl",decl); Setattr($$,"parms",$6); @@ -4856,6 +4865,9 @@ cpp_conversion_operator : storage_class CONVERSIONOPERATOR type pointer LPAREN p if ($9.qualifier) { SwigType_push(decl,$9.qualifier); } + if ($9.val) { + Setattr($$,"value",$9.val); + } Setattr($$,"refqualifier",$9.refqualifier); Setattr($$,"decl",decl); Setattr($$,"parms",$7); @@ -4873,7 +4885,10 @@ cpp_conversion_operator : storage_class CONVERSIONOPERATOR type pointer LPAREN p if ($7.qualifier) { SwigType_push(t,$7.qualifier); } - Setattr($$,"refqualifier",$7.refqualifier); + if ($7.val) { + Setattr($$,"value",$7.val); + } + Setattr($$,"refqualifier",$7.refqualifier); Setattr($$,"decl",t); Setattr($$,"parms",$5); Setattr($$,"conversion_operator","1");