-
-
Notifications
You must be signed in to change notification settings - Fork 607
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dmd.expression: Use align(8) for alignment of UnionExp #8907
Conversation
Thanks for your pull request, @ibuclaw! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub fetch digger
dub run digger -- build "master + dmd#8907" |
Wont |
DMC++ supports |
Heh... Let's do that then. :-) |
Warning, C++ headers will become ugly. |
@ibuclaw this is labelled |
UnionExp has both
Whoops, C++ port will follow, as this is affecting gcc trunk. :-) |
4f76fe7
to
953da08
Compare
Updated to use |
SPARC port is killed with a sigbus error when building any module. This was due to an unaligned load in
IntegerExp::toInteger
from inside interpret() where UnionExp is prevalent.The reason is because
real_t
may itself be a struct that is not suitably aligned for accessingdinteger_t
(8-bytes).Just waiting to hear back that this is fine, otherwise the corrective action would be to add a
dinteger_t
field so thatUnionExp
is suitably aligned for both nativereal_t
anddinteger_t
types.It would be nice if dmc++ supported
__attribute__(aligned(8)))
instead of having this here...