This is the mail archive of the
mailing list for the GCC project.
Re: [patch]: cleanup more builtins 1/5-5/5
- From: Roger Sayle <roger at eyesopen dot com>
- To: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 2 Oct 2004 14:59:34 -0600 (MDT)
- Subject: Re: [patch]: cleanup more builtins 1/5-5/5
On Fri, 1 Oct 2004, Kaveh R. Ghazi wrote:
> Ok for mainline?
Parts 1 (memcmp), 4 (strcmp) and 5 (strncmp) are OK for mainline.
For parts 2 (memcpy) and 3 (memmove), I think I'd prefer that the
expand_builtin_foo functions were changed to take an "exp", instead
of your current proposal to change the fold_builtin_foo to take a
My reason for this small change, is that I believe its a reasonable
goal to have "fold" guarantee that the type of it's result is always
the same as the type of it's argument. For memcpy and memmove, which
return a pointer-type result, I think the current fold_builtin_foo
practice of converting the result to TREE_TYPE (exp) is slightly safer
than always converting the result to ptr_type_mode. On some non-POSIX
platforms, the system headers may prototype these functions as "char*",
or "unsigned char*" (instead of "void*", which are considered close
enough for GCC to continue to fold/expand the builtins.
I appreciate we're not exactly consistent with these semantics at the
moment, but your patches 2/5 and 3/5 move us slightly further away
from the ideal.
I hope this sounds acceptable?