• Adam Simpkins's avatar
    logging: fix the behavior of XLOG_IF(FATAL, condition) · e8c31188
    Adam Simpkins authored
    Summary:
    Previously `XLOG_IF(FATAL, condition)` always crashed regardless of the
    condition check.  When `XLOG_IF()` was added it did not update the checks used
    to mark the statement as `[noreturn]` based on the log level.  As a result
    `XLOG_IF(FATAL, ...)` always used the `[noreturn]` APIs, even though this code
    can return if the condition is not true.
    
    This splits the `XLOG()` and `XLOG_IF()` implementations so that `XLOG(FATAL)`
    can still be marked as `noreturn` but `XLOG_IF(FATAL, ...)` is no `noreturn`.
    
    Reviewed By: yfeldblum, mnv104
    
    Differential Revision: D8817269
    
    fbshipit-source-id: 47a493eaaac69c563cff07da0888dd423f7dc07d
    e8c31188
xlog.h 24 KB