File 0001-PCAS-fix-scope-of-tsDLList-when-used-in-other-classe.patch of Package epics-base

From 2035fc641ad52512705f4822484e90b186f04e57 Mon Sep 17 00:00:00 2001
From: Ralph Lange <ralph.lange@gmx.de>
Date: Mon, 7 Dec 2020 09:40:03 +0100
Subject: [PATCH] PCAS: fix scope of tsDLList when used in other classes

Use ::tsDLList to avoid resolving to privately inherited
name (which was breaking builds on newer clang compilers)
---
 src/ca/legacy/pcas/generic/caServerI.h |  4 ++--
 src/ca/legacy/pcas/generic/casPVI.cc   | 16 ++++++++--------
 src/ca/legacy/pcas/generic/casPVI.h    | 18 +++++++++---------
 3 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/ca/legacy/pcas/generic/caServerI.h b/src/ca/legacy/pcas/generic/caServerI.h
index 012233693..bfedf55ae 100644
--- a/src/ca/legacy/pcas/generic/caServerI.h
+++ b/src/ca/legacy/pcas/generic/caServerI.h
@@ -88,8 +88,8 @@ public:
 private:
     clientBufMemoryManager clientBufMemMgr;
     tsFreeList < casMonitor, 1024 > casMonitorFreeList;
-    tsDLList < casStrmClient > clientList;
-    tsDLList < casIntfOS > intfList;
+    ::tsDLList < casStrmClient > clientList;
+    ::tsDLList < casIntfOS > intfList;
     mutable epicsMutex mutex;
     mutable epicsMutex diagnosticCountersMutex;
     caServer & adapter;
diff --git a/src/ca/legacy/pcas/generic/casPVI.cc b/src/ca/legacy/pcas/generic/casPVI.cc
index 245c51e01..5ae1f522e 100644
--- a/src/ca/legacy/pcas/generic/casPVI.cc
+++ b/src/ca/legacy/pcas/generic/casPVI.cc
@@ -291,7 +291,7 @@ void casPVI::postEvent ( const casEventMask & select, const gdd & event )
 }
 
 caStatus casPVI::installMonitor (
-    casMonitor & mon, tsDLList < casMonitor > & monitorList )
+    casMonitor & mon, ::tsDLList < casMonitor > & monitorList )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
     assert ( this->nMonAttached < UINT_MAX );
@@ -307,7 +307,7 @@ caStatus casPVI::installMonitor (
 }
 
 casMonitor * casPVI::removeMonitor (
-    tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
+    ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
     casMonitor * pMon = 0;
@@ -364,8 +364,8 @@ void casPVI::installChannel ( chanIntfForPV & chan )
 }
 
 void casPVI::removeChannel (
-    chanIntfForPV & chan, tsDLList < casMonitor > & src,
-    tsDLList < casMonitor > & dest )
+    chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
+    ::tsDLList < casMonitor > & dest )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
     src.removeAll ( dest );
@@ -379,7 +379,7 @@ void casPVI::removeChannel (
     }
 }
 
-void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
+void casPVI::clearOutstandingReads ( ::tsDLList < casAsyncIOI > & ioList )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
 
@@ -399,7 +399,7 @@ void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
 	}
 }
 
-void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
+void casPVI::destroyAllIO ( ::tsDLList < casAsyncIOI > & ioList )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
 	while ( casAsyncIOI * pIO = ioList.get() ) {
@@ -411,7 +411,7 @@ void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
 }
 
 void casPVI::installIO (
-    tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
+    ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
 {
     epicsGuard < epicsMutex > guard ( this->mutex );
     ioList.add ( io );
@@ -420,7 +420,7 @@ void casPVI::installIO (
 }
 
 void casPVI::uninstallIO (
-    tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
+    ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
 {
     {
         epicsGuard < epicsMutex > guard ( this->mutex );
diff --git a/src/ca/legacy/pcas/generic/casPVI.h b/src/ca/legacy/pcas/generic/casPVI.h
index feea79d23..9732119da 100644
--- a/src/ca/legacy/pcas/generic/casPVI.h
+++ b/src/ca/legacy/pcas/generic/casPVI.h
@@ -49,21 +49,21 @@ public:
     caStatus attachToServer ( caServerI & cas );
     aitIndex nativeCount ();
     bool ioIsPending () const;
-	void clearOutstandingReads ( tsDLList < class casAsyncIOI > &);
+    void clearOutstandingReads ( ::tsDLList < class casAsyncIOI > &);
     void destroyAllIO ( 
-        tsDLList < casAsyncIOI > & );
+        ::tsDLList < casAsyncIOI > & );
     void installIO (
-        tsDLList < casAsyncIOI > &, casAsyncIOI & );
+        ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
     void uninstallIO ( 
-        tsDLList < casAsyncIOI > &, casAsyncIOI & );
+        ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
     void installChannel ( chanIntfForPV & chan );
     void removeChannel ( 
-        chanIntfForPV & chan, tsDLList < casMonitor > & src,
-        tsDLList < casMonitor > & dest );
+        chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
+        ::tsDLList < casMonitor > & dest );
     caStatus installMonitor ( 
-        casMonitor & mon, tsDLList < casMonitor > & monitorList );
+        casMonitor & mon, ::tsDLList < casMonitor > & monitorList );
     casMonitor * removeMonitor ( 
-        tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
+        ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
     void deleteSignal ();
     void postEvent ( const casEventMask & select, const gdd & event );
     caServer * getExtServer () const;
@@ -84,7 +84,7 @@ public:
 
 private:
     mutable epicsMutex mutex;
-    tsDLList < chanIntfForPV > chanList;
+    ::tsDLList < chanIntfForPV > chanList;
     gddEnumStringTable enumStrTbl;
     caServerI * pCAS;
     casPV * pPV;
-- 
2.31.1

openSUSE Build Service is sponsored by