• mbrandy's avatar
    [test] Protect against infinite loops in LiveRange logic. · 4ddc9f1c
    mbrandy authored
    A subset of the LiveRangeUnitTests (SplitInvalidPreStart,
    InvalidSplitEnd, SplitInvalidPostEnd) fail or hang on AIX in release
    mode.
    
    These tests fork a child which is expected to crash in
    register-allocator code after feeding in bad inputs.
    
    In debug mode, they behave as expected due to hitting a debug assert.
    
    In release mode, however, the tests rely only on the fact that
    dereferencing a null pointer will cause a SEGFAULT.  This is true on
    most platforms, but not AIX.  An AIX process has valid low memory
    pages mapped for reading and will not fault.  Thus, these tests fail
    or hang because the child process survives the load from address zero
    and either completes (with undefined results) or goes into an infinite
    loop.
    
    R=bmeurer@chromium.org, danno@chromium.org, michael_dawson@ca.ibm.com
    BUG=
    
    Review URL: https://codereview.chromium.org/1384733002
    
    Cr-Commit-Position: refs/heads/master@{#31090}
    4ddc9f1c
live-range-unittest.cc 14.2 KB