(layout_type): Use POINTER_SIZE, instead of width of Pmode, when

appropriate.

From-SVN: r7275
This commit is contained in:
Richard Kenner 1994-05-11 16:26:29 -04:00
parent 6d100794d0
commit 13275056a7

View File

@ -702,23 +702,24 @@ layout_type (type)
break;
case OFFSET_TYPE:
TYPE_SIZE (type) = size_int (GET_MODE_BITSIZE (Pmode));
TYPE_MODE (type) = Pmode;
TYPE_SIZE (type) = size_int (POINTER_SIZE);
TYPE_MODE (type) = mode_for_size (POINTER_SIZE,
GET_MODE_CLASS (Pmode), 0);
break;
case FUNCTION_TYPE:
case METHOD_TYPE:
TYPE_MODE (type) = mode_for_size (2 * GET_MODE_BITSIZE (Pmode),
MODE_INT, 0);
TYPE_SIZE (type) = size_int (GET_MODE_BITSIZE (TYPE_MODE (type)));
TYPE_MODE (type) = mode_for_size (2 * POINTER_SIZE, MODE_INT, 0);
TYPE_SIZE (type) = size_int (2 * POINTER_SIZE);
break;
case POINTER_TYPE:
case REFERENCE_TYPE:
TYPE_MODE (type) = Pmode;
TYPE_SIZE (type) = size_int (GET_MODE_BITSIZE (TYPE_MODE (type)));
TYPE_MODE (type) = mode_for_size (POINTER_SIZE,
GET_MODE_CLASS (Pmode), 0);
TYPE_SIZE (type) = size_int (POINTER_SIZE);
TREE_UNSIGNED (type) = 1;
TYPE_PRECISION (type) = GET_MODE_BITSIZE (TYPE_MODE (type));
TYPE_PRECISION (type) = POINTER_SIZE;
break;
case ARRAY_TYPE: