Be more tolerable in reporting of signed/unsigned char pointer compatibility in check_assignment_types.
@@ -7082,7 +7082,10 @@ static void check_assignment_types (c2m_ctx_t c2m_ctx, struct type *left, struct
: code == N_RETURN
? "incompatible pointer types of return-expr and function result"
: "incompatible pointer types in assignment");
- (c2m_options->pedantic_p ? error : warning) (c2m_ctx, POS (assign_node), "%s", msg);
+ int sign_diff_p = char_type_p (left->u.ptr_type) && char_type_p (right->u.ptr_type);
+ if (!sign_diff_p || c2m_options->pedantic_p)
+ (c2m_options->pedantic_p && !sign_diff_p ? error : warning) (c2m_ctx, POS (assign_node),
+ "%s", msg);
} else if (integer_type_p (right)) {
msg
= (code == N_CALL ? "using integer without cast for pointer type parameter"
