]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Move nested functions in backends to file scope.
authorChih-Hung Hsieh <chh@google.com>
Wed, 21 Oct 2015 21:36:25 +0000 (14:36 -0700)
committerMark Wielaard <mjw@redhat.com>
Tue, 3 Nov 2015 14:20:22 +0000 (15:20 +0100)
* backends/aarch64_regs.c and backends/ia64_retval.c
  should now compile with clang.

Signed-off-by: Chih-Hung Hsieh <chh@google.com>
backends/ChangeLog
backends/aarch64_regs.c
backends/ia64_retval.c

index 6ea3dc4bfdd1ca07b99677260d8ae65da1b65475..7f0d1c00e1f5027c5ff996f5aed39f39fb5461e5 100644 (file)
@@ -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_
index 7a8a6780dcd75f5860a8c73da63733027bd5587b..23014bfcefc37c67c7674645623a90ffd80e47a8 100644 (file)
 #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:
index b5928c587b71d0f401264bc738adb75772bf456b..dcd5f28d6cead810bdde48bc4f5e3ec49906bf5c 100644 (file)
@@ -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: