Skip to content

Commit 15a04fc

Browse files
authored
Merge pull request #48127 from smuzaffar/ubsan-gcc14-MuonResidualsFromTrack
[UBSAN][GCC14]move large constructor code in to private member function
2 parents 5e34731 + 13ad8f9 commit 15a04fc

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

Alignment/MuonAlignmentAlgorithms/interface/MuonResidualsFromTrack.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,18 @@ class MuonResidualsFromTrack {
9595
TMatrixD choleskyCorrMatrix(DetId chamberId);
9696

9797
private:
98+
//Due to large constructor code, UBSAN with GCC14 hangs and never returns
99+
//Moving large constructor code to a private function fixes this issue
100+
void init(edm::ESHandle<TransientTrackingRecHitBuilder> builder,
101+
edm::ESHandle<MagneticField> magneticField,
102+
edm::ESHandle<GlobalTrackingGeometry> globalGeometry,
103+
edm::ESHandle<DetIdAssociator> muonDetIdAssociator_,
104+
edm::ESHandle<Propagator> prop,
105+
const Trajectory *traj,
106+
const reco::Track *recoTrack,
107+
AlignableNavigator *navigator,
108+
double maxResidual);
109+
98110
TrajectoryStateCombiner m_tsoscomb;
99111

100112
int m_tracker_numHits;

Alignment/MuonAlignmentAlgorithms/src/MuonResidualsFromTrack.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,26 @@ MuonResidualsFromTrack::MuonResidualsFromTrack(edm::ESHandle<TransientTrackingRe
3131
AlignableNavigator* navigator,
3232
double maxResidual)
3333
: m_recoTrack(recoTrack) {
34+
init(trackerRecHitBuilder,
35+
magneticField,
36+
globalGeometry,
37+
muonDetIdAssociator_,
38+
prop,
39+
traj,
40+
recoTrack,
41+
navigator,
42+
maxResidual);
43+
}
44+
45+
void MuonResidualsFromTrack::init(edm::ESHandle<TransientTrackingRecHitBuilder> trackerRecHitBuilder,
46+
edm::ESHandle<MagneticField> magneticField,
47+
edm::ESHandle<GlobalTrackingGeometry> globalGeometry,
48+
edm::ESHandle<DetIdAssociator> muonDetIdAssociator_,
49+
edm::ESHandle<Propagator> prop,
50+
const Trajectory* traj,
51+
const reco::Track* recoTrack,
52+
AlignableNavigator* navigator,
53+
double maxResidual) {
3454
bool m_debug = false;
3555

3656
if (m_debug) {

0 commit comments

Comments
 (0)