https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117514
--- Comment #6 from Jordan <8e3g6jay6 at mozmail dot com> --- I know I'm rambling a lot in here, but I have narrowed this down even further: type(c_ptr) :: blah blah = c_loc(required_extension) call required_device_extensions%push_back(blah) This doesn't blow up the compiler. call required_device_extensions%push_back(c_loc(required_extension)) This blows up the compiler.