Bug #74170 st_mysql_show_var::value should be void* not char*
Submitted: 1 Oct 2014 6:53 Modified: 2 Nov 2014 16:24
Reporter: Hartmut Holzgraefe Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.6.20, all? OS:Any
Assigned to: CPU Architecture:Any

[1 Oct 2014 6:53] Hartmut Holzgraefe
Description:
... as conversion from function pointer to char* is not allowed in C / C++

How to repeat:
In my plugin I have:

static struct st_mysql_show_var my_plugin_statvars[]=
{
    {"my_show_entry", (char *)&show_my_entry, SHOW_FUNC}
}

with C I'm getting 

my_plugin.c:131:32: warning: ISO C forbids conversion of function pointer to object pointer type [-Wpedantic]
    {"my_show_entry", (char *)&show_my_entry, SHOW_FUNC}
                      ^

and with C++

my_plugin.cc:131:41: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object [enabled by default]
    {"my_show_entry", (char *)&show_my_entry, SHOW_FUNC}
                               ^

Suggested fix:
Change st_mysql_show_var::value type to void* to allow writing of warning-free plugin code
[2 Oct 2014 16:24] MySQL Verification Team
Dear Mr. Holzgraefe,

I have fully analyzed your bug report. It seems to be fully justified, but for full verification, I do need to know a version of your C / C++ compiler.

Many thanks in advance.
[3 Nov 2014 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".