> * c-family/c-common.c (sync_resolve_params, sync_resolve_return): Only
> tweak parameters that are the same type size.
> (resolve_overloaded_builtin): Use new param for __sync_mem builtins.
>
> * testsuite/gcc.dg/sync-mem-param.c: New testcase to check correct
> number of parameters on a sample __sync_mem builtin.
Ok, except,
> + /* __sync_mem routines are not variadic. */
> + if (!orig_format && VEC_length (tree, params) != parmnum + 1)
> + {
> + error ("too many arguments to function %qE", orig_function);
> + return false;
> + }
I shouldn't think you need this? Surely because the function type
is non-variadic the c front end would diagnose this.
r~