- /* FIXME, we should not ever have to print one of these yet. */
- fprintf_filtered (stream, "<range type>");
- break;
-
- case TYPE_CODE_BOOL:
- format = format ? format : output_format;
- if (format)
- print_scalar_formatted (valaddr, type, format, 0, stream);
- else
- {
- val = 0;
- switch (TYPE_LENGTH (type))
- {
- case 1:
- val = unpack_long (builtin_type_f_logical_s1, valaddr);
- break;
-
- case 2:
- val = unpack_long (builtin_type_f_logical_s2, valaddr);
- break;
-
- case 4:
- val = unpack_long (builtin_type_f_logical, valaddr);
- break;
-
- default:
- error ("Logicals of length %d bytes not supported",
- TYPE_LENGTH (type));
-
- }
-
- if (val == 0)
- fprintf_filtered (stream, ".FALSE.");
- else if (val == 1)
- fprintf_filtered (stream, ".TRUE.");
- else
- /* Not a legitimate logical type, print as an integer. */
- {
- /* Bash the type code temporarily. */
- TYPE_CODE (type) = TYPE_CODE_INT;
- f_val_print (type, valaddr, 0, address, stream, format,
- deref_ref, recurse, pretty);
- /* Restore the type code so later uses work as intended. */
- TYPE_CODE (type) = TYPE_CODE_BOOL;
- }
- }
- break;
-
- case TYPE_CODE_COMPLEX:
- switch (TYPE_LENGTH (type))
- {
- case 8:
- type = builtin_type_f_real;
- break;
- case 16:
- type = builtin_type_f_real_s8;
- break;
- case 32:
- type = builtin_type_f_real_s16;
- break;
- default:
- error ("Cannot print out complex*%d variables", TYPE_LENGTH (type));
- }
- fputs_filtered ("(", stream);
- print_floating (valaddr, type, stream);
- fputs_filtered (",", stream);
- print_floating (valaddr, type, stream);
- fputs_filtered (")", stream);
- break;
-