summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStaale Smedseng <staale.smedseng@sun.com>2009-08-28 17:51:31 +0200
committerStaale Smedseng <staale.smedseng@sun.com>2009-08-28 17:51:31 +0200
commit2217de25139f5994fc1c5c71f897ff0788813db0 (patch)
tree4278d9f3353d5c86ca327f6ac2680c001e809843 /include
parent95d185693d93846e036f8c9e125f304040545282 (diff)
downloadmariadb-git-2217de25139f5994fc1c5c71f897ff0788813db0.tar.gz
Bug #43414 Parenthesis (and other) warnings compiling MySQL
with gcc 4.3.2 This patch fixes a number of GCC warnings about variables used before initialized. A new macro UNINIT_VAR() is introduced for use in the variable declaration, and LINT_INIT() usage will be gradually deprecated. (A workaround is used for g++, pending a patch for a g++ bug.) GCC warnings for unused results (attribute warn_unused_result) for a number of system calls (present at least in later Ubuntus, where the usual void cast trick doesn't work) are also fixed.
Diffstat (limited to 'include')
-rw-r--r--include/my_global.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/my_global.h b/include/my_global.h
index 5c07aa00b32..0b5458215c6 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -464,6 +464,19 @@ int __void__;
#define PURIFY_OR_LINT_INIT(var)
#endif
+/*
+ Suppress uninitialized variable warning without generating code.
+
+ The _cplusplus is a temporary workaround for C++ code pending a fix
+ for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
+*/
+#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(__cplusplus) || \
+ !defined(__GNUC__)
+#define UNINIT_VAR(x) x= 0
+#else
+#define UNINIT_VAR(x) x= x
+#endif
+
/* Define some useful general macros */
#if !defined(max)
#define max(a, b) ((a) > (b) ? (a) : (b))