• 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
..
Makefile.am Loading commit data...
flint.lnt Loading commit data...
flint.sh Loading commit data...
generate.py Loading commit data...
vcc_acl.c Loading commit data...
vcc_action.c Loading commit data...
vcc_backend.c Loading commit data...
vcc_backend_util.c Loading commit data...
vcc_compile.c Loading commit data...
vcc_compile.h Loading commit data...
vcc_expr.c Loading commit data...
vcc_namespace.h Loading commit data...
vcc_parse.c Loading commit data...
vcc_storage.c Loading commit data...
vcc_symb.c Loading commit data...
vcc_token.c Loading commit data...
vcc_types.c Loading commit data...
vcc_utils.c Loading commit data...
vcc_var.c Loading commit data...
vcc_vmod.c Loading commit data...
vcc_xref.c Loading commit data...
vmodtool.py Loading commit data...
vsctool.py Loading commit data...