https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60928
--- Comment #5 from Sean Santos <quantheory at gmail dot com> --- Well, I thought I understood this, but maybe not. I was thinking that "subobject" in this context meant "component". A "list item" here is just any variable or common block listed in a clause, in this case the private clause. And "allocatable" would have to apply to the component, not the variable, because otherwise it would make no sense to say that the subobject has an allocation status. So in this interpretation, the third and fourth examples you list would be perfectly valid cases. The problem with that is that Fortran 2003 defines "subobject" in a way that can include array sections, and OpenMP 4.0 also allows "list item" to refer to an array section. So there's an alternative interpretation here, which is that all this "subobject" stuff is just a very poorly worded way of referring to the fact that you can have a section of an array be thread private. (But then it is still kind of strange to talk about the "allocation status" of an array section.) Anyway, I retract what I said before. It's not clear to me what the standard is trying to say, and just as plausible that this is trying to refer to array sections as to derived type components.