Totally safe.
This is in paragraph 3 (section "12.2, [class.temporary]):
Temporary objects are destroyed as the last step in evaluating the full expression (1.9), which (lexically) contains the point at which they were created.
& sect; 1.9 / 10 ( [intro.execution]) defines the full expression:
A full expression is an expression that is not a subexpression of another expression.
and includes an example somewhat similar to your question:
void f() {
if (S(3).v())
{ }
}
N3691, 2013 ++ - , , , ++ 1x , , C + + 1y (x & cong; 4; y & cong; 7)