Hi Andrew,
Andrew MacLeod via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
This fixes the second test case in pr 97360.
There are a few places in the ranger where we sanity check the types of
the ranges. We were using types_compatible_p() but thats not really
acccurate as gimple allows types which are useless_type_conversion_p() in
only one direction, whereas types_compatible_p() requires casts in both
directions to be useless_type_conversion_p().
And, since its only a sanity check, ranges really only require that the
precision and sign be the same, so its a faster check anyway.
bootstrapped on x86_64-pc-linux-gnu, no regressions, pushed.
Just as a heads up ...
This regresses ACATs C35507N on at least all X86 Darwin I’ve tried.
Both 32 and 64Bit hosts fail (not had the chance to test on power darwin
yet, because that’s got bootstrap issues).
The sympom is :
,.,. C35507N ACATS 2.5 20-10-22 02:23:12
---- C35507N CHECK THAT THE ATTRIBUTES 'POS' AND 'VAL' YIELD THE CORRECT
RESULTS WHEN THE PREFIX IS A FORMAL DISCRETE TYPE WHOSE
ACTUAL PARAMETER IS A CHARACTER TYPE WITH AN ENUMERATION
REPRESENTATION CLAUSE.
* C35507N INCORRECT VALUE FOR CHAR'POS OF 'A'.
* C35507N INCORRECT VALUE FOR CHAR'VAL OF CHARACTER IN POSITION - 1.
The last two lines repeat until the test times out.
====
... acats are not the easiest to debug :/ .. will try to get something more
constructive to
put in a PR.
Iain