> * 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~