summaryrefslogtreecommitdiff
path: root/lib/canonicalize-lgpl.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2020-12-24 21:33:18 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2020-12-24 21:49:01 -0800
commitd411aa6ffa127d2707958a364896a0fd7d500b1b (patch)
tree05b136a85ad73d1916f72c1e5a15735e6028f1d1 /lib/canonicalize-lgpl.c
parent1504c11f8a5cca19eae97afb71644a4123c343ab (diff)
downloadgnulib-d411aa6ffa127d2707958a364896a0fd7d500b1b.tar.gz
canonicalize, canonicalize-lgpl: remove lint
Pacify GCC. Some of these problems were reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00217.html * lib/canonicalize-lgpl.c, lib/canonicalize.c: Sort shared include directives, for consistency. (IF_LINT): New macro. (suffix_requires_dir_check): Mark with _GL_ATTRIBUTE_PURE. * lib/canonicalize-lgpl.c (GCC_LINT, _GL_ATTRIBUTE_PURE) [_LIBC]: New macros. (realpath_stk): Suppress bogus -Wmaybe-uninitialized warning. * lib/canonicalize.c (canonicalize_filename_mode_stk): Omit unused local. Suppress bogus -Wmaybe-uninitialized warning.
Diffstat (limited to 'lib/canonicalize-lgpl.c')
-rw-r--r--lib/canonicalize-lgpl.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/canonicalize-lgpl.c b/lib/canonicalize-lgpl.c
index 8c8f98abc4..68b6fdf6ed 100644
--- a/lib/canonicalize-lgpl.c
+++ b/lib/canonicalize-lgpl.c
@@ -38,8 +38,8 @@
#include <unistd.h>
#include <eloop-threshold.h>
-#include <idx.h>
#include <filename.h>
+#include <idx.h>
#include <scratch_buffer.h>
#ifdef _LIBC
@@ -50,6 +50,8 @@
# else
# define FACCESSAT_NEVER_EOVERFLOWS true
# endif
+# define GCC_LINT 1
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
#else
# define __canonicalize_file_name canonicalize_file_name
# define __realpath realpath
@@ -82,6 +84,13 @@
# define __stat stat
#endif
+/* Suppress bogus GCC -Wmaybe-uninitialized warnings. */
+#if defined GCC_LINT || defined lint
+# define IF_LINT(Code) Code
+#else
+# define IF_LINT(Code) /* empty */
+#endif
+
#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
# define DOUBLE_SLASH_IS_DISTINCT_ROOT false
#endif
@@ -114,7 +123,7 @@ file_accessible (char const *file)
component within END. END must either be empty, or start with a
slash. */
-static bool
+static bool _GL_ATTRIBUTE_PURE
suffix_requires_dir_check (char const *end)
{
/* If END does not start with a slash, the suffix is OK. */
@@ -338,7 +347,7 @@ realpath_stk (const char *name, char *resolved,
buf[n] = '\0';
char *extra_buf = extra_buffer.data;
- idx_t end_idx;
+ idx_t end_idx IF_LINT (= 0);
if (end_in_extra_buffer)
end_idx = end - extra_buf;
idx_t len = strlen (end);