6.5.3.2 Address and indirection operators
Constraints
1 The operand of the unary & operator shall be either a
function designator, the result of a [] or unary
\* operator, or an lvalue that designates an object that
is not a bit-field and is not declared with the
register storage-class specifier.
So as the parameter is an lvalue it is guaranteed to work with the & operator.
In the standard at https://web.archive.org/web/20181230041359if_/http://www.ope...
So as the parameter is an lvalue it is guaranteed to work with the & operator.