Use new flag TYPE_STRING_FLAG instead of STRING_TYPE.

From-SVN: r6570
This commit is contained in:
Per Bothner 1994-02-15 19:52:30 -08:00
parent 70b78a2622
commit 4042d44040
3 changed files with 38 additions and 18 deletions

View File

@ -1100,6 +1100,16 @@ dbxout_type (type, full, show_arg_types)
break;
case SET_TYPE:
if (use_gnu_debug_info_extensions)
{
have_used_extensions = 1;
fprintf (asmfile, "@s%d;",
BITS_PER_UNIT * int_size_in_bytes (type));
/* Check if a bitstring type, which in Chill is
different from a [power]set. */
if (TYPE_STRING_FLAG (type))
fprintf (asmfile, "@S;");
}
putc ('S', asmfile);
CHARS (1);
dbxout_type (TYPE_DOMAIN (type), 0, 0);
@ -1110,6 +1120,13 @@ dbxout_type (type, full, show_arg_types)
for the index type of the array
followed by a reference to the target-type.
ar1;0;N;M for a C array of type M and size N+1. */
/* Check if a character string type, which in Chill is
different from an array of characters. */
if (TYPE_STRING_FLAG (type) && use_gnu_debug_info_extensions)
{
have_used_extensions = 1;
fprintf (asmfile, "@S;");
}
tem = TYPE_DOMAIN (type);
if (tem == NULL)
fprintf (asmfile, "ar%d;0;-1;",

View File

@ -1409,7 +1409,6 @@ type_is_fundamental (type)
case METHOD_TYPE:
case POINTER_TYPE:
case REFERENCE_TYPE:
case STRING_TYPE:
case FILE_TYPE:
case OFFSET_TYPE:
case LANG_TYPE:
@ -4003,11 +4002,6 @@ output_type (type, containing_scope)
abort (); /* No way to represent these in Dwarf yet! */
break;
case STRING_TYPE:
output_type (TREE_TYPE (type), containing_scope);
output_die (output_string_type_die, type);
break;
case FUNCTION_TYPE:
/* Force out return type (in case it wasn't forced out already). */
output_type (TREE_TYPE (type), containing_scope);
@ -4024,17 +4018,23 @@ output_type (type, containing_scope)
end_sibling_chain ();
break;
case ARRAY_TYPE:
{
register tree element_type;
case ARRAY_TYPE:
if (TYPE_STRING_FLAG (type) && TREE_CODE(TREE_TYPE(type)) == CHAR_TYPE)
{
output_type (TREE_TYPE (type), containing_scope);
output_die (output_string_type_die, type);
}
else
{
register tree element_type;
element_type = TREE_TYPE (type);
while (TREE_CODE (element_type) == ARRAY_TYPE)
element_type = TREE_TYPE (element_type);
element_type = TREE_TYPE (type);
while (TREE_CODE (element_type) == ARRAY_TYPE)
element_type = TREE_TYPE (element_type);
output_type (element_type, containing_scope);
output_die (output_array_type_die, type);
}
output_type (element_type, containing_scope);
output_die (output_array_type_die, type);
}
break;
case ENUMERAL_TYPE:

View File

@ -7004,9 +7004,12 @@ expand_builtin (exp, target, subtarget, mode, ignore)
if (code == UNION_TYPE || code == QUAL_UNION_TYPE)
return GEN_INT (union_type_class);
if (code == ARRAY_TYPE)
return GEN_INT (array_type_class);
if (code == STRING_TYPE)
return GEN_INT (string_type_class);
{
if (TYPE_STRING_FLAG (type))
return GEN_INT (string_type_class);
else
return GEN_INT (array_type_class);
}
if (code == SET_TYPE)
return GEN_INT (set_type_class);
if (code == FILE_TYPE)