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

Fix warnings from clang 4.0.0 and Valgrind 3.12.0

    XMLWordPrintable

    Details

      Description

      Fix most InnoDB and XtraDB warnings from clang 4.0.

      In functions that declare pointer parameters as nonnull,
      remove nullness checks, because GCC would optimize them away anyway.

      Use #ifdef instead of #if when checking for a configuration flag.

      Clang says that left shifts of negative values are undefined.
      So, use ~0U instead of ~0 in a number of macros.

      Some functions that were defined as UNIV_INLINE were declared as
      UNIV_INTERN. Consistently use the same type of linkage.

      ibuf_merge_or_delete_for_page() could pass bitmap_page=NULL to
      buf_page_print(), conflicting with the _attribute_((nonnull)).

      Fix some bogus-looking Valgrind warnings.

      buf_block_init(): Initialize buf_page_t::flush_type.
      For some reason, Valgrind 3.12.0 would seem to flag some
      bits in adjacent bitfields as uninitialized, even though only
      the two bits of flush_type were left uninitialized. Initialize
      the field to get rid of many warnings.

      mach_write_to_1(), mach_write_to_2(), mach_write_to_3():
      Rewrite the assertions that ensure that the most significant
      bits are zero. Apparently, clang 4.0 would optimize expressions
      of the form ((n | 0xFF) <= 0x100) to (n <= 0x100). The redundant
      0xFF was added in the first place in order to suppress a
      Valgrind warning. (Valgrind would warn about comparing uninitialized
      values even in the case when the uninitialized bits do not affect
      the result of the comparison.)

        Attachments

          Activity

            People

            Assignee:
            marko Marko Mäkelä
            Reporter:
            marko Marko Mäkelä
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Due:
              Created:
              Updated:
              Resolved: