http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40963
--- Comment #6 from Lars Pastewka <pastewka at gmail dot com> 2012-01-31 13:24:27 UTC --- A simple workaround for this bug seems to be: cptr = c_loc(obj1%array(1,1)) in the above example. It compiles and appears to be doing what it should. Maybe that also helps narrowing it down.