+ case TYPE_CODE_FLAGS:
+ {
+ struct type_print_options local_flags = *flags;
+
+ local_flags.local_typedefs = NULL;
+
+ c_type_print_modifier (type, stream, 0, 1, language);
+ fprintf_filtered (stream, "flag ");
+ print_name_maybe_canonical (type->name (), flags, stream);
+ if (show > 0)
+ {
+ fputs_filtered (" ", stream);
+ fprintf_filtered (stream, "{\n");
+ if (type->num_fields () == 0)
+ {
+ if (TYPE_STUB (type))
+ fprintfi_filtered (level + 4, stream,
+ _("%p[<incomplete type>%p]\n"),
+ metadata_style.style ().ptr (), nullptr);
+ else
+ fprintfi_filtered (level + 4, stream,
+ _("%p[<no data fields>%p]\n"),
+ metadata_style.style ().ptr (), nullptr);
+ }
+ len = type->num_fields ();
+ for (i = 0; i < len; i++)
+ {
+ QUIT;
+ print_spaces_filtered (level + 4, stream);
+ /* We pass "show" here and not "show - 1" to get enum types
+ printed. There's no other way to see them. */
+ c_print_type_1 (TYPE_FIELD_TYPE (type, i),
+ TYPE_FIELD_NAME (type, i),
+ stream, show, level + 4,
+ language, &local_flags, podata);
+ fprintf_filtered (stream, " @%s",
+ plongest (TYPE_FIELD_BITPOS (type, i)));
+ if (TYPE_FIELD_BITSIZE (type, i) > 1)
+ {
+ fprintf_filtered (stream, "-%s",
+ plongest (TYPE_FIELD_BITPOS (type, i)
+ + TYPE_FIELD_BITSIZE (type, i)
+ - 1));
+ }
+ fprintf_filtered (stream, ";\n");
+ }
+ fprintfi_filtered (level, stream, "}");
+ }
+ }
+ break;
+