summaryrefslogtreecommitdiff
path: root/storage/perfschema
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2010-05-31 12:29:54 -0300
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2010-05-31 12:29:54 -0300
commita8c288054efb4de42cefa5bf06bcb487171ed9d3 (patch)
treebbbd0851e788a87bdf80dacc828f8de102b381b4 /storage/perfschema
parente5bcb6f36ae784fb794a3363acf8ba75f937ca8b (diff)
downloadmariadb-git-a8c288054efb4de42cefa5bf06bcb487171ed9d3.tar.gz
Bug#53445: Build with -Wall and fix warnings that it generates
Fix various mismatches between function's language linkage. Any particular function that is declared in C++ but should be callable from C must have C linkage. Note that function types with different linkages are also distinct. Thus, if a function type is declared in C code, it will have C linkage (same if declared in a extern "C" block). client/mysql.cc: Mismatch between prototype and declaration. client/mysqltest.cc: mysqltest used to be C code. Use C linkage where appropriate. cmd-line-utils/readline/input.c: Isolate unreachable code. include/my_alloc.h: Function type must have C linkage. include/my_base.h: Function type must have C linkage. include/my_global.h: Add helper macros to avoid spurious namespace indentation. include/mysql.h.pp: Update ABI file. mysys/my_gethwaddr.c: Remove stray carriage return and fix coding style. plugin/semisync/semisync_master_plugin.cc: Callback function types have C linkage. plugin/semisync/semisync_slave_plugin.cc: Callback function types have C linkage. sql/derror.cc: Expected function type has C linkage. sql/field.cc: Use helper macro and fix indentation. sql/handler.cc: Expected function type has C linkage. sql/item_sum.cc: Correct function linkages. Remove now unnecessary cast. sql/item_sum.h: Add prototypes with the appropriate linkage as otherwise they are distinct. sql/mysqld.cc: Wrap functions in C linkage mode. sql/opt_range.cc: C language linkage is ignored for class member functions. sql/partition_info.cc: Add wrapper functions with C linkage for class member functions. sql/rpl_utility.h: Use helper macro and fix indentation. sql/sql_class.cc: Change type of thd argument -- THD is a class. Use helper macro and fix indentation. sql/sql_class.h: Change type of thd argument -- THD is a class. sql/sql_select.cc: Expected function type has C linkage. sql/sql_select.h: Move prototype to sql_test.h sql/sql_show.cc: Expected function type has C linkage. sql/sql_test.cc: Fix required function prototype and fix coding style. sql/sql_test.h: Removed unnecessary export and add another. storage/myisammrg/ha_myisammrg.cc: Expected function type has C linkage. storage/perfschema/pfs.cc: PSI headers are declared with C language linkage, which also applies to function types.
Diffstat (limited to 'storage/perfschema')
-rw-r--r--storage/perfschema/pfs.cc7
-rw-r--r--storage/perfschema/pfs_instr.cc4
-rw-r--r--storage/perfschema/pfs_instr_class.cc4
-rw-r--r--storage/perfschema/pfs_server.cc7
4 files changed, 19 insertions, 3 deletions
diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc
index 380801c8677..f5901540ab0 100644
--- a/storage/perfschema/pfs.cc
+++ b/storage/perfschema/pfs.cc
@@ -806,6 +806,10 @@ static int build_prefix(const LEX_STRING *prefix, const char *category,
} \
return;
+/* Use C linkage for the interface functions. */
+
+C_MODE_START
+
static void register_mutex_v1(const char *category,
PSI_mutex_info_v1 *info,
int count)
@@ -2054,8 +2058,9 @@ static void* get_interface(int version)
}
}
+C_MODE_END
+
struct PSI_bootstrap PFS_bootstrap=
{
get_interface
};
-
diff --git a/storage/perfschema/pfs_instr.cc b/storage/perfschema/pfs_instr.cc
index fb40db02ca3..9507e2d2582 100644
--- a/storage/perfschema/pfs_instr.cc
+++ b/storage/perfschema/pfs_instr.cc
@@ -134,6 +134,10 @@ static PFS_events_waits *thread_history_array= NULL;
static LF_HASH filename_hash;
/** True if filename_hash is initialized. */
static bool filename_hash_inited= false;
+C_MODE_START
+/** Get hash table key for instrumented files. */
+static uchar *filename_hash_get_key(const uchar *, size_t *, my_bool);
+C_MODE_END
/**
Initialize all the instruments instance buffers.
diff --git a/storage/perfschema/pfs_instr_class.cc b/storage/perfschema/pfs_instr_class.cc
index ac8aa64b0c5..d1535aa851b 100644
--- a/storage/perfschema/pfs_instr_class.cc
+++ b/storage/perfschema/pfs_instr_class.cc
@@ -118,6 +118,10 @@ PFS_instr_class global_table_class=
static LF_HASH table_share_hash;
/** True if table_share_hash is initialized. */
static bool table_share_hash_inited= false;
+C_MODE_START
+/** Get hash table key for instrumented tables. */
+static uchar *table_share_hash_get_key(const uchar *, size_t *, my_bool);
+C_MODE_END
static volatile uint32 file_class_dirty_count= 0;
static volatile uint32 file_class_allocated_count= 0;
diff --git a/storage/perfschema/pfs_server.cc b/storage/perfschema/pfs_server.cc
index a1216c6ac30..f852a9fe732 100644
--- a/storage/perfschema/pfs_server.cc
+++ b/storage/perfschema/pfs_server.cc
@@ -32,8 +32,11 @@
PFS_global_param pfs_param;
+C_MODE_START
static void destroy_pfs_thread(void *key);
-void cleanup_performance_schema(void);
+C_MODE_END
+
+static void cleanup_performance_schema(void);
struct PSI_bootstrap*
initialize_performance_schema(const PFS_global_param *param)
@@ -100,7 +103,7 @@ static void destroy_pfs_thread(void *key)
destroy_thread(pfs);
}
-void cleanup_performance_schema(void)
+static void cleanup_performance_schema(void)
{
cleanup_instruments();
cleanup_sync_class();