Go to file
gnzlbg 3d29d11ac2 Clean compilation -Wextra
Before this commit jemalloc produced many warnings when compiled with -Wextra
with both Clang and GCC. This commit fixes the issues raised by these warnings
or suppresses them if they were spurious at least for the Clang and GCC
versions covered by CI.

This commit:

* adds `JEMALLOC_DIAGNOSTIC` macros: `JEMALLOC_DIAGNOSTIC_{PUSH,POP}` are
  used to modify the stack of enabled diagnostics. The
  `JEMALLOC_DIAGNOSTIC_IGNORE_...` macros are used to ignore a concrete
  diagnostic.

* adds `JEMALLOC_FALLTHROUGH` macro to explicitly state that falling
  through `case` labels in a `switch` statement is intended

* Removes all UNUSED annotations on function parameters. The warning
  -Wunused-parameter is now disabled globally in
  `jemalloc_internal_macros.h` for all translation units that include
  that header. It is never re-enabled since that header cannot be
  included by users.

* locally suppresses some -Wextra diagnostics:

  * `-Wmissing-field-initializer` is buggy in older Clang and GCC versions,
    where it does not understanding that, in C, `= {0}` is a common C idiom
    to initialize a struct to zero

  * `-Wtype-bounds` is suppressed in a particular situation where a generic
    macro, used in multiple different places, compares an unsigned integer for
    smaller than zero, which is always true.

  * `-Walloc-larger-than-size=` diagnostics warn when an allocation function is
    called with a size that is too large (out-of-range). These are suppressed in
    the parts of the tests where `jemalloc` explicitly does this to test that the
    allocation functions fail properly.

* adds a new CI build bot that runs the log unit test on CI.

Closes #1196 .
2018-07-09 21:40:42 -07:00
bin Filter out "void *newImpl" in prof output. 2017-08-08 12:28:29 -07:00
build-aux Update config.{guess,sub} from upstream. 2016-11-10 15:08:32 -08:00
doc Rename huge_threshold to experimental, and tweak documentation. 2018-06-29 10:35:02 -07:00
include Clean compilation -Wextra 2018-07-09 21:40:42 -07:00
m4 jemalloc cpp new/delete bindings 2016-12-12 18:36:06 -08:00
msvc Fix MSVC build 2018-07-05 13:50:01 -07:00
scripts run_tests.sh: Don't test large vaddr with -m32. 2018-05-08 11:20:25 -07:00
src Clean compilation -Wextra 2018-07-09 21:40:42 -07:00
test Clean compilation -Wextra 2018-07-09 21:40:42 -07:00
.appveyor.yml Revert "CI: Remove "catgets" dependency on appveyor." 2018-03-15 13:58:42 -07:00
.autom4te.cfg Disable autom4te cache. 2014-09-02 17:49:29 -07:00
.gitattributes fix git handling of newlines on windows 2014-05-07 18:48:39 -04:00
.gitignore Fix MSVC 2015 project and add a VS 2017 solution 2017-10-16 10:26:54 -07:00
.travis.yml Clean compilation -Wextra 2018-07-09 21:40:42 -07:00
autogen.sh Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
ChangeLog Update ChangeLog for 5.1.0. 2018-05-08 12:06:34 -07:00
config.stamp.in Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
configure.ac Clean compilation -Wextra 2018-07-09 21:40:42 -07:00
COPYING Update copyright dates. 2018-05-03 15:31:42 -07:00
INSTALL.md INSTALL.md: Clarify --with-lg-vaddr. 2018-05-04 15:50:12 -07:00
jemalloc.pc.in Reformat the version number in jemalloc.pc.in. 2018-05-07 20:12:03 -07:00
Makefile.in Add unit test for opt.huge_threshold. 2018-06-29 10:35:02 -07:00
README Update project URL. 2016-09-12 11:56:24 -07:00
run_tests.sh Introduce scripts to run all possible tests 2017-01-30 17:51:57 -08:00
TUNING.md Add TUNING.md. 2018-05-03 12:52:52 -07:00

jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.  jemalloc first came
into use as the FreeBSD libc allocator in 2005, and since then it has found its
way into numerous applications that rely on its predictable behavior.  In 2010
jemalloc development efforts broadened to include developer support features
such as heap profiling and extensive monitoring/tuning hooks.  Modern jemalloc
releases continue to be integrated back into FreeBSD, and therefore versatility
remains critical.  Ongoing development efforts trend toward making jemalloc
among the best allocators for a broad range of demanding applications, and
eliminating/mitigating weaknesses that have practical repercussions for real
world applications.

The COPYING file contains copyright and licensing information.

The INSTALL file contains information on how to configure, build, and install
jemalloc.

The ChangeLog file contains a brief summary of changes for each release.

URL: http://jemalloc.net/