On 08.07.2015 13:55, Ian Lance Taylor wrote: > I don't know of anybody who actually uses the DMGL_TYPES support. I > don't know why anybody would. > > Ian Thanks for pointing that out. I updated the testcases, so that now they don't depend on DMGL_TYPES being used. > But better still is to consider the larger context. We want the > demangler to work the same on all hosts, if at all possible. > d_identifier is called exactly once. Change it to take a parameter of > type long. Don't worry about changing d_source_name. Fixed. > Then look at the fact that d_number does not check for overflow. We > should consider changing d_number to limit itself to 32-bit integers, > and to return an error indication on overflow. From a quick glance I > don't see any need for the demangler to support numbers larger than 32 > bits. I think it's OK if we fail to demangle symbol names that are > more than 2 billion characters long. OK, but I think it'll be better to fix that in a separate patch. The attached patch includes the changes mentioned above, there is also a small change: I moved the comment for CHECK_DEMANGLER macro to cp-demangle.c (it already contains a comment for other similar macros) and replaced __builtin_abort() with abort(). For some reason I thought that it might need an additional #include, but in reality libiberty (and the demangler too) already use abort(). The changelog is also attached. OK for trunk after regtest? -- Regards, Mikhail Maltsev