aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2003-08-08 20:23:06 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2003-08-08 20:23:06 +0000
commit7bb3fbbb4dd015ad83f96871e15124f896761284 (patch)
treedc8f4bbb708356e7d8cc6e1931e9f1b46e3866b1 /gcc/tree.h
parent32247ce9e4968e0a7d48efd79b1853f77ad2e598 (diff)
downloadgcc-7bb3fbbb4dd015ad83f96871e15124f896761284.zip
gcc-7bb3fbbb4dd015ad83f96871e15124f896761284.tar.gz
gcc-7bb3fbbb4dd015ad83f96871e15124f896761284.tar.bz2
* tree.h (get_identifier) Define a macro form of get_identifier
that calls get_identifier_with_length when the string is constant. (get_identifier_with_length): Change type of second argument to size_t in prototype. * stringpool.c (get_identifier): Undefine the macro before giving the function definition. (get_identifier_with_length): Change type of second argument to size_t in function definition. * hashtable.c (calc_hash): Change type of second argument to size_t. (ht_lookup): Change type of third argument to size_t. Reorganize to speed-up the cases where the hash table slot is empty, or the first probe matches (i.e. there isn't a collision). * hashtable.h (ht_lookup): Adjust function prototype. From-SVN: r70256
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index cac3efc..69e75e1 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2050,10 +2050,18 @@ extern tree make_tree_vec (int);
extern tree get_identifier (const char *);
+#if GCC_VERSION >= 3000
+#define get_identifier(str) \
+ (__builtin_constant_p (str) \
+ ? get_identifier_with_length ((str), strlen (str)) \
+ : get_identifier (str))
+#endif
+
+
/* Identical to get_identifier, except that the length is assumed
known. */
-extern tree get_identifier_with_length (const char *, unsigned int);
+extern tree get_identifier_with_length (const char *, size_t);
/* If an identifier with the name TEXT (a null-terminated string) has
previously been referred to, return that node; otherwise return