arras-energy / gridlabd

Arras Energy simulator
https://www.arras.energy/
BSD 3-Clause "New" or "Revised" License
5 stars 5 forks source link

Fix build warnings #195

Open dchassin opened 5 months ago

dchassin commented 5 months ago

Problem description

The following warnings are emitted during GitHub actions build:

module/mysql/collector.cpp: In constructor ‘collector::collector(MODULE*)’:
module/mysql/collector.cpp:46:23: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class collector’ with no trivial copy-assignment; use assignment instead [-Wclass-memaccess]
   46 |                 memset(this,0,sizeof(collector));
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.h:129,
                 from module/mysql/collector.cpp:8:
module/mysql/collector.h:9:7: note: ‘class collector’ declared here
    9 | class collector : public gld_object {
      |       ^~~~~~~~~
module/mysql/collector.cpp: In member function ‘int collector::create()’:
module/mysql/collector.cpp:52:15: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class collector’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
   52 |         memcpy(this,defaults,sizeof(*this));
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.h:129,
                 from module/mysql/collector.cpp:8:
module/mysql/collector.h:9:7: note: ‘class collector’ declared here
    9 | class collector : public gld_object {
      |       ^~~~~~~~~
  CXX      module/mysql/mysql_la-init.lo
  CXX      module/mysql/mysql_la-main.lo
module/mysql/database.cpp: In constructor ‘database::database(MODULE*)’:
module/mysql/database.cpp:74:23: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘class database’ with no trivial copy-assignment; use assignment instead [-Wclass-memaccess]
   74 |                 memset(this,0,sizeof(database));
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.cpp:14:
module/mysql/database.h:49:7: note: ‘class database’ declared here
   49 | class database : public gld_object {
      |       ^~~~~~~~
module/mysql/database.cpp: In member function ‘int database::create()’:
module/mysql/database.cpp:81:15: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class database’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
   81 |         memcpy(this,defaults,sizeof(*this));
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.cpp:14:
module/mysql/database.h:49:7: note: ‘class database’ declared here
   49 | class database : public gld_object {
      |       ^~~~~~~~
module/mysql/database.cpp: In member function ‘char* database::get_sqldata(char*, size_t, gld_property&, gld_unit*)’:
module/mysql/database.cpp:371:67: warning: ‘%g’ directive output may be truncated writing between 1 and 13 bytes into a region of size 7 [-Wformat-truncation=]
  371 |                                 snprintf(buffer,sizeof(buffer)-1,"%g",value);
      |                                                                   ^~
module/mysql/database.cpp:371:66: note: assuming directive output of 12 bytes
  371 |                                 snprintf(buffer,sizeof(buffer)-1,"%g",value);
      |                                                                  ^~~~
In file included from /usr/include/stdio.h:894,
                 from ./source/gridlabd.h:108,
                 from module/mysql/database.h:10,
                 from module/mysql/database.cpp:14:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:71:35: note: ‘__builtin___snprintf_chk’ output between 2 and 14 bytes into a destination of size 7
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   72 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   73 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
module/mysql/database.cpp:376:59: warning: ‘%g’ directive output may be truncated writing between 1 and 13 bytes into a region of size 7 [-Wformat-truncation=]
  376 |                         snprintf(buffer,sizeof(buffer)-1,"%g",prop.get_double());
      |                                                           ^~
module/mysql/database.cpp:376:58: note: assuming directive output of 12 bytes
  376 |                         snprintf(buffer,sizeof(buffer)-1,"%g",prop.get_double());
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.h:127,
                 from module/mysql/recorder.cpp:9:
module/mysql/recorder.h:17:7: note: ‘class recorder’ declared here
   17 | class recorder : public gld_object {
      |       ^~~~~~~~
module/mysql/recorder.cpp: In member function ‘int recorder::create()’:
module/mysql/recorder.cpp:73:15: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class recorder’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
   73 |         memcpy(this,defaults,sizeof(*this));
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from module/mysql/database.h:127,
                 from module/mysql/recorder.cpp:9:
module/mysql/recorder.h:17:7: note: ‘class recorder’ declared here
   17 | class recorder : public gld_object {
      |       ^~~~~~~~
  CXX      module/powerflow/powerflow_la-init.lo
module/mysql/recorder.cpp: In member function ‘int recorder::init(OBJECT*)’:
module/mysql/recorder.cpp:219:54: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1022 [-Wformat-truncation=]
  219 |                         snprintf(tmp,sizeof(tmp)-1,"`%s` %s, ",fieldname,sqltype);
      |                                                      ^~        ~~~~~~~~~
In file included from /usr/include/stdio.h:894,
                 from ./source/gridlabd.h:108,
                 from module/mysql/database.h:10,
                 from module/mysql/recorder.cpp:9:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:71:35: note: ‘__builtin___snprintf_chk’ output 6 or more bytes (assuming 1029) into a destination of size 1023
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   72 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   73 |                                    __va_arg_pack ());
      |