Skip to content

Conversation

@hageboeck
Copy link
Member

@hageboeck hageboeck commented Jan 13, 2026

On 32 bits, the alignment of double is less strict than for atomic_ref, so TH3D::FillThreadSafe cannot be used.

Tested the #if defined in a 32 bit container, and it indeed disables the Fill function. I couldn't reproduce the alignment failure, though, since it ran on a 64 bit machine that kept the alignment at 64.

Fix #20834.

On 32 bits, the alignment of double is less strict than for
atomic_ref<double>, so TH3D::FillThreadSafe cannot be used.

Fix root-project#20834.
@hageboeck hageboeck self-assigned this Jan 13, 2026
@hahnjo
Copy link
Member

hahnjo commented Jan 13, 2026

Shouldn't we rather fix the alignment of the variables in question?

@github-actions
Copy link

Test Results

    23 files      23 suites   4d 1h 17m 32s ⏱️
 3 816 tests  3 816 ✅ 0 💤 0 ❌
80 421 runs  80 421 ✅ 0 💤 0 ❌

Results for commit a78974f.

@hageboeck
Copy link
Member Author

Shouldn't we rather fix the alignment of the variables in question?

It's a valid alternative, but I guess the work to be invested outweighs the benefits. This would only be used on 32-bit platforms with multithreaded filling from RDF with C++20. And more importantly, with RHist integrated in RDF, I would actually remove this function.
So my idea would be to fix the test failure in 6.38, and not include this any more in 6.40.

@hageboeck hageboeck requested a review from dpiparo January 14, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

c++20 related test filure on ix86 (32 bit intel)

2 participants