Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-6819

st_mysql_show_var::value should be void* not char*

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.14
    • Fix Version/s: 10.1.4
    • Component/s: Plugins
    • Labels:

      Description

      (also filed as http://bugs.mysql.com/74170 )

      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

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              There are no comments yet on this issue.

                People

                • Assignee:
                  serg Sergei Golubchik
                  Reporter:
                  hholzgra Hartmut Holzgraefe
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: