* features/arm-with-iwmmxt.c: Regenerate.
* features/arm-with-m-fpa-layout.c: Likewise.
* features/arm-with-m.c: Likewise.
* features/arm-with-neon.c: Likewise.
* features/arm-with-vfpv2.c: Likewise.
* features/arm-with-vfpv3.c: Likewise.
* features/mips-dsp-linux.c: Likewise.
* features/mips-linux.c: Likewise.
* features/mips64-dsp-linux.c: Likewise.
* features/mips64-linux.c: Likewise.
* features/s390-linux32.c: Likewise.
* features/s390-linux32v1.c: Likewise.
* features/s390-linux32v2.c: Likewise.
* features/s390-linux64.c: Likewise.
* features/s390-linux64v1.c: Likewise.
* features/s390-linux64v2.c: Likewise.
* features/s390x-linux64.c: Likewise.
* features/s390x-linux64v1.c: Likewise.
* features/s390x-linux64v2.c: Likewise.
* features/tic6x-c62x-linux.c: Likewise.
* features/tic6x-c62x.c: Likewise.
* features/tic6x-c64x-linux.c: Likewise.
* features/tic6x-c64x.c: Likewise.
* features/tic6x-c64xp-linux.c: Likewise.
* features/tic6x-c64xp.c: Likewise.
* target-descriptions.c: Only generate `field_type' and `type'
variables when needed.
+2012-04-25 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * features/arm-with-iwmmxt.c: Regenerate.
+ * features/arm-with-m-fpa-layout.c: Likewise.
+ * features/arm-with-m.c: Likewise.
+ * features/arm-with-neon.c: Likewise.
+ * features/arm-with-vfpv2.c: Likewise.
+ * features/arm-with-vfpv3.c: Likewise.
+ * features/mips-dsp-linux.c: Likewise.
+ * features/mips-linux.c: Likewise.
+ * features/mips64-dsp-linux.c: Likewise.
+ * features/mips64-linux.c: Likewise.
+ * features/s390-linux32.c: Likewise.
+ * features/s390-linux32v1.c: Likewise.
+ * features/s390-linux32v2.c: Likewise.
+ * features/s390-linux64.c: Likewise.
+ * features/s390-linux64v1.c: Likewise.
+ * features/s390-linux64v2.c: Likewise.
+ * features/s390x-linux64.c: Likewise.
+ * features/s390x-linux64v1.c: Likewise.
+ * features/s390x-linux64v2.c: Likewise.
+ * features/tic6x-c62x-linux.c: Likewise.
+ * features/tic6x-c62x.c: Likewise.
+ * features/tic6x-c64x-linux.c: Likewise.
+ * features/tic6x-c64x.c: Likewise.
+ * features/tic6x-c64xp-linux.c: Likewise.
+ * features/tic6x-c64xp.c: Likewise.
+ * target-descriptions.c: Only generate `field_type' and `type'
+ variables when needed.
+
2012-04-25 Fredrik Hederstierna <fredrikh.hederstierna@securitas-direct.com>
* cli/cli-cmds.c (cd_command): Use memmove instead of strcpy.
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
+ struct tdesc_type *field_type;
+ struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
- struct tdesc_type *field_type, *type;
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
struct tdesc_type_field *f;
struct tdesc_type_flag *flag;
int ix, ix2, ix3;
+ int printed_field_type = 0;
/* Use the global target-supplied description, not the current
architecture's. This lets a GDB for one architecture generate C
printf_unfiltered
(" struct target_desc *result = allocate_target_description ();\n");
printf_unfiltered (" struct tdesc_feature *feature;\n");
- printf_unfiltered (" struct tdesc_type *field_type, *type;\n");
+
+ /* Now we do some "filtering" in order to know which variables to
+ declare. This is needed because otherwise we would declare unused
+ variables `field_type' and `type'. */
+ for (ix = 0;
+ VEC_iterate (tdesc_feature_p, tdesc->features, ix, feature);
+ ix++)
+ {
+ int printed_desc_type = 0;
+
+ for (ix2 = 0;
+ VEC_iterate (tdesc_type_p, feature->types, ix2, type);
+ ix2++)
+ {
+ if (!printed_field_type)
+ {
+ printf_unfiltered (" struct tdesc_type *field_type;\n");
+ printed_field_type = 1;
+ }
+
+ if (type->kind == TDESC_TYPE_UNION
+ && VEC_length (tdesc_type_field, type->u.u.fields) > 0)
+ {
+ printf_unfiltered (" struct tdesc_type *type;\n");
+ printed_desc_type = 1;
+ break;
+ }
+ }
+
+ if (printed_desc_type)
+ break;
+ }
+
printf_unfiltered ("\n");
if (tdesc_architecture (tdesc) != NULL)