Conversation
|
Starting build on |
5e3b4c9 to
4cd3484
Compare
|
Starting build on |
|
Build failed on mac11/cxx17. Failing tests:
And 4 more |
This fixes issue root-project#9543 In the issue root-project#9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue root-project#9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix root-project#9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
This fixes issue #9543 In the issue #9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue #9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix #9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
This fixes issue root-project#9543 In the issue root-project#9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue root-project#9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix root-project#9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
|
Eh no, @pcanal's PR just contained a typo 😅 ping @Axel-Naumann @pcanal |
|
Starting build on |
This fixes issue root-project#9543 In the issue root-project#9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue root-project#9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix root-project#9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
This fixes issue #9543 In the issue #9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue #9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix #9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
This fixes issue #9543 In the issue #9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue #9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix #9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
|
@hahnjo Sorry about that :( |
|
Build failed on mac1015/python3. Failing tests: |
|
Build failed on mac11/cxx17. Failing tests:
And 4 more |
|
@phsft-bot build |
|
Starting build on |
|
Build failed on ROOT-performance-centos8-multicore/default. Failing tests: |
This fixes issue root-project#9543 In the issue root-project#9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue root-project#9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix root-project#9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
|
ping @Axel-Naumann |
| xmin = xmin - range; | ||
| range *= 2; | ||
| binsize *= 2; | ||
| // // make sure that the merging will be correct |
| TBasket* basket = (TBasket*)branch->GetListOfBaskets()->UncheckedAt(j); | ||
| if (basket) { | ||
| ndrop += basket->DropBuffers(); | ||
| basket->DropBuffers(); |
lmoneta
left a comment
There was a problem hiding this comment.
Thank you Jonas for fixing these warnings,
I have just a small comment on the changes in tmva/tmva/src/PDEFoam.cxx
Apologies for the delay in doing this, I missed the notification!
Recent Clang complains: warning: 'sizeof (val)' will return the size of the pointer, not the array itself This is correct: If T is an array, "const T*" is a pointer to an array (not a pointer to the first element!). Then sizeof(val) is the size of a pointer, while sizeof(val[0]) is the size of the array behind it. The correct expression could have been sizeof(*val) / sizeof((*val)[0]), but I find it highly unlikely that somebody passes in a pointer to an array.
warning: use of bitwise '&' with boolean operands
and
warning: use of bitwise '|' with boolean operands
Pass it for consistency, even though the implementation will ignore it.
These were updated / set, but not used. Recent Clang is able to detect and warn about this pattern.
4cd3484 to
9a4dd1a
Compare
|
Starting build on |
|
Even with this, I'm still seeing quite a number of other warnings with Clang 13. I'm not sure if I missed them before, forgot to rebuild the files that trigger them, or they got introduced while this PR was pending - probably a mixture of all three. I've decided to not add them to this PR and instead merge what I have right now. I'll see if I'm motivated to address the other warnings in future PRs. |
|
Build failed on ROOT-ubuntu2004/soversion. Failing tests: |
This fixes issue root-project#9543 In the issue root-project#9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue root-project#9542 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix root-project#9542 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case).
Building with current Clang
mainproduced a number of warnings.