- {
- val = extract_unsigned_integer (valaddr,
- TYPE_LENGTH (type), byte_order);
- 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, recurse, options);
- /* Restore the type code so later uses work as intended. */
- TYPE_CODE (type) = TYPE_CODE_BOOL;
- }
- }
- break;
-
- case TYPE_CODE_COMPLEX:
- type = TYPE_TARGET_TYPE (type);
- fputs_filtered ("(", stream);
- print_floating (valaddr, type, stream);
- fputs_filtered (",", stream);
- print_floating (valaddr + TYPE_LENGTH (type), type, stream);
- fputs_filtered (")", stream);
- break;
-
- case TYPE_CODE_UNDEF:
- /* This happens (without TYPE_FLAG_STUB set) on systems which don't use
- dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
- and no complete type for struct foo in that file. */
- fprintf_filtered (stream, "<incomplete type>");