http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556

--- Comment #4 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> 
2012-09-12 20:26:49 UTC ---
(In reply to comment #3)
> (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.

yes, I think from looking at the optimized dumps, I can see that a function
that is called twice in the correct version is called only once in the wrong
version. I think I might be able to reduce it to a testcase. (If you care, the
function is rn53 which calls rn32 only once, so I guess that's the issue).

Reply via email to