diff options
author | Chih-Hung Hsieh <chh@google.com> | 2015-10-21 14:36:25 -0700 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2015-11-03 15:20:22 +0100 |
commit | 860d4312e61ceef1510035dfb851327246705785 (patch) | |
tree | 5c4226d2e95c63f75900e26bcd05dc1d4d29610f /backends | |
parent | 528cb45fc99a1f402ac153891ac7c007921699ef (diff) | |
download | elfutils-860d4312e61ceef1510035dfb851327246705785.tar.gz |
Move nested functions in backends to file scope.
* backends/aarch64_regs.c and backends/ia64_retval.c
should now compile with clang.
Signed-off-by: Chih-Hung Hsieh <chh@google.com>
Diffstat (limited to 'backends')
-rw-r--r-- | backends/ChangeLog | 6 | ||||
-rw-r--r-- | backends/aarch64_regs.c | 38 | ||||
-rw-r--r-- | backends/ia64_retval.c | 21 |
3 files changed, 40 insertions, 25 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog index 6ea3dc4b..7f0d1c00 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,9 @@ +2015-10-21 Chih-Hung Hsieh <chh@google.com> + + * ia64_retval.c (hfa_type): Move nested function 'hfa' to file scope. + * aarch64_regs.c (aarch64_register_info): Move nested function 'regtype' + to file scope. + 2015-10-16 Mark Wielaard <mjw@redhat.com> * ppc_symbol.c (ppc_check_special_symbol): Also allow _SDA_BASE_ diff --git a/backends/aarch64_regs.c b/backends/aarch64_regs.c index 7a8a6780..23014bfc 100644 --- a/backends/aarch64_regs.c +++ b/backends/aarch64_regs.c @@ -38,6 +38,25 @@ #define BACKEND aarch64_ #include "libebl_CPU.h" +__attribute__ ((format (printf, 7, 8))) +static ssize_t +do_regtype (const char *setname, int type, + const char **setnamep, int *typep, + char *name, size_t namelen, const char *fmt, ...) +{ + *setnamep = setname; + *typep = type; + + va_list ap; + va_start (ap, fmt); + int s = vsnprintf (name, namelen, fmt, ap); + va_end(ap); + + if (s < 0 || (unsigned) s >= namelen) + return -1; + return s + 1; +} + ssize_t aarch64_register_info (Ebl *ebl __attribute__ ((unused)), int regno, char *name, size_t namelen, @@ -47,26 +66,13 @@ aarch64_register_info (Ebl *ebl __attribute__ ((unused)), if (name == NULL) return 128; - __attribute__ ((format (printf, 3, 4))) - ssize_t - regtype (const char *setname, int type, const char *fmt, ...) - { - *setnamep = setname; - *typep = type; - - va_list ap; - va_start (ap, fmt); - int s = vsnprintf (name, namelen, fmt, ap); - va_end(ap); - - if (s < 0 || (unsigned) s >= namelen) - return -1; - return s + 1; - } *prefix = ""; *bits = 64; +#define regtype(setname, type, ...) \ + do_regtype(setname, type, setnamep, typep, name, namelen, __VA_ARGS__) + switch (regno) { case 0 ... 30: diff --git a/backends/ia64_retval.c b/backends/ia64_retval.c index b5928c58..dcd5f28d 100644 --- a/backends/ia64_retval.c +++ b/backends/ia64_retval.c @@ -89,6 +89,17 @@ static const Dwarf_Op loc_aggregate[] = #define nloc_aggregate 1 +static inline int +compute_hfa (const Dwarf_Op *loc, int nregs, + const Dwarf_Op **locp, int fpregs_used) +{ + if (fpregs_used == 0) + *locp = loc; + else if (*locp != loc) + return 9; + return fpregs_used + nregs; +} + /* If this type is an HFA small enough to be returned in FP registers, return the number of registers to use. Otherwise 9, or -1 for errors. */ static int @@ -100,15 +111,6 @@ hfa_type (Dwarf_Die *typedie, Dwarf_Word size, If we find a datum that's not the same FP type as the first datum, punt. If we count more than eight total homogeneous FP data, punt. */ - inline int hfa (const Dwarf_Op *loc, int nregs) - { - if (fpregs_used == 0) - *locp = loc; - else if (*locp != loc) - return 9; - return fpregs_used + nregs; - } - int tag = DWARF_TAG_OR_RETURN (typedie); switch (tag) { @@ -123,6 +125,7 @@ hfa_type (Dwarf_Die *typedie, Dwarf_Word size, &attr_mem), &encoding) != 0) return -1; +#define hfa(loc, nregs) compute_hfa(loc, nregs, locp, fpregs_used) switch (encoding) { case DW_ATE_float: |