Issue Details (XML | Word | Printable)

Key: CORE-5865
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Alexander Peshkov
Votes: 0
Watchers: 1

If you were logged in you would be able to see more operations.
Firebird Core

Alignment error on x86_64

Created: 06/Jul/18 06:37 PM   Updated: 01/Aug/18 05:55 AM
Component/s: None
Affects Version/s: 4.0 Initial, 3.0.0, 3.0.1, 3.0.2, 4.0 Alpha 1, 3.0.3
Fix Version/s: 3.0.4, 4.0 Beta 1

Environment: CLANG, release build

QA Status: Cannot be tested

 Description  « Hide
An issue was reported by Stephan Bergmann, LibreOffice developer.

Firebird 3.0 we build as part of LibreOffice
defines global operator new replacement functions in
src/common/classes/alloc.h (forwarding to MemoryPool) that do not in
general fulfil the alignment requirements for such functions.

The problem is when optimized code issues MOVAPS command against memory allocated with operator new.
Compiler expects 16-bytes alignment but replaced function new aligns memory only at 8-bytes boundary.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Alexander Peshkov added a comment - 06/Jul/18 06:41 PM
Fix is committed into master but I do not mark an issue as resolved cause we need to decide should 16 byte alignment be used for all or not platforms and should it be backported to FB3.

Alexander Peshkov added a comment - 27/Jul/18 01:56 PM
Backport to FB3 is required - it fixes release build on Mac. Yes, clang is used on it.