summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2014-05-06 11:17:50 -0400
committerJunio C Hamano <gitster@pobox.com>2014-05-06 15:30:40 -0700
commitff0a80af724e81dbad6a269847523e39c2e7e479 (patch)
treef2af81cd7cde8d61559dadfbaec8693b47532181
parent87fe5df3653cf20b6bf9854bea42e4016c7d4688 (diff)
downloadgit-jk/squelch-compiler-warning-from-funny-error-macro.tar.gz
let clang use the constant-return error() macrojk/squelch-compiler-warning-from-funny-error-macro
Commit e208f9c converted error() into a macro to make its constant return value more apparent to calling code. Commit 5ded807 prevents us using this macro with clang, since clang's -Wunused-value is smart enough to realize that the constant "-1" is useless in some contexts. However, since the last commit puts the constant behind an inline function call, this is enough to prevent the -Wunused-value warning on both modern gcc and clang. So we can now re-enable the macro when compiling with clang. Tested with clang 3.3, 3.4, and 3.5. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--cache.h2
-rw-r--r--git-compat-util.h2
-rw-r--r--parse-options.h2
3 files changed, 3 insertions, 3 deletions
diff --git a/cache.h b/cache.h
index 001b63f5cd..86be95e6d9 100644
--- a/cache.h
+++ b/cache.h
@@ -1183,7 +1183,7 @@ extern int check_repository_format_version(const char *var, const char *value, v
extern int git_env_bool(const char *, int);
extern int git_config_system(void);
extern int config_error_nonbool(const char *);
-#if defined(__GNUC__) && ! defined(__clang__)
+#if defined(__GNUC__)
#define config_error_nonbool(s) (config_error_nonbool(s), const_error())
#endif
extern const char *get_log_output_encoding(void);
diff --git a/git-compat-util.h b/git-compat-util.h
index 90b988a5c1..38ff803070 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -342,7 +342,7 @@ extern void warning(const char *err, ...) __attribute__((format (printf, 1, 2)))
* trying to help gcc, anyway, it's OK; other compilers will fall back to
* using the function as usual.
*/
-#if defined(__GNUC__) && ! defined(__clang__)
+#if defined(__GNUC__)
static inline int const_error(void)
{
return -1;
diff --git a/parse-options.h b/parse-options.h
index 1ef8da1f3e..0a2b2e19a5 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -179,7 +179,7 @@ extern NORETURN void usage_msg_opt(const char *msg,
extern int optbug(const struct option *opt, const char *reason);
extern int opterror(const struct option *opt, const char *reason, int flags);
-#if defined(__GNUC__) && ! defined(__clang__)
+#if defined(__GNUC__)
#define opterror(o,r,f) (opterror((o),(r),(f)), const_error())
#endif