https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111922
--- Comment #9 from Andrew Macleod <amacleod at redhat dot com> --- (In reply to Jakub Jelinek from comment #8) > Well, in this case the user explicitly told compiler not to do that by not > using a prototype and syntax which doesn't provide one from the definition. > It is like using > int f1 (struct C *x, struct A *y) > { > ... > } > definition in one TU, and > int f1 (int, int); > prototype and > f1 (0, ~x) > call in another one + using LTO. What I meant is how to do decide if the > param_type vs. operand_type mismatch is ok or not. I vote we do nothing extra for those clowns! Just return VARYING for a range :-) it seems like the safest thing to do?