Move nested functions in linux-proc-maps.c to file scope.
authorChih-Hung Hsieh <chh@google.com>
Wed, 18 Nov 2015 19:04:52 +0000 (11:04 -0800)
committerMark Wielaard <mjw@redhat.com>
Sun, 3 Jan 2016 21:43:08 +0000 (22:43 +0100)
* Move nested function 'report' to file scope to compile with clang.

Signed-off-by: Chih-Hung Hsieh <chh@google.com>
libdwfl/ChangeLog
libdwfl/linux-proc-maps.c

index 36b2123..06b8469 100644 (file)
@@ -1,5 +1,10 @@
 2015-11-18  Chih-Hung Hsieh <chh@google.com>
 
+       * linux-proc-maps.c (proc_maps_report): Move nested function
+       'report' to file scope.
+
+2015-11-18  Chih-Hung Hsieh <chh@google.com>
+
        * core-file.c (elf_begin_rand): Move nested function 'fail' to file
        scope.
        * core-file.c (dwfl_elf_phdr_memory_callback): Move nested functions
index 2e2c8f9..9e7b2a2 100644 (file)
@@ -175,6 +175,23 @@ grovel_auxv (pid_t pid, Dwfl *dwfl, GElf_Addr *sysinfo_ehdr)
   return ENOEXEC;
 }
 
+static inline bool
+do_report (Dwfl *dwfl, char **plast_file, Dwarf_Addr low, Dwarf_Addr high)
+{
+  if (*plast_file != NULL)
+    {
+      Dwfl_Module *mod = INTUSE(dwfl_report_module) (dwfl, *plast_file,
+                                                    low, high);
+      free (*plast_file);
+      *plast_file = NULL;
+      if (unlikely (mod == NULL))
+        return true;
+    }
+  return false;
+}
+
+#define report() do_report(dwfl, &last_file, low, high)
+
 static int
 proc_maps_report (Dwfl *dwfl, FILE *f, GElf_Addr sysinfo_ehdr, pid_t pid)
 {
@@ -183,20 +200,6 @@ proc_maps_report (Dwfl *dwfl, FILE *f, GElf_Addr sysinfo_ehdr, pid_t pid)
   char *last_file = NULL;
   Dwarf_Addr low = 0, high = 0;
 
-  inline bool report (void)
-    {
-      if (last_file != NULL)
-       {
-         Dwfl_Module *mod = INTUSE(dwfl_report_module) (dwfl, last_file,
-                                                        low, high);
-         free (last_file);
-         last_file = NULL;
-         if (unlikely (mod == NULL))
-           return true;
-       }
-      return false;
-    }
-
   char *line = NULL;
   size_t linesz;
   ssize_t len;