re PR bootstrap/59934 (Bootstrap fail since r206941: expmed.h:252:33: error: array subscript is above array bounds)

PR bootstrap/59934
        * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
        know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
        reached.

From-SVN: r207137
This commit is contained in:
Jakub Jelinek 2014-01-27 17:33:39 +01:00 committed by Jeff Law
parent 48b08b187f
commit 904e5ccd59
2 changed files with 19 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2014-01-27 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/59934
* expmed.h (expmed_mode_index): Rework so that analysis and optimziers
know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
reached.
2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
* common/config/arm/arm-common.c

View File

@ -221,12 +221,21 @@ expmed_mode_index (enum machine_mode mode)
case MODE_INT:
return mode - MIN_MODE_INT;
case MODE_PARTIAL_INT:
return mode - MIN_MODE_PARTIAL_INT + NUM_MODE_INT;
/* If there are no partial integer modes, help the compiler
to figure out this will never happen. See PR59934. */
if (MIN_MODE_PARTIAL_INT != VOIDmode)
return mode - MIN_MODE_PARTIAL_INT + NUM_MODE_INT;
break;
case MODE_VECTOR_INT:
return mode - MIN_MODE_VECTOR_INT + NUM_MODE_IP_INT;
/* If there are no vector integer modes, help the compiler
to figure out this will never happen. See PR59934. */
if (MIN_MODE_VECTOR_INT != VOIDmode)
return mode - MIN_MODE_VECTOR_INT + NUM_MODE_IP_INT;
break;
default:
gcc_unreachable ();
break;
}
gcc_unreachable ();
}
/* Return a pointer to a boolean contained in EOC indicating whether