<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 6 September 2017 at 20:27, John McCall via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">> On Sep 6, 2017, at 11:00 PM, Tom Honermann <<a href="mailto:Thomas.Honermann@synopsys.com">Thomas.Honermann@synopsys.com</a><wbr>> wrote:<br>
> On 9/6/2017 7:13 PM, John McCall wrote:<br>
>><br>
>>> On Sep 6, 2017, at 5:50 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a><br>
>>>    The mangled name generated for the function template specialization<br>
>>>    instantiated for the local enum type 'E' uses a<br>
>>>    <pointer-to-member-type><br>
>>>    production [1] (as signified by 'M'),<br>
>>><br>
>>><br>
>>> I believe you're mistaken. This is not a context in which a <type><br>
>>> production can appear. That's a <data-member-prefix>:<br>
>>><br>
>>> <a href="http://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangle.data-member-prefix" rel="noreferrer" target="_blank">http://itanium-cxx-abi.github.<wbr>io/cxx-abi/abi.html#mangle.<wbr>data-member-prefix</a><br>
><br>
> Ah, so it is.  Thanks for the correction.<br>
><br>
>>> This behavior looks correct to me, except that I'm surprised that this<br>
>>> block is numbered as Ub0_ instead of Ub_. Looks like we have an<br>
>>> off-by-one error here, introduced in r214699 while fixing a different<br>
>>> off-by-one error.<br>
>>><br>
>>> John: should we restore the pre-r214699 ABI, or would you prefer that<br>
>>> we just accept the new mangling as our ABI now?<br>
>><br>
>> Nothing about blocks ever has identity across translation units, so<br>
>> there's no harm in fixing the bug and restoring the original ABI to<br>
>> start counting at b_.<br>
><br>
> That doesn't seem right to me.  For example, aren't static local<br>
> variables declared within block expressions in inline functions required<br>
> to match across TUs?<br>
<br>
</span>Ah, yes, you're right; I was thinking of the data directly associated with the block<br>
without considering its contents.<br>
<span class="gmail-"><br>
> Granted, this is a fairly contrived example, so restoring the original<br>
> ABI doesn't strike me as very likely to cause problems.<br>
<br>
</span>Yeah, I think it's better to just fix the bug.  I'm not too worried about this level of contrivance.<br></blockquote><div><br></div><div>OK, done in r312700.</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">
John.<br>
<div class="gmail-HOEnZb"><div class="gmail-h5">______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div></div>