<div dir="ltr"><div dir="ltr">On Thu, Dec 9, 2021 at 12:52 PM <<a href="mailto:paul.robinson@sony.com">paul.robinson@sony.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_-8047813814460324707WordSection1">
<p class="MsoNormal">I heard back from our debugger folks (actually they replied a couple weeks ago and I missed the notification somehow).  They compliment you on the interesting test cases.
<span style="font-family:"Segoe UI Emoji",sans-serif">😊</span></p></div></div></blockquote><div><br></div><div>Thanks for checking into it!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_-8047813814460324707WordSection1">
<p class="MsoNormal">For the case of a pointer template parameter, “template<int*> void f1() { … }; int g; … f1<&g>();” where “g” has address 0x1234, this indeed would get reconstructed as “f1<0x1234>” although now that you’ve brought it up, they’ve raised
 an internal ticket to look at symbolizing that.  I agree with your point that if “g” is defined in another CU and not compiled with debug info, there might be no more than an external declaration in the current CU’s DWARF to look at, and so information outside
 of DWARF would be needed to symbolize that.  I don’t know about this case specifically but I have seen gdb make use of the ELF symbol table to derive information that isn’t present in the DWARF, so it’s not unprecedented.</p></div></div></blockquote><div><br>Ah, yeah - might've seen something where gdb might've stitched up a declaration in one CU, with no-debug definition in another object based on the symbol name.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_-8047813814460324707WordSection1"><p class="MsoNormal">  I think for your round-tripping purposes,
 if the symbol _<i>is</i>_ in the DWARF you could symbolize it, and for the other cases have to be content with falling back to the pointer literal.</p></div></div></blockquote><div><br></div><div>I think the risk there, compiling with -ffunction-sections -fdata-sections -Wl,--gc-sections is that the pointer literal might be zero if the symbol has been gc'd, so it may not be recoverable/uniqueable. <br><br>





<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">$ cat test.cpp</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">template<int*> void f1() { }</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">static int a;</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">static int b;</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">int main() {</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<&a>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<&b>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">}</span></p><p class="gmail-p1" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">$ clang++-tot test.cpp -g && llvm-dwarfdump-tot a.out | grep DW_AT_location</span></p><p class="gmail-p1" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">...</span></p><p class="gmail-p1" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                  </span></span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>DW_AT_location</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">        </span>(DW_OP_addr 0x40402c, DW_OP_stack_value)</span></p><p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"></span></p><p class="gmail-p1" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                  </span></span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>DW_AT_location</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">        </span>(DW_OP_addr 0x404030, DW_OP_stack_value)</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">$ clang++-tot test.cpp -g -fdata-sections -Wl,--gc-sections && llvm-dwarfdump-tot a.out | grep DW_AT_location</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">...</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                  </span></span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>DW_AT_location</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">        </span>(DW_OP_addr 0x0, DW_OP_stack_value)</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                  </span></span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>DW_AT_location</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">        </span>(DW_OP_addr 0x0, DW_OP_stack_value)</span></p></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_-8047813814460324707WordSection1">
<p class="MsoNormal">For the second case, using as example code<u></u><u></u></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">template<typename T> void f1() {}<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">class {} x;<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">auto y = []{};<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(0,0,145)">int</span><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)"> main() {<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">  f1<decltype(x)>();<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">  f1<decltype(y)>();<u></u><u></u></span></p>
<p class="MsoNormal" style="background:rgb(244,245,247)"><span style="font-size:9pt;font-family:"Courier New";color:rgb(23,43,77)">}<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">this conjures up generated names on the order of<u></u><u></u></p>
<pre style="background:rgb(244,245,247)"><span style="font-size:9pt;color:rgb(23,43,77)">f1<(anon_class:0x4D62500372C58A1A)><u></u><u></u></span></pre>
<pre style="background:rgb(244,245,247)"><span style="font-size:9pt;color:rgb(23,43,77)">f1<(anon_class:0x4D62500372C58A65)><u></u><u></u></span></pre>
<p class="MsoNormal">which is admittedly not great, syntactically not identifiers for one thing.  </p></div></div></blockquote><div><br></div><div>Well, no worse than the compiler generated names, which also aren't identifiers:<br>Clang:</div><div>





<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo"><font color="#000000"><span class="gmail-s2" style="font-variant-ligatures:no-common-ligatures">f1<</span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(unnamed class at test.cpp:3:1)></span></font></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo"><font color="#000000"><span class="gmail-s2" style="font-variant-ligatures:no-common-ligatures">f1<</span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(lambda at test.cpp:5:10)></span></font></p><font color="#000000">GCC:<br>





</font><p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo"><font color="#000000"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">f1<</span><span class="gmail-s2" style="font-variant-ligatures:no-common-ligatures"><lambda()> ></span></font></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo"><font color="#000000"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">f1<</span><span class="gmail-s2" style="font-variant-ligatures:no-common-ligatures"><unnamed class> ></span></font></p></div><div> <br>At least it sounds like maybe the ones you have are unique (though I wonder how they're uniqued across CUs to still generate the same identifier) - GCC's certainly aren't, Clang's probably aren't (with sufficient macro goo):<br><br>





<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">$ cat test.cpp</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">template<typename T> void f1() {}</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">#define ANONS \</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">class {} a1; \</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">class {} a2</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">ANONS;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">#define LAMBDAS \</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">auto l1 = []{}; \</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">auto l2 = []{}</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">LAMBDAS;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0);min-height:13px"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"></span><br></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">int main() {</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<decltype(a1)>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<decltype(a2)>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<decltype(l1)>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">  </span>f1<decltype(l2)>();</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">}</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">$ clang++-tot test.cpp -g -c && llvm-dwarfdump-tot test.o | grep "f1<"</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                </span>DW_AT_name<span class="gmail-Apple-converted-space">      </span>("</span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>f1<</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(unnamed class at test.cpp:6:1)>")</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                </span>DW_AT_name<span class="gmail-Apple-converted-space">      </span>("</span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>f1<</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(unnamed class at test.cpp:6:1)>")</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                </span>DW_AT_name<span class="gmail-Apple-converted-space">      </span>("</span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>f1<</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(lambda at test.cpp:11:1)>")</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><span class="gmail-Apple-converted-space">                </span>DW_AT_name<span class="gmail-Apple-converted-space">      </span>("</span><span class="gmail-s4" style="font-variant-ligatures:no-common-ligatures;color:rgb(202,51,35)"><b>f1<</b></span><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">(lambda at test.cpp:11:1)>")</span></p><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_-8047813814460324707WordSection1"><p class="MsoNormal">Not something anyone has complained about and so not something they’ve thought to look at before, although again there’s now an internal ticket to see about improving
 this.  For your round-tripping, I guess coming up with some name-generation system for anonymous types would have to do, although whether you can easily leave enough breadcrumbs to walk back from the template parameter type to the type-of-x seems like a question.</p></div></div></blockquote><div><br>Yeah, not sure.<br>  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_-8047813814460324707WordSection1"><p class="MsoNormal"><u></u></p>
<p class="MsoNormal">Sorry I can’t provide any cleverness here.</p></div></div></blockquote><div><br>No worries at all - glad to know I've probably not missed anything game-changing for these cases, at least. </div></div></div>