summaryrefslogtreecommitdiff
path: root/bfd/elf-attrs.c
diff options
context:
space:
mode:
authorAndrew Stubbs <andrew.stubbs@st.com>2009-01-19 11:55:35 +0000
committerAndrew Stubbs <andrew.stubbs@st.com>2009-01-19 11:55:35 +0000
commit4e4dd2517c1b3816f55b8e36cee1b25c5ae2cb50 (patch)
tree5c84d96c2b4a2bff736ff4b5de9105a0ab36e30c /bfd/elf-attrs.c
parent6ff38c5467c4350ee202215949c0fe0d637d433a (diff)
downloadbinutils-redhat-4e4dd2517c1b3816f55b8e36cee1b25c5ae2cb50.tar.gz
2009-01-19 Andrew Stubbs <ams@codesourcery.com>
bfd/ * elf-attrs.c (is_default_attr): Substitute magic numbers with macros. (obj_attr_size): Likewise. (write_obj_attribute): Likewise. (_bfd_elf_copy_obj_attributes): Likewise. (_bfd_elf_parse_attributes): Likewise. * elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define. (ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines. (ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines. (ATTR_TYPE_HAS_NO_DEFAULT): New define. * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers with macros.
Diffstat (limited to 'bfd/elf-attrs.c')
-rw-r--r--bfd/elf-attrs.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/bfd/elf-attrs.c b/bfd/elf-attrs.c
index dc2605669d..1e8076b743 100644
--- a/bfd/elf-attrs.c
+++ b/bfd/elf-attrs.c
@@ -43,11 +43,11 @@ uleb128_size (unsigned int i)
static bfd_boolean
is_default_attr (obj_attribute *attr)
{
- if ((attr->type & 1) && attr->i != 0)
+ if (ATTR_TYPE_HAS_INT_VAL (attr->type) && attr->i != 0)
return FALSE;
- if ((attr->type & 2) && attr->s && *attr->s)
+ if (ATTR_TYPE_HAS_STR_VAL (attr->type) && attr->s && *attr->s)
return FALSE;
- if (attr->type & 4)
+ if (ATTR_TYPE_HAS_NO_DEFAULT (attr->type))
return FALSE;
return TRUE;
@@ -63,9 +63,9 @@ obj_attr_size (int tag, obj_attribute *attr)
return 0;
size = uleb128_size (tag);
- if (attr->type & 1)
+ if (ATTR_TYPE_HAS_INT_VAL (attr->type))
size += uleb128_size (attr->i);
- if (attr->type & 2)
+ if (ATTR_TYPE_HAS_STR_VAL (attr->type))
size += strlen ((char *)attr->s) + 1;
return size;
}
@@ -151,9 +151,9 @@ write_obj_attribute (bfd_byte *p, int tag, obj_attribute *attr)
return p;
p = write_uleb128 (p, tag);
- if (attr->type & 1)
+ if (ATTR_TYPE_HAS_INT_VAL (attr->type))
p = write_uleb128 (p, attr->i);
- if (attr->type & 2)
+ if (ATTR_TYPE_HAS_STR_VAL (attr->type))
{
int len;
@@ -361,16 +361,16 @@ _bfd_elf_copy_obj_attributes (bfd *ibfd, bfd *obfd)
list = list->next)
{
in_attr = &list->attr;
- switch (in_attr->type)
+ switch (in_attr->type & (ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL))
{
- case 1:
+ case ATTR_TYPE_FLAG_INT_VAL:
bfd_elf_add_obj_attr_int (obfd, vendor, list->tag, in_attr->i);
break;
- case 2:
+ case ATTR_TYPE_FLAG_STR_VAL:
bfd_elf_add_obj_attr_string (obfd, vendor, list->tag,
in_attr->s);
break;
- case 3:
+ case ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL:
bfd_elf_add_obj_attr_int_string (obfd, vendor, list->tag,
in_attr->i, in_attr->s);
break;
@@ -489,21 +489,21 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr)
tag = read_unsigned_leb128 (abfd, p, &n);
p += n;
type = _bfd_elf_obj_attrs_arg_type (abfd, vendor, tag);
- switch (type & 3)
+ switch (type & (ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL))
{
- case 3:
+ case ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL:
val = read_unsigned_leb128 (abfd, p, &n);
p += n;
bfd_elf_add_obj_attr_int_string (abfd, vendor, tag,
val, (char *)p);
p += strlen ((char *)p) + 1;
break;
- case 2:
+ case ATTR_TYPE_FLAG_STR_VAL:
bfd_elf_add_obj_attr_string (abfd, vendor, tag,
(char *)p);
p += strlen ((char *)p) + 1;
break;
- case 1:
+ case ATTR_TYPE_FLAG_INT_VAL:
val = read_unsigned_leb128 (abfd, p, &n);
p += n;
bfd_elf_add_obj_attr_int (abfd, vendor, tag, val);