<div dir="ltr">My understanding was that static data members needed to be defined, even if they are integral types that are initialized with a constant expression with an exception being made if they are not "odr-used."  (See [class.static.data]p3)<div>

<br></div><div style>I don't 100% understand odr-used but I think __regex_word's usage in a non-const expression at line 1205 means this it needs to be defined and not just declared.</div><div style><br></div><div style>

As for making a test for this...it'd probably be difficult to write one that was guaranteed to fail.  In the specific failure that prompted this, the MIPS g++ somehow ended up with an unresolved symbol.  Oddly enough, the ARM and x86 variants of the same compiler version didn't do this.</div>

<div style><br></div><div style>-Albert</div><div style><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 7, 2013 at 11:56 AM, Howard Hinnant <span dir="ltr"><<a href="mailto:hhinnant@apple.com" target="_blank">hhinnant@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I don't have one.  In order for me to detect this I would have to take the address of __regex_word, and to the best I've been able to tell, on Apple platforms libc++ never does this.  However Albert Wong reported errors on MIPS Android which this addition fixed.  I did run the regex tests on OS X before and after this addition and they all passed.  I view this addition as benign on Apple platforms, and happy to help out on MIPS Android.<br>


<span class="HOEnZb"><font color="#888888"><br>
Howard<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mar 7, 2013, at 2:47 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
<br>
> Is there a test case to go with this?<br>
><br>
> On Thu, Mar 7, 2013 at 11:38 AM, Howard Hinnant <<a href="mailto:hhinnant@apple.com">hhinnant@apple.com</a>> wrote:<br>
>> Author: hhinnant<br>
>> Date: Thu Mar  7 13:38:08 2013<br>
>> New Revision: 176640<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=176640&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=176640&view=rev</a><br>
>> Log:<br>
>> Albert Wong: definition for regex_traits<_CharT>::__regex_word.<br>
>><br>
>> Modified:<br>
>>   libcxx/trunk/include/regex<br>
>><br>
>> Modified: libcxx/trunk/include/regex<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/regex?rev=176640&r1=176639&r2=176640&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/regex?rev=176640&r1=176639&r2=176640&view=diff</a><br>


>> ==============================================================================<br>
>> --- libcxx/trunk/include/regex (original)<br>
>> +++ libcxx/trunk/include/regex Thu Mar  7 13:38:08 2013<br>
>> @@ -1009,6 +1009,10 @@ private:<br>
>> };<br>
>><br>
>> template <class _CharT><br>
>> +const typename regex_traits<_CharT>::char_class_type<br>
>> +regex_traits<_CharT>::__regex_word;<br>
>> +<br>
>> +template <class _CharT><br>
>> regex_traits<_CharT>::regex_traits()<br>
>> {<br>
>>    __init();<br>
>><br>
>><br>
>> _______________________________________________<br>
>> cfe-commits mailing list<br>
>> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br>
</div></div></blockquote></div><br></div>