Commit 13617162 by Iain Buclaw Committed by Iain Buclaw

d-demangle.c (dlang_call_convention): Handle extern Objective-C function calling convention.

libiberty/ChangeLog:

2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-demangle.c (dlang_call_convention): Handle extern Objective-C
	function calling convention.
	(dlang_call_convention_p): Likewise.
	(dlang_type): Likewise.
	* testsuite/d-demangle-expected: Add coverage tests.

From-SVN: r232864
parent acf1f7da
2016-01-27 Iain Buclaw <ibuclaw@gdcproject.org> 2016-01-27 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_call_convention): Handle extern Objective-C
function calling convention.
(dlang_call_convention_p): Likewise.
(dlang_type): Likewise.
* testsuite/d-demangle-expected: Add coverage tests.
2016-01-27 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_function_args): Append ',' for variadic functions * d-demangle.c (dlang_function_args): Append ',' for variadic functions
only if parameters were seen before the elipsis symbol. only if parameters were seen before the elipsis symbol.
* testsuite/d-demangle-expected: Add coverage test for parameter-less * testsuite/d-demangle-expected: Add coverage test for parameter-less
......
...@@ -223,6 +223,10 @@ dlang_call_convention (string *decl, const char *mangled) ...@@ -223,6 +223,10 @@ dlang_call_convention (string *decl, const char *mangled)
mangled++; mangled++;
string_append (decl, "extern(C++) "); string_append (decl, "extern(C++) ");
break; break;
case 'Y': /* (Objective-C) */
mangled++;
string_append (decl, "extern(Objective-C) ");
break;
default: default:
return NULL; return NULL;
} }
...@@ -539,7 +543,7 @@ dlang_type (string *decl, const char *mangled) ...@@ -539,7 +543,7 @@ dlang_type (string *decl, const char *mangled)
switch (*mangled) switch (*mangled)
{ {
case 'F': case 'U': case 'W': case 'F': case 'U': case 'W':
case 'V': case 'R': case 'V': case 'R': case 'Y':
mangled = dlang_function_type (decl, mangled); mangled = dlang_function_type (decl, mangled);
string_append (decl, "function"); string_append (decl, "function");
return mangled; return mangled;
...@@ -1338,7 +1342,7 @@ dlang_call_convention_p (const char *mangled) ...@@ -1338,7 +1342,7 @@ dlang_call_convention_p (const char *mangled)
switch (*mangled) switch (*mangled)
{ {
case 'F': case 'U': case 'V': case 'F': case 'U': case 'V':
case 'W': case 'R': case 'W': case 'R': case 'Y':
return 1; return 1;
default: default:
......
...@@ -394,6 +394,10 @@ _D8demangle4testFDRZaZv ...@@ -394,6 +394,10 @@ _D8demangle4testFDRZaZv
demangle.test(extern(C++) char() delegate) demangle.test(extern(C++) char() delegate)
# #
--format=dlang --format=dlang
_D8demangle4testFDYZaZv
demangle.test(extern(Objective-C) char() delegate)
#
--format=dlang
_D8demangle4testFPFZaZv _D8demangle4testFPFZaZv
demangle.test(char() function) demangle.test(char() function)
# #
...@@ -414,6 +418,10 @@ _D8demangle4testFPRZaZv ...@@ -414,6 +418,10 @@ _D8demangle4testFPRZaZv
demangle.test(extern(C++) char() function) demangle.test(extern(C++) char() function)
# #
--format=dlang --format=dlang
_D8demangle4testFPYZaZv
demangle.test(extern(Objective-C) char() function)
#
--format=dlang
_D8demangle4testFDFNaZaZv _D8demangle4testFDFNaZaZv
demangle.test(char() pure delegate) demangle.test(char() pure delegate)
# #
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment