------- Comment #2 from kkojima at gcc dot gnu dot org 2006-01-02 05:13 ------- It looks an SH target specific problem. CONSTRAINT_LEN in config/sh/sh.h of 3.4/4.0 checks the wrong constraints and returns -1 for them. This causes an infinite loop in parse_input_constraint whick has a loop like:
for (j = 0; j < c_len; j += CONSTRAINT_LEN (constraint[j], constraint+j)) ... for the testcase in #1. It seems that the above check is to confirm the validity of the constraints which were introduced when some SH single character constraints were renamed to multiple character ones and that check was removed on 4.1/trunk but it's simply forgotten to remove on the older branches. I'll propose a patch after the usual tests on branches. It will take several days. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25613