diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2012-11-09 18:07:10 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2012-11-09 18:07:10 +0000 |
commit | 0420f52b9441ae498323d1656d5d2af66a1e13c7 (patch) | |
tree | 94d8720f0dced7178a6a90d972dcde6f0046a096 /gas/read.c | |
parent | de863c74750924a0c3e8fae251c49c69e3ddff36 (diff) | |
download | gdb-0420f52b9441ae498323d1656d5d2af66a1e13c7.zip gdb-0420f52b9441ae498323d1656d5d2af66a1e13c7.tar.gz gdb-0420f52b9441ae498323d1656d5d2af66a1e13c7.tar.bz2 |
* read.h (s_vendor_attribute): Move to...
* config/obj-elf.h (obj_elf_vendor_attribute): ... here.
* read.c (potable): Remove "gnu_attribute".
(skip_whitespace, skip_past_char, skip_past_comma): Delete, move
to config/obj-elf.c.
(s_vendor_attribute): Delete, move to obj_elf_vendor_attribute
in config/obj-elf.c.
(s_gnu_attribute): Delete, move to obj_elf_gnu_attribute in
config/obj-elf.c.
* config/obj-elf.c (elf_pseudo_table): Add "gnu_attribute".
(skip_whitespace, skip_past_char, skip_past_comma): New, moved
from read.c.
(obj_elf_vendor_attribute): New, moved from s_vendor_attribute
in read.c.
(obj_elf_gnu_attribute): New, moved from s_gnu_attribute in
read.c.
* config/tc-arm.c (s_arm_eabi_attribute): Rename
s_vendor_attribute to obj_elf_vendor_attribute.
* config/tc-tic6x.c (s_tic6x_c6xabi_attribute): Likewise.
Diffstat (limited to 'gas/read.c')
-rw-r--r-- | gas/read.c | 139 |
1 files changed, 0 insertions, 139 deletions
@@ -244,9 +244,6 @@ static void do_align (int, char *, int, int); static void s_align (int, int); static void s_altmacro (int); static void s_bad_end (int); -#ifdef OBJ_ELF -static void s_gnu_attribute (int); -#endif static void s_reloc (int); static int hex_float (int, char *); static segT get_known_segmented_expression (expressionS * expP); @@ -378,9 +375,6 @@ static const pseudo_typeS potable[] = { {"func", s_func, 0}, {"global", s_globl, 0}, {"globl", s_globl, 0}, -#ifdef OBJ_ELF - {"gnu_attribute", s_gnu_attribute, 0}, -#endif {"hword", cons, 2}, {"if", s_if, (int) O_ne}, {"ifb", s_ifb, 1}, @@ -2292,139 +2286,6 @@ s_globl (int ignore ATTRIBUTE_UNUSED) mri_comment_end (stop, stopc); } -#ifdef OBJ_ELF -#define skip_whitespace(str) do { if (*(str) == ' ') ++(str); } while (0) - -static inline int -skip_past_char (char ** str, char c) -{ - if (**str == c) - { - (*str)++; - return 0; - } - else - return -1; -} -#define skip_past_comma(str) skip_past_char (str, ',') - -/* Parse an attribute directive for VENDOR. - Returns the attribute number read, or zero on error. */ -int -s_vendor_attribute (int vendor) -{ - expressionS exp; - int type; - int tag; - unsigned int i = 0; - char *s = NULL; - - /* Read the first number or name. */ - skip_whitespace (input_line_pointer); - s = input_line_pointer; - if (ISDIGIT (*input_line_pointer)) - { - expression (& exp); - if (exp.X_op != O_constant) - goto bad; - tag = exp.X_add_number; - } - else - { - char *name; - - /* A name may contain '_', but no other punctuation. */ - for (; ISALNUM (*input_line_pointer) || *input_line_pointer == '_'; - ++input_line_pointer) - i++; - if (i == 0) - goto bad; - - name = (char *) alloca (i + 1); - memcpy (name, s, i); - name[i] = '\0'; - -#ifndef CONVERT_SYMBOLIC_ATTRIBUTE -#define CONVERT_SYMBOLIC_ATTRIBUTE(a) -1 -#endif - - tag = CONVERT_SYMBOLIC_ATTRIBUTE (name); - if (tag == -1) - { - as_bad (_("Attribute name not recognised: %s"), name); - ignore_rest_of_line (); - return 0; - } - } - - type = _bfd_elf_obj_attrs_arg_type (stdoutput, vendor, tag); - - if (skip_past_comma (&input_line_pointer) == -1) - goto bad; - if (type & 1) - { - expression (& exp); - if (exp.X_op != O_constant) - { - as_bad (_("expected numeric constant")); - ignore_rest_of_line (); - return 0; - } - i = exp.X_add_number; - } - if ((type & 3) == 3 - && skip_past_comma (&input_line_pointer) == -1) - { - as_bad (_("expected comma")); - ignore_rest_of_line (); - return 0; - } - if (type & 2) - { - int len; - - skip_whitespace (input_line_pointer); - if (*input_line_pointer != '"') - goto bad_string; - s = demand_copy_C_string (&len); - } - - switch (type & 3) - { - case 3: - bfd_elf_add_obj_attr_int_string (stdoutput, vendor, tag, i, s); - break; - case 2: - bfd_elf_add_obj_attr_string (stdoutput, vendor, tag, s); - break; - case 1: - bfd_elf_add_obj_attr_int (stdoutput, vendor, tag, i); - break; - default: - abort (); - } - - demand_empty_rest_of_line (); - return tag; -bad_string: - as_bad (_("bad string constant")); - ignore_rest_of_line (); - return 0; -bad: - as_bad (_("expected <tag> , <value>")); - ignore_rest_of_line (); - return 0; -} - -/* Parse a .gnu_attribute directive. */ - -static void -s_gnu_attribute (int ignored ATTRIBUTE_UNUSED) -{ - s_vendor_attribute (OBJ_ATTR_GNU); -} -#endif /* OBJ_ELF */ - /* Handle the MRI IRP and IRPC pseudo-ops. */ void |