• 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
Makefile.am 386 Bytes