diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2015-05-16 16:49:25 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2015-05-16 16:49:25 +0000 |
commit | 76b41cad1cdce692cd8756c98dd963a29b770a77 (patch) | |
tree | d9dbbe92e857ece9d49d7c5371ef1cc9e42ca222 | |
parent | eb058b7de655251d88eee5ecce38de008e6eb90d (diff) | |
download | gcc-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/ChangeLog | 10 | ||||
-rw-r--r-- | libiberty/d-demangle.c | 12 |
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) { |