• Nils Goroll's avatar
    Disable strict aliasing with gcc where vtree.h is used · 777e03ba
    Nils Goroll authored
    Please replace this commit with a better solution, if you have one.
    
    e1ac5933 brought us the VRBT node
    color encoded in the lower two bits of pointers.
    
    gcc strict aliasing rules (as enabled with -O2 and higher) forbid
    aliased lvalue access as in the following macro expanded code:
    
    (*(uintptr_t *)&(parent)->entry.rbe_parent) &= ~((uintptr_t)3);
    
    Until we have a better solution, disable strict aliasing with gcc
    for targets with any source file using vtree.h.
    
    Note that we would want to limit -fno-strict-aliasing to individual
    compliation units, but automake does not offer a simple and clean way
    to achieve this:
    
    https://www.gnu.org/software/automake/manual/html_node/Per_002dObject-Flags.html
    777e03ba
Name
Last commit
Last update
.circleci Loading commit data...
.github Loading commit data...
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
vmod Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.lgtm.yml Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...
vtc.am Loading commit data...