I don't see how. The two types had better be the same before and after gimplification. To be clearer, they can be different, but they must be *compatible*. So indeed one can't be an aggregate when the other isn't.