When property is declared in a superclass (or in a protocol),
it still can be of CXXRecord type and Sema could've already
generated a body for us. This patch joins two branches and
two ways of acquiring IVar in order to reuse the existing code.
And prevent us from generating l-value to r-value casts for
C++ types.
rdar://67416721
At this point Prop may contain a completely unrelated property decl. It doesn't necessarily correspond to the IVar or have the right name. We keep it after the end of the loop and use it later. This doesn't sound right.