It would be nice if there was a way to tell compilers not to drop the lock stack and thus issue warnings when accessing a symbol that needs a lock inside `Assume`/`Assert`.

Hit by (at least): @ajtowns , @jnewbery , me.
{
    BOOST_CHECK(IsHexNumber("0x0"));
    BOOST_CHECK(IsHexNumber("0"));
    BOOST_CHECK(IsHexNumber("0x10"));
    BOOST_CHECK(IsHexNumber("10"));
    BOOST_CHECK(IsHexNumber("0xff"));
    BOOST_CHECK(IsHexNumber("ff"));
    BOOST_CHECK(IsHexNumber("0xFfa"));
    BOOST_CHECK(IsHexNumber("Ffa"));
    BOOST_CHECK(IsHexNumber("0x00112233445566778899aabbccddeeffAABBCCDDEEFF"));
    BOOST_CHECK(IsHexNumber("00112233445566778899aabbccddeeffAABBCCDDEEFF"));
    BOOST_CHECK(!IsHexNumber(""));   
    BOOST_CHECK(!IsHexNumber("0x")); 
    BOOST_CHECK(!IsHexNumber("0x0 ")); 
    BOOST_CHECK(!IsHexNumber(" 0x0")); 
    BOOST_CHECK(!IsHexNumber("0x 0")); 
    BOOST_CHECK(!IsHexNumber(" "));    
    BOOST_CHECK(!IsHexNumber("0x0ga")); 
    BOOST_CHECK(!IsHexNumber("x0"));    
    BOOST_CHECK(!IsHexNumber("0x0x00")); 
}
BOOST_AUTO_TEST_CASE(util_seed_insecure_rand)