Consider this example
struct X { int i; };
extern X xobj;
int* p3 = &xobj.i; // #1
X xobj; // #2
The declaration at #2 causes the construction of xobj, the taking address operation of the member subobject i is before that point. According to [class.cdtor] p3
To form a pointer to (or access the value of) a direct non-static member of an object obj, the construction of obj shall have started and its destruction shall not have completed, otherwise the computation of the pointer value (or accessing the member value) results in undefined behavior.
So, the operation at #1 is UB?