On 10/09/2017 06:30 PM, Bernd Edlinger wrote:
+/* Heuristic check if two parameter types can be considered ABI-equivalent. */ + +static bool +cxx_abi_equiv_type_p (tree t1, tree t2)
This name is too general for a function that is specifically for implementing a particular warning.
+ if (INTEGRAL_TYPE_P (t1) + && INTEGRAL_TYPE_P (t2) + && TYPE_PRECISION (t1) == TYPE_PRECISION (t2) + && (TYPE_UNSIGNED (t1) == TYPE_UNSIGNED (t2) + || TYPE_PRECISION (t1) >= TYPE_PRECISION (integer_type_node))) + return true;
This section needs a comment explaining what you're allowing and why.
+ else if (TYPE_PTRMEMFUNC_P (type) && TYPE_PTRMEMFUNC_P (intype)) + { + if ((complain & tf_warning) + && !same_type_p (type, intype))
Why not use cxx_safe_function_type_cast_p here, too? TYPE_PTRMEMFUNC_FN_TYPE will be helpful.
Jason