http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-09-12 20:22:58 UTC --- (In reply to comment #2) > some progress.. the object file that leads to wrong results is > parallel_rng_types.o. I'll see if I can get some further insight. It seems that - for some reason - IMPLICIT_PURE is only set for functions. (Or at least that's here the case for a simple test case.) If you produce a module, have a look at the .mod file and search for IMPLICIT_PURE. In my example I have something like: 3 's' 'm' '' 1 ((PROCEDURE [...] FUNCTION IMPLICIT_PURE) [...] where "s" is the name of my function and "m" is the name of the module. Then, check whether that procedure could be PURE or has to be IMPURE.