From 16e5e6db59b187b7576f1e28090a420783ea7c6c Mon Sep 17 00:00:00 2001
From: scott snyder <sss@karma>
Date: Mon, 1 Jun 2020 16:48:50 +0200
Subject: [PATCH] LArTPCnv: Fix lcgdict patterns for pairs.

Tweak the lcgdict patterns for pairs, for compatibility with gcc10/root 6.20.
We need to get the __pair_base template if it exists (but we don't want
to explicitly mention it).  We also need to avoid matching various internal
STL traits classes templated on pairs.
---
 LArCalorimeter/LArCnv/LArTPCnv/LArTPCnv/selection.xml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/LArCalorimeter/LArCnv/LArTPCnv/LArTPCnv/selection.xml b/LArCalorimeter/LArCnv/LArTPCnv/LArTPCnv/selection.xml
index d5608b5a44d..1c508a2baa5 100644
--- a/LArCalorimeter/LArCnv/LArTPCnv/LArTPCnv/selection.xml
+++ b/LArCalorimeter/LArCnv/LArTPCnv/LArTPCnv/selection.xml
@@ -14,7 +14,12 @@
   <class name="LArNoisyROSummary_p5" id="4AE11DAE-F40C-4B90-B105-0A7BA5D29C1D"/>
   <class name="std::vector<std::pair<unsigned int, std::vector<int> > >" />
   <!-- pair<unsigned,vector<int> > and associated pair_base -->
-  <class pattern="std::*pair*<unsigned int*std::vector<int*" />
+  <class pattern="std::*pair*<unsigned int*std::vector<int*> >" />
 
+  <exclusion>
+    <!-- Exclude internal traits classes using pair that could be
+         matched by the previous rules. -->
+    <class pattern="*<std::pair*" />
+  </exclusion>
 
 </lcgdict>
-- 
GitLab