On 05/13/2015 02:51 AM, Iain Buclaw wrote:
If a symbol that has so far been valid abruptly ends then we will want
to fail the process rather than silently succeed.
---
libiberty/ChangeLog
2015-05-13 Iain Buclaw <ibuc...@gdcproject.org>
* d-demangle.c (dlang_call_convention): Return NULL if have reached the
end of the symbol, but expected more.
(dlang_attributes): Likewise.
(dlang_function_type): Likewise.
(dlang_type): Likewise.
(dlang_identifier): Likewise.
(dlang_value): Likewise.
I spot checked various callers of these functions that not return NULL
and they looked reasonable. Though I was a bit concerned about the
callers of dlang_type, dlang_value and dlang_identifier.
In those cases we'll often still do the string_append, string_setlength
and other calls in the caller of dlang_{value,type,identifier}. I'm
assuming that's safe (the error still appears to be bubbling up properly).
If you can confirm that we're OK in those cases, then this is OK for the
trunk.
jeff