The lifetime-extended temporary of the true operand shouldn't be destructed when the false operand is evaluated and throws. Call pushFullExprCleanup instead of EHScopeStack::pushCleanup in pushLifetimeExtendedDestroy so that the destructor is called conditionally when we are in a conditional expression.
rdar://problem/64829372
clang-format: please reformat the code