This past week I have been looking into type mismatch in simple cases in GCC. These simple cases include non compatible types on the two sides of the MODIFY_EXPR and comparisons. All the bugs I have found so far have been filed. They are all listed
under the meta-bug, PR 22368.
The summary is that all languages have problems.
Here is the list of the bugs:
Ada:            22328^* 22381^  22383^  22418   22419   22420
C:                      22371
C++:                    22358^* 22369   22374   22434&  22451   22487  22494
middle-end:     22370   22372   22373   22398&*
java:           22460^
objc:           22474^
fortran:                22375(questionable if this is fortran or fold_builtins 
bug)

Ones marked with * have a patch. Ones marked with ^ block bootstrap with the extra checking. Ones marked with & cause regression noticeable other places.

All of the above bugs have a small testcase for the type mismatch.

It would be nice if someone from the language/middle-end maintainer could look into the bugs listed above and try to fix them for stage1 of 4.2. I know that the Ada folks are looking into theirs already, most of theirs cannot really cause any problems but I know at least one C++ one which compares between
an int and a long which are different sizes on LP64 targets.

The two patches in PR 22368 are used to find these type mismatches. In some cases
it is only detectable on LP64 targets.

Thanks,
Andrew Pinski

Reply via email to