http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586
--- Comment #34 from Michael Matz <matz at gcc dot gnu.org> 2011-01-19 16:39:30 UTC --- > As I said in comment #27, gfc_component structs belonging to the type, they > are shared between target and non-target variants. Thus one cannot set > inherited target attributes on them. Yep, that's what I figured eventually :) The question now is if for: -------------------------- type bar integer :: a end type bar type(bar), pointer :: b type(bar) :: c -------------------------- 'b' and 'c' should have the same type. In other words should "type(bar),pointer" be a different type vs "type(bar)" already in the frontend representation for types, or not? If they would be they wouldn't have shared components and we would be free to set attributes as we like. Not knowing much about the several engineering decisions taken while developing the frontend _I_ personally would have done it this way. Alas, no cake for me :) So, some guidance by the frontend maintainers would be welcome which path I should take. Making it more the above suggestion, or really going with the two backend_decls per entity? (what I'm worried about with the two backend_decls is, what in one year we find other reasons why some attributes need to be different from the base case, then we already need four backend_delcs)