Ludo Brands wrote:
Attached is a patch to components/synedit/synregexpr.pas that
fixes alignment issues. I've tested the code against a test
unit (attached) that is a mix of
fpc/packages/regexpr/examples/testreg1.pp and
Demos/SelfTest/TestRegExpr.drp (from the official TRegExpr
package). The result is the same for aligned and non-aligned
platforms (error 120,121,122,123,124 and 703). This tests
only that my changes have not introduced a new bug, but,
since I'm testing on Solaris x86, I can't be sure that all
data is aligned properly. It's possible I've missed
something. I've tried to set the AC cpu flag to force
alignment checking but that generates alignment errors in libc :(
Could you please test this on one of your sparc/arm systems?
I've tested the patch on a "qemulated" sparc debian and it works fine with
the test unit. QEMU sparc does generate SIGBUS for unaligned data (contrary
to QEMU ARM). A small testprogram (unaligned integer) confirmed that.
Not using Qemu for SPARC here- got the real thing in abundance :-) I
can't help but wonder whether Qemu ARM ignores alignment issues because
of the CPU it's emulating or simply because the coder didn't notice the
restriction. More tomorrow.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus