This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: "maint print type" should print all the flag bits



Approved.

Fred Fish <fnf@ns1.ninemoons.com> writes:

> 
> The "maint print type" command does not print all the flag
> bits.  It also should to use the defined macros to test for
> the bits.
> 
> -Fred
> 
> 2001-12-09  Fred Fish  <fnf@redhat.com>
> 
> 	* gdbtypes.c (TYPE_FLAG_UNSIGNED, TYPE_FLAG_STUB): Use
> 	TYPE_UNSIGNED and TYPE_NOSIGN to determine when to print these
> 	rather than testing the bits directly.
> 	(TYPE_FLAG_NOSIGN, TYPE_FLAG_TARGET_STUB, TYPE_FLAG_STATIC,
> 	TYPE_FLAG_CONST, TYPE_FLAG_VOLATILE, TYPE_FLAG_PROTOTYPED,
> 	TYPE_FLAG_INCOMPLETE, TYPE_FLAG_CODE_SPACE, TYPE_FLAG_DATA_SPACE,
> 	TYPE_FLAG_VARARGS): Test for and print these bits as well.
> 
> Index: gdbtypes.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/gdbtypes.c,v
> retrieving revision 1.29
> diff -u -p -r1.29 gdbtypes.c
> --- gdbtypes.c	2001/12/07 22:11:51	1.29
> +++ gdbtypes.c	2001/12/09 19:08:25
> @@ -2846,14 +2844,54 @@ recursive_dump_type (struct type *type, 
>    gdb_print_host_address (TYPE_REFERENCE_TYPE (type), gdb_stdout);
>    printf_filtered ("\n");
>    printfi_filtered (spaces, "flags 0x%x", TYPE_FLAGS (type));
> -  if (TYPE_FLAGS (type) & TYPE_FLAG_UNSIGNED)
> +  if (TYPE_UNSIGNED (type))
>      {
>        puts_filtered (" TYPE_FLAG_UNSIGNED");
>      }
> -  if (TYPE_FLAGS (type) & TYPE_FLAG_STUB)
> +  if (TYPE_NOSIGN (type))
>      {
> +      puts_filtered (" TYPE_FLAG_NOSIGN");
> +    }
> +  if (TYPE_STUB (type))
> +    {
>        puts_filtered (" TYPE_FLAG_STUB");
>      }
> +  if (TYPE_TARGET_STUB (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_TARGET_STUB");
> +    }
> +  if (TYPE_STATIC (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_STATIC");
> +    }
> +  if (TYPE_CONST (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_CONST");
> +    }
> +  if (TYPE_VOLATILE (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_VOLATILE");
> +    }
> +  if (TYPE_PROTOTYPED (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_PROTOTYPED");
> +    }
> +  if (TYPE_INCOMPLETE (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_INCOMPLETE");
> +    }
> +  if (TYPE_CODE_SPACE (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_CODE_SPACE");
> +    }
> +  if (TYPE_DATA_SPACE (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_DATA_SPACE");
> +    }
> +  if (TYPE_VARARGS (type))
> +    {
> +      puts_filtered (" TYPE_FLAG_VARARGS");
> +    }
>    puts_filtered ("\n");
>    printfi_filtered (spaces, "nfields %d ", TYPE_NFIELDS (type));
>    gdb_print_host_address (TYPE_FIELDS (type), gdb_stdout);
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]