#At file:///home/msvensson/mysql/6.2-bug38609/
2641 Magnus Svensson 2008-08-08
Add ATTRIBUTE_FORMAT macro to all variable argument functions
Fix the warnings produced
modified:
BUILD/SETUP.sh
storage/ndb/include/debugger/SignalLoggerManager.hpp
storage/ndb/include/logger/Logger.hpp
storage/ndb/include/ndbapi/Ndb.hpp
storage/ndb/include/util/BaseString.hpp
storage/ndb/include/util/NdbOut.hpp
storage/ndb/include/util/OutputStream.hpp
storage/ndb/include/util/basestring_vsnprintf.h
storage/ndb/include/util/socket_io.h
storage/ndb/src/common/debugger/EventLogger.cpp
storage/ndb/src/kernel/vm/WatchDog.cpp
storage/ndb/src/mgmapi/LocalConfig.cpp
storage/ndb/src/ndbapi/Ndb.cpp
storage/ndb/src/ndbapi/NdbTransaction.cpp
storage/ndb/src/ndbapi/Ndbif.cpp
storage/ndb/src/ndbapi/ObjectMap.hpp
per-file messages:
BUILD/SETUP.sh
Add the line that causes the compiler to fail for each format specifier warning
in a commented out state.
storage/ndb/include/debugger/SignalLoggerManager.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/logger/Logger.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/ndbapi/Ndb.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/util/BaseString.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/util/NdbOut.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/util/OutputStream.hpp
Add ATTRIBUTE_FORMAT
storage/ndb/include/util/basestring_vsnprintf.h
Add ATTRIBUTE_FORMAT
storage/ndb/include/util/socket_io.h
Add ATTRIBUTE_FORMAT
storage/ndb/src/common/debugger/EventLogger.cpp
Fix format specifier warning
storage/ndb/src/kernel/vm/WatchDog.cpp
Fix format specifier warning
storage/ndb/src/mgmapi/LocalConfig.cpp
Fix format specifier warning
storage/ndb/src/ndbapi/Ndb.cpp
Fix format specifier warning
storage/ndb/src/ndbapi/NdbTransaction.cpp
Fix format specifier warning
storage/ndb/src/ndbapi/Ndbif.cpp
Fix format specifier warning
storage/ndb/src/ndbapi/ObjectMap.hpp
Fix format specifier warning
=== modified file 'BUILD/SETUP.sh'
--- a/BUILD/SETUP.sh 2008-03-20 07:57:13 +0000
+++ b/BUILD/SETUP.sh 2008-08-08 17:56:58 +0000
@@ -94,6 +94,9 @@ if [ "x$warning_mode" != "xpedantic" ];
warnings="$warnings -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare"
warnings="$warnings -Wwrite-strings -Wunused-function -Wunused-label -Wunused-value -Wunused-variable"
+ # Make "printf like format specifier warnings" into error
+ #warnings="$warnings -Werror=format"
+
# For more warnings, uncomment the following line
# warnings="$global_warnings -Wshadow"
@@ -103,9 +106,11 @@ if [ "x$warning_mode" != "xpedantic" ];
cxx_warnings="$warnings"
# cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo"
cxx_warnings="$cxx_warnings -Wreorder"
+ cxx_warnings="$cxx_warnings -Wno-format-zero-length"
cxx_warnings="$cxx_warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
# Added unless --with-debug=full
debug_extra_cflags="-O1 -Wuninitialized"
+
else
warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE"
c_warnings="$warnings"
=== modified file 'storage/ndb/include/debugger/SignalLoggerManager.hpp'
--- a/storage/ndb/include/debugger/SignalLoggerManager.hpp 2006-12-23 19:20:40 +0000
+++ b/storage/ndb/include/debugger/SignalLoggerManager.hpp 2008-08-08 17:56:58 +0000
@@ -86,7 +86,8 @@ public:
/**
* Generic messages in the signal log
*/
- void log(BlockNumber bno, const char * msg, ...);
+ void log(BlockNumber bno, const char * msg, ...)
+ ATTRIBUTE_FORMAT(printf, 3, 4);
/**
* LogModes
=== modified file 'storage/ndb/include/logger/Logger.hpp'
--- a/storage/ndb/include/logger/Logger.hpp 2006-12-23 19:20:40 +0000
+++ b/storage/ndb/include/logger/Logger.hpp 2008-08-08 17:56:58 +0000
@@ -228,7 +228,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void alert(const char* pMsg, ...) const;
+ virtual void alert(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void alert(BaseString &pMsg) const { alert(pMsg.c_str()); };
/**
@@ -236,7 +237,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void critical(const char* pMsg, ...) const;
+ virtual void critical(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void critical(BaseString &pMsg) const { critical(pMsg.c_str()); };
/**
@@ -244,7 +246,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void error(const char* pMsg, ...) const;
+ virtual void error(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void error(BaseString &pMsg) const { error(pMsg.c_str()); };
/**
@@ -252,7 +255,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void warning(const char* pMsg, ...) const;
+ virtual void warning(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void warning(BaseString &pMsg) const { warning(pMsg.c_str()); };
/**
@@ -260,7 +264,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void info(const char* pMsg, ...) const;
+ virtual void info(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void info(BaseString &pMsg) const { info(pMsg.c_str()); };
/**
@@ -268,7 +273,8 @@ public:
*
* @param pMsg the message.
*/
- virtual void debug(const char* pMsg, ...) const;
+ virtual void debug(const char* pMsg, ...) const
+ ATTRIBUTE_FORMAT(printf, 2, 3);
virtual void debug(BaseString &pMsg) const { debug(pMsg.c_str()); };
protected:
=== modified file 'storage/ndb/include/ndbapi/Ndb.hpp'
--- a/storage/ndb/include/ndbapi/Ndb.hpp 2008-04-02 22:28:14 +0000
+++ b/storage/ndb/include/ndbapi/Ndb.hpp 2008-08-08 17:56:58 +0000
@@ -1881,7 +1881,9 @@ private:
struct LinearSectionPtr ptr[3]);
static void statusMessage(void*, Uint32, bool, bool);
#ifdef VM_TRACE
- void printState(const char* fmt, ...);
+#include <my_attribute.h>
+ void printState(const char* fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
#endif
};
=== modified file 'storage/ndb/include/util/BaseString.hpp'
--- a/storage/ndb/include/util/BaseString.hpp 2007-04-11 13:51:09 +0000
+++ b/storage/ndb/include/util/BaseString.hpp 2008-08-08 17:56:58 +0000
@@ -97,10 +97,12 @@ public:
const BaseString &separator = BaseString(" "));
/** @brief Assigns from a format string a la printf() */
- BaseString& assfmt(const char* ftm, ...);
+ BaseString& assfmt(const char* ftm, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
/** @brief Appends a format string a la printf() to the end */
- BaseString& appfmt(const char* ftm, ...);
+ BaseString& appfmt(const char* ftm, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
/**
* Split a string into a vector of strings. Separate the string where
@@ -183,7 +185,8 @@ public:
/**
* snprintf on some platforms need special treatment
*/
- static int snprintf(char *str, size_t size, const char *format, ...);
+ static int snprintf(char *str, size_t size, const char *format, ...)
+ ATTRIBUTE_FORMAT(printf, 3, 4);
static int vsnprintf(char *str, size_t size, const char *format, va_list ap);
private:
char* m_chr;
=== modified file 'storage/ndb/include/util/NdbOut.hpp'
--- a/storage/ndb/include/util/NdbOut.hpp 2006-12-23 19:20:40 +0000
+++ b/storage/ndb/include/util/NdbOut.hpp 2008-08-08 17:56:58 +0000
@@ -76,8 +76,10 @@ public:
NdbOut(OutputStream &);
virtual ~NdbOut();
- void print(const char * fmt, ...);
- void println(const char * fmt, ...);
+ void print(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
+ void println(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
OutputStream * m_out;
private:
@@ -125,7 +127,7 @@ private:
};
#else
-void ndbout_c(const char * fmt, ...);
+void ndbout_c(const char * fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
#endif
#endif
=== modified file 'storage/ndb/include/util/OutputStream.hpp'
--- a/storage/ndb/include/util/OutputStream.hpp 2008-08-05 11:53:52 +0000
+++ b/storage/ndb/include/util/OutputStream.hpp 2008-08-08 17:56:58 +0000
@@ -26,8 +26,10 @@ class OutputStream {
public:
OutputStream() {}
virtual ~OutputStream() {}
- virtual int print(const char * fmt, ...) = 0;
- virtual int println(const char * fmt, ...) = 0;
+ virtual int print(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3) = 0;
+ virtual int println(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3) = 0;
virtual void flush() {};
virtual void reset_timeout() {};
};
@@ -39,8 +41,10 @@ public:
virtual ~FileOutputStream() {}
FILE *getFile() { return f; }
- int print(const char * fmt, ...);
- int println(const char * fmt, ...);
+ int print(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
+ int println(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
void flush() { fflush(f); }
};
@@ -56,8 +60,10 @@ public:
bool timedout() { return m_timedout; };
void reset_timeout() { m_timedout= false; m_timeout_remain= m_timeout_ms;};
- int print(const char * fmt, ...);
- int println(const char * fmt, ...);
+ int print(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
+ int println(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
};
@@ -68,8 +74,10 @@ public:
unsigned write_timeout_ms = 1000);
virtual ~BufferedSockOutputStream();
- int print(const char * fmt, ...);
- int println(const char * fmt, ...);
+ int print(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
+ int println(const char * fmt, ...)
+ ATTRIBUTE_FORMAT(printf, 2, 3);
void flush();
};
=== modified file 'storage/ndb/include/util/basestring_vsnprintf.h'
--- a/storage/ndb/include/util/basestring_vsnprintf.h 2006-12-23 19:20:40 +0000
+++ b/storage/ndb/include/util/basestring_vsnprintf.h 2008-08-08 17:56:58 +0000
@@ -15,12 +15,14 @@
#ifndef BASESTRING_VSNPRINTF_H
#define BASESTRING_VSNPRINTF_H
+#include <ndb_global.h>
#include <stdarg.h>
#if defined(__cplusplus)
extern "C"
{
#endif
-int basestring_snprintf(char*, size_t, const char*, ...);
+int basestring_snprintf(char*, size_t, const char*, ...)
+ ATTRIBUTE_FORMAT(printf, 3, 4);
int basestring_vsnprintf(char*,size_t, const char*,va_list);
#if defined(__cplusplus)
}
=== modified file 'storage/ndb/include/util/socket_io.h'
--- a/storage/ndb/include/util/socket_io.h 2007-03-22 11:35:07 +0000
+++ b/storage/ndb/include/util/socket_io.h 2008-08-08 17:56:58 +0000
@@ -35,9 +35,9 @@ extern "C" {
const char[], int len);
int print_socket(NDB_SOCKET_TYPE, int timeout_ms, int *time,
- const char *, ...);
+ const char *, ...) ATTRIBUTE_FORMAT(printf, 4, 5);
int println_socket(NDB_SOCKET_TYPE, int timeout_ms, int *time,
- const char *, ...);
+ const char *, ...) ATTRIBUTE_FORMAT(printf, 4, 5);
int vprint_socket(NDB_SOCKET_TYPE, int timeout_ms, int *time,
const char *, va_list);
int vprintln_socket(NDB_SOCKET_TYPE, int timeout_ms, int *time,
=== modified file 'storage/ndb/src/common/debugger/EventLogger.cpp'
--- a/storage/ndb/src/common/debugger/EventLogger.cpp 2008-04-22 19:36:05 +0000
+++ b/storage/ndb/src/common/debugger/EventLogger.cpp 2008-08-08 17:56:58 +0000
@@ -758,7 +758,7 @@ void getTextEventBufferStatus(QQQQ) {
convert_unit(alloc, alloc_unit);
convert_unit(max_, max_unit);
BaseString::snprintf(m_text, m_text_len,
- "Event buffer status: used=%d%s(%d%) alloc=%d%s(%d%) "
+ "Event buffer status: used=%d%s(%d) alloc=%d%s(%d) "
"max=%d%s apply_epoch=%u/%u latest_epoch=%u/%u",
used, used_unit,
theData[2] ? (Uint32)((((Uint64)theData[1])*100)/theData[2]) : 0,
=== modified file 'storage/ndb/src/kernel/vm/WatchDog.cpp'
--- a/storage/ndb/src/kernel/vm/WatchDog.cpp 2008-04-22 19:36:05 +0000
+++ b/storage/ndb/src/kernel/vm/WatchDog.cpp 2008-08-08 17:56:58 +0000
@@ -139,7 +139,7 @@ WatchDog::run()
g_eventLogger->info("Watchdog: User time: %llu System time: %llu",
(Uint64)my_tms.tms_utime,
(Uint64)my_tms.tms_stime);
- g_eventLogger->warning("Watchdog: Warning overslept %u ms, expected %u ms.",
+ g_eventLogger->warning("Watchdog: Warning overslept %llu ms, expected %u ms.",
NdbTick_getMicrosPassed(last_time, now)/1000,
sleep_time);
}
=== modified file 'storage/ndb/src/mgmapi/LocalConfig.cpp'
--- a/storage/ndb/src/mgmapi/LocalConfig.cpp 2007-01-27 01:46:45 +0000
+++ b/storage/ndb/src/mgmapi/LocalConfig.cpp 2008-08-08 17:56:58 +0000
@@ -286,7 +286,7 @@ LocalConfig::readConnectString(const cha
bool return_value = parseString(connectString, err);
if (!return_value) {
BaseString err2;
- err2.assfmt("Reading %d \"%s\": %s", info, connectString, err.c_str());
+ err2.assfmt("Reading %s \"%s\": %s", info, connectString, err.c_str());
setError(0,err2.c_str());
}
return return_value;
=== modified file 'storage/ndb/src/ndbapi/Ndb.cpp'
--- a/storage/ndb/src/ndbapi/Ndb.cpp 2008-06-16 12:34:47 +0000
+++ b/storage/ndb/src/ndbapi/Ndb.cpp 2008-08-08 17:56:58 +0000
@@ -687,7 +687,7 @@ Ndb::startTransactionLocal(Uint32 aPrior
}//if
#ifdef VM_TRACE
if (tConnection->theListState != NdbTransaction::NotInList) {
- printState("startTransactionLocal %x", tConnection);
+ printState("startTransactionLocal %lx", (long)tConnection);
abort();
}
#endif
=== modified file 'storage/ndb/src/ndbapi/NdbTransaction.cpp'
--- a/storage/ndb/src/ndbapi/NdbTransaction.cpp 2008-08-06 15:33:19 +0000
+++ b/storage/ndb/src/ndbapi/NdbTransaction.cpp 2008-08-08 17:56:58 +0000
@@ -578,7 +578,7 @@ NdbTransaction::executeNoBlobs(NdbTransa
for (unsigned i = 0; i < theNdb->theNoOfCompletedTransactions; i++)
anyway += theNdb->theCompletedTransactionsArray[i] == this;
if (anyway) {
- theNdb->printState("execute %x", this);
+ theNdb->printState("execute %lx", (long)this);
abort();
}
#endif
@@ -1043,7 +1043,7 @@ NdbTransaction::release(){
theInUseState = false;
#ifdef VM_TRACE
if (theListState != NotInList) {
- theNdb->printState("release %x", this);
+ theNdb->printState("release %lx", (long)this);
abort();
}
#endif
=== modified file 'storage/ndb/src/ndbapi/Ndbif.cpp'
--- a/storage/ndb/src/ndbapi/Ndbif.cpp 2008-04-22 19:36:05 +0000
+++ b/storage/ndb/src/ndbapi/Ndbif.cpp 2008-08-08 17:56:58 +0000
@@ -315,7 +315,7 @@ Ndb::abortTransactionsAfterNodeFailure(U
localCon->theCompletionStatus = NdbTransaction::CompletedSuccess;
} else {
#ifdef VM_TRACE
- printState("abortTransactionsAfterNodeFailure %x", this);
+ printState("abortTransactionsAfterNodeFailure %lx", (long)this);
abort();
#endif
}
=== modified file 'storage/ndb/src/ndbapi/ObjectMap.hpp'
--- a/storage/ndb/src/ndbapi/ObjectMap.hpp 2008-04-22 19:36:05 +0000
+++ b/storage/ndb/src/ndbapi/ObjectMap.hpp 2008-08-08 17:56:58 +0000
@@ -85,10 +85,10 @@ NdbObjectIdMap::unmap(Uint32 id, void *o
m_map[i].m_next = m_firstFree;
m_firstFree = i;
} else {
- g_eventLogger->error("NdbObjectIdMap::unmap(%u, 0x%x) obj=0x%x",
- id, (long) object, (long) obj);
+ g_eventLogger->error("NdbObjectIdMap::unmap(%u, 0x%lx) obj=0x%lx",
+ id, (unsigned long) object, (unsigned long) obj);
DBUG_PRINT("error",("NdbObjectIdMap::unmap(%u, 0x%lx) obj=0x%lx",
- id, (long) object, (long) obj));
+ id, (unsigned long) object, (unsigned long) obj));
return 0;
}
| Thread |
|---|
| • bzr commit into mysql-5.1-telco-6.2 branch (msvensson:2641) | Magnus Svensson | 8 Aug |