diff options
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/call.c | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 38e70fb..b650f97 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com> + + * call.c (convert_harshness): Add QUAL_CODE when we're faced with + const vs non-const for void conversions. + Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com> * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 6b0f63b..765e8fe 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -523,7 +523,17 @@ convert_harshness (type, parmtype, parm) h.distance = CLASSTYPE_MAX_DEPTH (ttr)+1; return h; } + h.code = penalty ? STD_CODE : PROMO_CODE; + /* Catch things like `const char *' -> `const void *' + vs `const char *' -> `void *'. */ + if (ttl != ttr) + { + tree tmp1 = TREE_TYPE (type), tmp2 = TREE_TYPE (parmtype); + if ((TYPE_READONLY (tmp1) != TREE_READONLY (tmp2)) + || (TYPE_VOLATILE (tmp1) != TYPE_VOLATILE (tmp2))) + h.code |= QUAL_CODE; + } return h; } |