I've been looking a bit at improving our detection of overflow when
allocating arrays (PR 28105), and I noticed that the definition of
size_t is a bit messed up. sizetype is properly set to an unsigned
type of the right size, but the expression is calculated in a bit
needlessly complicated way. However, size_type_node is an alias for
gfc_array_index_type which is a signed type.
However, this patch does introduce a small regression (which the
testsuite doesn't test for), namely since size_type_node is now
changed to an unsigned type, the overflow test which checks for size<
0 when allocating arrays is optimized away.