Commit 4042d440 by Per Bothner

Use new flag TYPE_STRING_FLAG instead of STRING_TYPE.

From-SVN: r6570
parent 70b78a26
...@@ -1100,6 +1100,16 @@ dbxout_type (type, full, show_arg_types) ...@@ -1100,6 +1100,16 @@ dbxout_type (type, full, show_arg_types)
break; break;
case SET_TYPE: 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); putc ('S', asmfile);
CHARS (1); CHARS (1);
dbxout_type (TYPE_DOMAIN (type), 0, 0); dbxout_type (TYPE_DOMAIN (type), 0, 0);
...@@ -1110,6 +1120,13 @@ dbxout_type (type, full, show_arg_types) ...@@ -1110,6 +1120,13 @@ dbxout_type (type, full, show_arg_types)
for the index type of the array for the index type of the array
followed by a reference to the target-type. followed by a reference to the target-type.
ar1;0;N;M for a C array of type M and size N+1. */ 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); tem = TYPE_DOMAIN (type);
if (tem == NULL) if (tem == NULL)
fprintf (asmfile, "ar%d;0;-1;", fprintf (asmfile, "ar%d;0;-1;",
......
...@@ -1409,7 +1409,6 @@ type_is_fundamental (type) ...@@ -1409,7 +1409,6 @@ type_is_fundamental (type)
case METHOD_TYPE: case METHOD_TYPE:
case POINTER_TYPE: case POINTER_TYPE:
case REFERENCE_TYPE: case REFERENCE_TYPE:
case STRING_TYPE:
case FILE_TYPE: case FILE_TYPE:
case OFFSET_TYPE: case OFFSET_TYPE:
case LANG_TYPE: case LANG_TYPE:
...@@ -4003,11 +4002,6 @@ output_type (type, containing_scope) ...@@ -4003,11 +4002,6 @@ output_type (type, containing_scope)
abort (); /* No way to represent these in Dwarf yet! */ abort (); /* No way to represent these in Dwarf yet! */
break; break;
case STRING_TYPE:
output_type (TREE_TYPE (type), containing_scope);
output_die (output_string_type_die, type);
break;
case FUNCTION_TYPE: case FUNCTION_TYPE:
/* Force out return type (in case it wasn't forced out already). */ /* Force out return type (in case it wasn't forced out already). */
output_type (TREE_TYPE (type), containing_scope); output_type (TREE_TYPE (type), containing_scope);
...@@ -4024,17 +4018,23 @@ output_type (type, containing_scope) ...@@ -4024,17 +4018,23 @@ output_type (type, containing_scope)
end_sibling_chain (); end_sibling_chain ();
break; break;
case ARRAY_TYPE: case ARRAY_TYPE:
{ if (TYPE_STRING_FLAG (type) && TREE_CODE(TREE_TYPE(type)) == CHAR_TYPE)
register tree element_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); element_type = TREE_TYPE (type);
while (TREE_CODE (element_type) == ARRAY_TYPE) while (TREE_CODE (element_type) == ARRAY_TYPE)
element_type = TREE_TYPE (element_type); element_type = TREE_TYPE (element_type);
output_type (element_type, containing_scope); output_type (element_type, containing_scope);
output_die (output_array_type_die, type); output_die (output_array_type_die, type);
} }
break; break;
case ENUMERAL_TYPE: case ENUMERAL_TYPE:
......
...@@ -7004,9 +7004,12 @@ expand_builtin (exp, target, subtarget, mode, ignore) ...@@ -7004,9 +7004,12 @@ expand_builtin (exp, target, subtarget, mode, ignore)
if (code == UNION_TYPE || code == QUAL_UNION_TYPE) if (code == UNION_TYPE || code == QUAL_UNION_TYPE)
return GEN_INT (union_type_class); return GEN_INT (union_type_class);
if (code == ARRAY_TYPE) if (code == ARRAY_TYPE)
return GEN_INT (array_type_class); {
if (code == STRING_TYPE) if (TYPE_STRING_FLAG (type))
return GEN_INT (string_type_class); return GEN_INT (string_type_class);
else
return GEN_INT (array_type_class);
}
if (code == SET_TYPE) if (code == SET_TYPE)
return GEN_INT (set_type_class); return GEN_INT (set_type_class);
if (code == FILE_TYPE) if (code == FILE_TYPE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment