From deeeba559bd0c18e06dba19f44571ee8a218fcdb Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sat, 25 Nov 2017 00:33:05 +0000 Subject: Use TOLOWER in SYMBOL_HASH_NEXT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The support for setting breakpoint in functions with ABI tags patch will add a use of SYMBOL_HASH_NEXT in cp-support.c, which fails to compile with: src/gdb/cp-support.c:38:0: src/gdb/cp-support.c: In function ‘unsigned int cp_search_name_hash(const char*)’: src/gdb/../include/safe-ctype.h:148:20: error: ‘do_not_use_tolower_with_safe_ctype’ was not declared in this scope #define tolower(c) do_not_use_tolower_with_safe_ctype ^ src/gdb/minsyms.h:174:18: note: in expansion of macro ‘tolower’ ((hash) * 67 + tolower ((unsigned char) (c)) - 113) ^ src/gdb/cp-support.c:1677:14: note: in expansion of macro ‘SYMBOL_HASH_NEXT’ hash = SYMBOL_HASH_NEXT (hash, *string); ^ This fixes the problem before it happens. I was somewhat worried about whether this might have an impact with languages that are case insensitive, but I convinced myself that it doesn't. As bonus, this improves GDB's minsym interning performance a bit (3%-10%). See . gdb/ChangeLog: 2017-11-25 Pedro Alves * dictionary.c: Include "safe-ctype.h". * minsyms.c: Include "safe-ctype.h". * minsyms.c (SYMBOL_HASH_NEXT): Use TOLOWER instead of tolower. --- gdb/minsyms.c | 1 + 1 file changed, 1 insertion(+) (limited to 'gdb/minsyms.c') diff --git a/gdb/minsyms.c b/gdb/minsyms.c index a0d3bd5a717..4898da17aa7 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -52,6 +52,7 @@ #include "cli/cli-utils.h" #include "symbol.h" #include +#include "safe-ctype.h" /* See minsyms.h. */ -- cgit v1.2.1