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

Reply via email to