]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libdwfl: Move nested functions in parse_opt to file scope.
authorYunlian Jiang <yunlian@google.com>
Wed, 26 Jul 2017 23:25:43 +0000 (16:25 -0700)
committerMark Wielaard <mark@klomp.org>
Thu, 27 Jul 2017 16:59:53 +0000 (18:59 +0200)
* Move nested function 'failure' to file scope to compile with clang.
* Move nested function 'fail' to file scope to compile with clang.

Signed-off-by: Yunlian Jiang <yunlian@google.com>
libdwfl/ChangeLog
libdwfl/argp-std.c

index 9bce6b1eee20ba34bf668ab2bcd2fff06fa313a2..2008c6a1be89b23228fd1351562936daa788bb40 100644 (file)
@@ -1,3 +1,8 @@
+2017-07-26  Yunlian Jiang  <yunlian@google.com>
+
+       * argp-std.c (failure): Move to file scope.
+       (fail): Likewise.
+
 2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>
            Mark Wielaard  <mark@klomp.org>
 
index 347a05b4038c6be4601ede922c236032129426e7..498ace21f709c4b3819430a84c742a37368a8b34 100644 (file)
@@ -104,25 +104,28 @@ struct parse_opt
   const char *core;
 };
 
+static inline void
+failure (Dwfl *dwfl, int errnum, const char *msg, struct argp_state *state)
+{
+  if (dwfl != NULL)
+    dwfl_end (dwfl);
+  if (errnum == -1)
+    argp_failure (state, EXIT_FAILURE, 0, "%s: %s",
+                  msg, INTUSE(dwfl_errmsg) (-1));
+  else
+    argp_failure (state, EXIT_FAILURE, errnum, "%s", msg);
+}
+
+static inline error_t
+fail (Dwfl *dwfl, int errnum, const char *msg, struct argp_state *state)
+{
+  failure (dwfl, errnum, msg, state);
+  return errnum == -1 ? EIO : errnum;
+}
+
 static error_t
 parse_opt (int key, char *arg, struct argp_state *state)
 {
-  inline void failure (Dwfl *dwfl, int errnum, const char *msg)
-    {
-      if (dwfl != NULL)
-       dwfl_end (dwfl);
-      if (errnum == -1)
-       argp_failure (state, EXIT_FAILURE, 0, "%s: %s",
-                     msg, INTUSE(dwfl_errmsg) (-1));
-      else
-       argp_failure (state, EXIT_FAILURE, errnum, "%s", msg);
-    }
-  inline error_t fail (Dwfl *dwfl, int errnum, const char *msg)
-    {
-      failure (dwfl, errnum, msg);
-      return errnum == -1 ? EIO : errnum;
-    }
-
   switch (key)
     {
     case ARGP_KEY_INIT:
@@ -130,7 +133,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
        assert (state->hook == NULL);
        struct parse_opt *opt = calloc (1, sizeof (*opt));
        if (opt == NULL)
-         failure (NULL, DWFL_E_ERRNO, "calloc");
+         failure (NULL, DWFL_E_ERRNO, "calloc", state);
        state->hook = opt;
       }
       break;
@@ -147,7 +150,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
          {
            dwfl = INTUSE(dwfl_begin) (&offline_callbacks);
            if (dwfl == NULL)
-             return fail (dwfl, -1, arg);
+             return fail (dwfl, -1, arg, state);
            opt->dwfl = dwfl;
 
            /* Start at zero so if there is just one -e foo.so,
@@ -173,7 +176,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
            Dwfl *dwfl = INTUSE(dwfl_begin) (&proc_callbacks);
            int result = INTUSE(dwfl_linux_proc_report) (dwfl, atoi (arg));
            if (result != 0)
-             return fail (dwfl, result, arg);
+             return fail (dwfl, result, arg, state);
 
            /* Non-fatal to not be able to attach to process, ignore error.  */
            INTUSE(dwfl_linux_proc_attach) (dwfl, atoi (arg), false);
@@ -202,7 +205,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
            int result = INTUSE(dwfl_linux_proc_maps_report) (dwfl, f);
            fclose (f);
            if (result != 0)
-             return fail (dwfl, result, arg);
+             return fail (dwfl, result, arg, state);
            opt->dwfl = dwfl;
          }
        else
@@ -231,11 +234,11 @@ parse_opt (int key, char *arg, struct argp_state *state)
            Dwfl *dwfl = INTUSE(dwfl_begin) (&kernel_callbacks);
            int result = INTUSE(dwfl_linux_kernel_report_kernel) (dwfl);
            if (result != 0)
-             return fail (dwfl, result, _("cannot load kernel symbols"));
+             return fail (dwfl, result, _("cannot load kernel symbols"), state);
            result = INTUSE(dwfl_linux_kernel_report_modules) (dwfl);
            if (result != 0)
              /* Non-fatal to have no modules since we do have the kernel.  */
-             failure (dwfl, result, _("cannot find kernel modules"));
+             failure (dwfl, result, _("cannot find kernel modules"), state);
            opt->dwfl = dwfl;
          }
        else
@@ -252,7 +255,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
            int result = INTUSE(dwfl_linux_kernel_report_offline) (dwfl, arg,
                                                                   NULL);
            if (result != 0)
-             return fail (dwfl, result, _("cannot find kernel or modules"));
+             return fail (dwfl, result, _("cannot find kernel or modules"), state);
            opt->dwfl = dwfl;
          }
        else
@@ -271,7 +274,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
            arg = "a.out";
            dwfl = INTUSE(dwfl_begin) (&offline_callbacks);
            if (INTUSE(dwfl_report_offline) (dwfl, "", arg, -1) == NULL)
-             return fail (dwfl, -1, arg);
+             return fail (dwfl, -1, arg, state);
            opt->dwfl = dwfl;
          }
 
@@ -301,7 +304,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
              {
                elf_end (core);
                close (fd);
-               return fail (dwfl, result, opt->core);
+               return fail (dwfl, result, opt->core, state);
              }
 
            /* Non-fatal to not be able to attach to core, ignore error.  */
@@ -331,7 +334,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
        else if (opt->e)
          {
            if (INTUSE(dwfl_report_offline) (dwfl, "", opt->e, -1) == NULL)
-             return fail (dwfl, -1, opt->e);
+             return fail (dwfl, -1, opt->e, state);
          }
 
        /* One of the three flavors has done dwfl_begin and some reporting