Hello,
we're seeing a miscompilation using GCC 3.4's inter-module
optimization. The bug is caused by scheduling violating a
dependency. This in turn is because a struct type defined
in both translation units gets assigned *different* alias
set numbers, so that (after inter-module inlining) the use
of a local variable gets a different alias set than the
initialization of the variable.
Initial debugging shows that there are simply two different
instances of the type, each of which then gets assigned its
own alias set. What is supposed to prevent this?
The 3.5 IMA doesn't show this bug in my testcase. However,
it appears to be rather completely rewritten ...
Any suggestions where to look further?