projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add implicit casts to conditional preds
[cparser]
/
type_hash.c
diff --git
a/type_hash.c
b/type_hash.c
index
be14de6
..
4168dde
100644
(file)
--- a/
type_hash.c
+++ b/
type_hash.c
@@
-29,7
+29,7
@@
static unsigned hash_ptr(const void *ptr)
static unsigned hash_atomic_type(const atomic_type_t *type)
{
unsigned some_prime = 27644437;
static unsigned hash_atomic_type(const atomic_type_t *type)
{
unsigned some_prime = 27644437;
- unsigned result = type->a
type
* some_prime;
+ unsigned result = type->a
kind
* some_prime;
return result;
}
return result;
}
@@
-93,6
+93,8
@@
static unsigned hash_type(const type_t *type)
case TYPE_INVALID:
panic("internalizing void or invalid types not possible");
return 0;
case TYPE_INVALID:
panic("internalizing void or invalid types not possible");
return 0;
+ case TYPE_ERROR:
+ return 0;
case TYPE_ATOMIC:
hash = hash_atomic_type(&type->atomic);
break;
case TYPE_ATOMIC:
hash = hash_atomic_type(&type->atomic);
break;
@@
-135,7
+137,7
@@
static unsigned hash_type(const type_t *type)
static bool atomic_types_equal(const atomic_type_t *type1,
const atomic_type_t *type2)
{
static bool atomic_types_equal(const atomic_type_t *type1,
const atomic_type_t *type2)
{
- return type1->a
type == type2->atype
;
+ return type1->a
kind == type2->akind
;
}
static bool function_types_equal(const function_type_t *type1,
}
static bool function_types_equal(const function_type_t *type1,
@@
-239,6
+241,9
@@
static bool types_equal(const type_t *type1, const type_t *type2)
return false;
switch(type1->kind) {
return false;
switch(type1->kind) {
+ case TYPE_ERROR:
+ /* Hmm, the error type is never equal */
+ return false;
case TYPE_INVALID:
return false;
case TYPE_ATOMIC:
case TYPE_INVALID:
return false;
case TYPE_ATOMIC: