summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog2
-rw-r--r--src/regex.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 2bcca8b0562..e533b07d41a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -5,6 +5,8 @@
(regex_compile, re_match_2_internal): Move locals to avoid shadowing.
(regex_compile, re_search_2, re_match_2_internal):
Remove unused local vars.
+ (FREE_VAR): Rewrite so as not to use empty "else",
+ which gcc can warn about.
* search.c (boyer_moore): Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): Likewise.
diff --git a/src/regex.c b/src/regex.c
index 0187a103b32..9c950a42b22 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -4666,7 +4666,14 @@ static int bcmp_translate _RE_ARGS((re_char *s1, re_char *s2,
/* Free everything we malloc. */
#ifdef MATCH_MAY_ALLOCATE
-# define FREE_VAR(var) if (var) { REGEX_FREE (var); var = NULL; } else
+# define FREE_VAR(var) \
+ do { \
+ if (var) \
+ { \
+ REGEX_FREE (var); \
+ var = NULL; \
+ } \
+ } while (0)
# define FREE_VARIABLES() \
do { \
REGEX_FREE_STACK (fail_stack.stack); \