CodeGen: Base the conditional cleanup machinery on variadic templates
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 12 Mar 2015 23:41:40 +0000 (23:41 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 12 Mar 2015 23:41:40 +0000 (23:41 +0000)
commit51680bccdaa74f82f7095a5bdf40fac811deb0d2
treee5b75bb85c8d9179899bb6b25f19648336db6d59
parent4339abe66f26070471f2c08b1131c08b68f19f91
CodeGen: Base the conditional cleanup machinery on variadic templates

This is complicated by the fact that we can't simply use side-effecting
calls in an argument list without losing all guarantees about the order
they're emitted. To keep things deterministic we use tuples and brace
initialization, which thankfully guarantees evaluation order.

No functionality change intended.

llvm-svn: 232121
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/CodeGen/EHScopeStack.h