aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2015-05-16 16:49:25 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2015-05-16 16:49:25 +0000
commit76b41cad1cdce692cd8756c98dd963a29b770a77 (patch)
treed9dbbe92e857ece9d49d7c5371ef1cc9e42ca222
parenteb058b7de655251d88eee5ecce38de008e6eb90d (diff)
downloadgcc-76b41cad1cdce692cd8756c98dd963a29b770a77.zip
gcc-76b41cad1cdce692cd8756c98dd963a29b770a77.tar.gz
gcc-76b41cad1cdce692cd8756c98dd963a29b770a77.tar.bz2
d-demangle.c (dlang_call_convention): Return NULL if have reached the end of the symbol, but expected something to read.
libiberty/ChangeLog: 2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org> * d-demangle.c (dlang_call_convention): Return NULL if have reached the end of the symbol, but expected something to read. (dlang_attributes): Likewise. (dlang_function_type): Likewise. (dlang_type): Likewise. (dlang_identifier): Likewise. (dlang_value): Likewise. From-SVN: r223241
-rw-r--r--libiberty/ChangeLog10
-rw-r--r--libiberty/d-demangle.c12
2 files changed, 16 insertions, 6 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 3d86a0e..2d94e2b 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,5 +1,15 @@
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
+ * d-demangle.c (dlang_call_convention): Return NULL if have reached the
+ end of the symbol, but expected something to read.
+ (dlang_attributes): Likewise.
+ (dlang_function_type): Likewise.
+ (dlang_type): Likewise.
+ (dlang_identifier): Likewise.
+ (dlang_value): Likewise.
+
+2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
+
* d-demangle.c (dlang_parse_string): Represent embedded whitespace or
non-printable characters as hex or escape sequences.
* testsuite/d-demangle-expected: Add test for templates with tabs and
diff --git a/libiberty/d-demangle.c b/libiberty/d-demangle.c
index 1058521..0998478 100644
--- a/libiberty/d-demangle.c
+++ b/libiberty/d-demangle.c
@@ -185,7 +185,7 @@ static const char *
dlang_call_convention (string *decl, const char *mangled)
{
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
switch (*mangled)
{
@@ -221,7 +221,7 @@ static const char *
dlang_attributes (string *decl, const char *mangled)
{
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
while (*mangled == 'N')
{
@@ -280,7 +280,7 @@ dlang_function_type (string *decl, const char *mangled)
size_t szattr, szargs, sztype;
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
/* The order of the mangled string is:
CallConvention FuncAttrs Arguments ArgClose Type
@@ -380,7 +380,7 @@ static const char *
dlang_type (string *decl, const char *mangled)
{
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
switch (*mangled)
{
@@ -600,7 +600,7 @@ static const char *
dlang_identifier (string *decl, const char *mangled)
{
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
if (ISDIGIT (*mangled))
{
@@ -1061,7 +1061,7 @@ static const char *
dlang_value (string *decl, const char *mangled, const char *name, char type)
{
if (mangled == NULL || *mangled == '\0')
- return mangled;
+ return NULL;
switch (*mangled)
{