Skip to content

Commit 329a15a

Browse files
authored
Merge pull request #49251 from smuzaffar/llvm21-fix-bzero-non-trivially-copyable
MkFitCore/Track: Fix for llvm21 warning calling bzero on pointer to non-trivially copyable type
2 parents 9b802c2 + 0be208e commit 329a15a

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

RecoTracker/MkFitCore/interface/Track.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,6 @@ namespace mkfit {
432432
// Used by TrackCand::ExportTrack
433433
void setHitIdxAtPos(int pos, const HitOnTrack& hot) { hitsOnTrk_[pos] = hot; }
434434

435-
void resizeHitsForInput();
436-
437435
void addHitIdx(int hitIdx, int hitLyr, float chi2) {
438436
hitsOnTrk_.push_back({hitIdx, hitLyr});
439437
++lastHitIdx_;
@@ -490,6 +488,8 @@ namespace mkfit {
490488
return mcHitID;
491489
}
492490

491+
const std::vector<HitOnTrack>& refHitsOnTrackVector() const { return hitsOnTrk_; }
492+
493493
const HitOnTrack* getHitsOnTrackArray() const { return hitsOnTrk_.data(); }
494494
const HitOnTrack* beginHitsOnTrack() const { return hitsOnTrk_.data(); }
495495
const HitOnTrack* endHitsOnTrack() const { return hitsOnTrk_.data() + (lastHitIdx_ + 1); }

RecoTracker/MkFitCore/src/Track.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,6 @@ namespace mkfit {
386386
// Track
387387
//==============================================================================
388388

389-
void Track::resizeHitsForInput() {
390-
bzero(&hitsOnTrk_, sizeof(hitsOnTrk_));
391-
hitsOnTrk_.resize(lastHitIdx_ + 1);
392-
}
393-
394389
void Track::sortHitsByLayer() {
395390
std::stable_sort(&hitsOnTrk_[0], &hitsOnTrk_[lastHitIdx_ + 1], [](const auto& h1, const auto& h2) {
396391
return h1.layer < h2.layer;

RecoTracker/MkFitCore/standalone/Event.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "RecoTracker/MkFitCore/src/Debug.h"
77

88
#include <memory>
9+
#include <cstring>
910

1011
namespace {
1112
std::unique_ptr<mkfit::Validation> dummyValidation(mkfit::Validation::make_validation("dummy", nullptr));
@@ -451,8 +452,10 @@ namespace mkfit {
451452
fread(tracks.data(), sizeof(Track), n_tracks, fp);
452453

453454
for (int i = 0; i < n_tracks; ++i) {
454-
tracks[i].resizeHitsForInput();
455-
fread(tracks[i].beginHitsOnTrack_nc(), sizeof(HitOnTrack), tracks[i].nTotalHits(), fp);
455+
auto &hot_vec = const_cast<std::vector<HitOnTrack> &>(tracks[i].refHitsOnTrackVector());
456+
memset((void *)&hot_vec, 0, sizeof(hot_vec));
457+
hot_vec.resize(tracks[i].nTotalHits());
458+
fread(hot_vec.data(), sizeof(HitOnTrack), tracks[i].nTotalHits(), fp);
456459
}
457460
}
458461

0 commit comments

Comments
 (0)