Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro'
authorJunio C Hamano <gitster@pobox.com>
Fri, 6 Jun 2014 18:21:36 +0000 (11:21 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Jun 2014 18:21:36 +0000 (11:21 -0700)
* jk/squelch-compiler-warning-from-funny-error-macro:
let clang use the constant-return error() macro
inline constant return from error() function

cache.h
git-compat-util.h
parse-options.h
diff --git a/cache.h b/cache.h
index 62a4d39efcfa5f0cbf4257acfbbb9f8fdd5d2859..8c6cdc29deca2eb60d5f76f9b44d6cfa1bd2d8ae 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -1294,8 +1294,8 @@ 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__)
-#define config_error_nonbool(s) (config_error_nonbool(s), -1)
+#if defined(__GNUC__)
+#define config_error_nonbool(s) (config_error_nonbool(s), const_error())
 #endif
 extern const char *get_log_output_encoding(void);
 extern const char *get_commit_output_encoding(void);
index 76910e6cd16f128be9430ac86f35a8e06d390e0f..7849d314051a1de351c9c985516135397042a091 100644 (file)
@@ -330,8 +330,12 @@ 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__)
-#define error(...) (error(__VA_ARGS__), -1)
+#if defined(__GNUC__)
+static inline int const_error(void)
+{
+       return -1;
+}
+#define error(...) (error(__VA_ARGS__), const_error())
 #endif
 
 extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
index 3189676695bc173cf6475445cfb6365d08a37906..7940bc71af4c6dacd65d042091454c8fa83c53c7 100644 (file)
@@ -176,8 +176,8 @@ 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__)
-#define opterror(o,r,f) (opterror((o),(r),(f)), -1)
+#if defined(__GNUC__)
+#define opterror(o,r,f) (opterror((o),(r),(f)), const_error())
 #endif
 
 /*----- incremental advanced APIs -----*/