Skip to content

Commit

Permalink
canonicalize, canonicalize-lgpl: remove lint
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
eggert committed Dec 25, 2020
1 parent 1504c11 commit d411aa6
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 8 deletions.
15 changes: 15 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
2020-12-24 Paul Eggert <[email protected]>

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.

2020-12-24 Bruno Haible <[email protected]>

spawn-pipe: Use posix_spawn by default on native Windows.
Expand Down
15 changes: 12 additions & 3 deletions lib/canonicalize-lgpl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -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);
Expand Down
16 changes: 11 additions & 5 deletions lib/canonicalize.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,21 @@
#include <sys/stat.h>
#include <unistd.h>

#include <filename.h>
#include <idx.h>
#include <scratch_buffer.h>

#include "attribute.h"
#include "file-set.h"
#include "idx.h"
#include "hash-triple.h"
#include "xalloc.h"
#include "filename.h"

/* 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
Expand Down Expand Up @@ -72,7 +79,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. */
Expand Down Expand Up @@ -334,7 +341,6 @@ canonicalize_filename_mode_stk (const char *name, canonicalize_mode_t can_mode,
dest = mempcpy (dest, start, startlen);
*dest = '\0';

char discard;
char *buf;
ssize_t n = -1;
if (!logical)
Expand Down Expand Up @@ -386,7 +392,7 @@ canonicalize_filename_mode_stk (const char *name, canonicalize_mode_t can_mode,
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);
Expand Down

0 comments on commit d411aa6

Please sign in to comment.