From 96ce76fe75a572e16fd99f7110f19e09164efb09 Mon Sep 17 00:00:00 2001
From: scott snyder <snyder@bnl.gov>
Date: Thu, 10 May 2018 18:13:32 +0200
Subject: [PATCH] TPTools: Suppress some undefined behavior sanitizer warnings.

Suppress some warnings from the undefined behavior sanitizer that originate
from the unsafe #defines of the TPTools classes.  This was fixed properly
in master, but we don't want to backport, so just suppress the warnings
in 21.0.  Needed to fix test failures in some *AthenaPool packages.



Former-commit-id: c74adb3913d6f9c34a68468f5bfa310f6a1d6759
---
 Database/TPTools/src/AthenaConverterTLPExtension.cxx | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/Database/TPTools/src/AthenaConverterTLPExtension.cxx b/Database/TPTools/src/AthenaConverterTLPExtension.cxx
index c23204bc2e9..89496b9a068 100644
--- a/Database/TPTools/src/AthenaConverterTLPExtension.cxx
+++ b/Database/TPTools/src/AthenaConverterTLPExtension.cxx
@@ -12,6 +12,7 @@
 #include "TPTools/AthenaConverterTLPExtension.h"
 #include "AthenaPoolUtilities/TPCnvTokenList_p1.h"
 #include "PersistentDataModel/Token.h"
+#include "CxxUtils/no_sanitize_undefined.h"
 
 #include <stdexcept>
 #include <sstream>
@@ -20,12 +21,12 @@ using namespace std;
 
 
 unsigned short
-AthenaConverterTLPExtension::getTPCnvID() {
+AthenaConverterTLPExtension::getTPCnvID NO_SANITIZE_UNDEFINED () {
    return getTopLevelTPCnv()->getConverterID();
 }
 
 
-bool AthenaConverterTLPExtension::registerExtendingCnv( AthenaConverterTLPExtension *extending_converter )
+bool AthenaConverterTLPExtension::registerExtendingCnv NO_SANITIZE_UNDEFINED ( AthenaConverterTLPExtension *extending_converter )
 {
    // check if all converter IDs are unique
    int	extendingTPLCnvID = extending_converter->getTPCnvID();
@@ -123,7 +124,7 @@ void AthenaConverterTLPExtension::writeExtendingObjects( void *baseObj, const st
 }
 
 
-void AthenaConverterTLPExtension::readExtendingObjects( void *baseObj )
+void AthenaConverterTLPExtension::readExtendingObjects NO_SANITIZE_UNDEFINED ( void *baseObj )
 {
    // m_TLCnvForReading may be 0 if reading pre-TP object
    if( m_TLCnvForReading ) {
@@ -172,7 +173,7 @@ void AthenaConverterTLPExtension::readExtendingObjects( void *baseObj )
 
 
 
-void AthenaConverterTLPExtension::deletePersistentObjects()
+void AthenaConverterTLPExtension::deletePersistentObjects NO_SANITIZE_UNDEFINED ()
 {
    for( extCnvMap_t::const_iterator cnv = m_extendingConverters.begin();
 	cnv != m_extendingConverters.end(); cnv++ ) {
-- 
GitLab