aboutsummaryrefslogtreecommitdiff
path: root/gdb/dictionary.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-11-25 00:33:05 +0000
committerPedro Alves <palves@redhat.com>2017-11-25 00:33:05 +0000
commitdeeeba559bd0c18e06dba19f44571ee8a218fcdb (patch)
tree5b93948a041dad34f0fee70953d017481359a4bd /gdb/dictionary.c
parenta81aaca0578ee91ce1cee56c0a31e26c2a5ef581 (diff)
downloadgdb-deeeba559bd0c18e06dba19f44571ee8a218fcdb.zip
gdb-deeeba559bd0c18e06dba19f44571ee8a218fcdb.tar.gz
gdb-deeeba559bd0c18e06dba19f44571ee8a218fcdb.tar.bz2
Use TOLOWER in SYMBOL_HASH_NEXT
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 <https://sourceware.org/ml/gdb/2017-11/msg00021.html>. gdb/ChangeLog: 2017-11-25 Pedro Alves <palves@redhat.com> * dictionary.c: Include "safe-ctype.h". * minsyms.c: Include "safe-ctype.h". * minsyms.c (SYMBOL_HASH_NEXT): Use TOLOWER instead of tolower.
Diffstat (limited to 'gdb/dictionary.c')
-rw-r--r--gdb/dictionary.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdb/dictionary.c b/gdb/dictionary.c
index fb30753..7d26efb 100644
--- a/gdb/dictionary.c
+++ b/gdb/dictionary.c
@@ -26,6 +26,7 @@
#include "symtab.h"
#include "buildsym.h"
#include "dictionary.h"
+#include "safe-ctype.h"
/* This file implements dictionaries, which are tables that associate
symbols to names. They are represented by an opaque type 'struct