-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Remove defaulted constructors and operators of StdArray #43153
Conversation
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-43153/37450
|
A new Pull Request was created by @iarspider for master. It involves the following packages:
@Dr15Jones, @makortel, @cmsbuild, @smuzaffar can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
@fwyzard FYI |
please test for CMSSW_13_3_CPP20_X |
I'm starting to hate c++20, and we are not even using it yet. This is the second breaking change they have introduced between c++17 and c++20 "just because"... ok, so maybe it would be more fair to say that I really dislike the approach followed by the c++ standard committee over the past years - which is true irrespective of these specific breaking changes. |
@iarspider can you just remove the whole |
i.e.
|
done |
please test for CMSSW_13_3_CPP20_X |
please test for CMSSW_13_3_CPP20_X |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-43153/37453
|
Pull request #43153 was updated. @makortel, @smuzaffar, @Dr15Jones can you please check and sign again. |
please test |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-43153/37458
|
I understand, but I assumed that if you remove the defaulted assignment operators and provide user-specific ones, the compiler will not implement the default ones. I might be wrong :-) |
Pull request #43153 was updated. @Dr15Jones, @smuzaffar, @makortel can you please check and sign again. |
I hope the assignment operators from https://en.cppreference.com/w/cpp/language/copy_assignment
https://en.cppreference.com/w/cpp/language/move_assignment
|
compiler explorer shows that the following compiles |
please test for CMSSW_13_3_CPP20_X |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b44ba4/35528/summary.html Comparison SummarySummary:
|
Comparison differences are related to #39803 |
+core |
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @rappoccio, @antoniovilela, @sextonkennedy (and backports should be raised in the release meeting by the corresponding L2) |
-1 Failed Tests: Build The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:
You can see more details here: BuildI found compilation error when building: >> Building shared library tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/src/HeterogeneousTestCUDADevice/libHeterogeneousTestCUDADevice.so Copying tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/src/HeterogeneousTestCUDADevice/libHeterogeneousTestCUDADevice.so to productstore area: Leaving library rule at HeterogeneousTest/CUDADevice >> Compiling /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_13_3_CPP20_X_2023-10-30-1100/src/HeterogeneousTest/CUDADevice/test/testDeviceAddition.cu nvcc error : 'cudafe++' died due to signal 9 (Kill signal) gmake: *** [tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/test/testCudaDeviceAddition/testDeviceAddition.cu.o] Error 1 >> Cuda Device Link tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/test/testCudaDeviceAddition/testCudaDeviceAddition_cudadlink.o nvlink fatal : Could not open input file 'tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/test/testCudaDeviceAddition/testDeviceAddition.cu.o' (target: sm_60) gmake: *** [tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/test/testCudaDeviceAddition/testCudaDeviceAddition_cudadlink.o] Error 1 >> Building binary testCudaDeviceAddition /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02809/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/../lib/gcc/x86_64-redhat-linux-gnu/12.3.1/../../../../x86_64-redhat-linux-gnu/bin/ld.bfd: cannot find tmp/el8_amd64_gcc12/src/HeterogeneousTest/CUDADevice/test/testCudaDeviceAddition/testDeviceAddition.cu.o: No such file or directory |
cudafe++ fails in IBs as well |
+1 |
PR description:
Compilation of StdArray_t test fails in CPP20 IBs:
This happens because the conditions for enabling aggregate initialization changed in C++20 compared to C++17:
This PR conditionally removes user-declared constructors when code is compiled with C++20.
PR validation:
Bot tests