Take address of private member, not variable passed in

A very tiny, simple fix for a very hard to uncover problem.

The problem is -- we took the address of a temporary (the object passed into the constructor), rather than the address of the variable stored locally. I guess gcc optimizes in such a way that we get the address of the private member (and everything works), while clang does not.