A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3086.xls below:

ÐÏࡱá����������������>��þÿ ���������������~���������þÿÿÿ����þÿÿÿ����y��z��{��|��}��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ���ZOÍÉ����á��°Á����â���\�p� ��David Keaton B��°a���À��=��º� ��ThisWorkbookœ���������������¯���¼���=��ÿôè?ØJ8������X@��������"�������·���Ú����1��ð���������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��ð��� ������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��ð��4�¼�����C�a�l�i�b�r�i�1��ð�� �¼�����C�a�l�i�b�r�i�1��ð��������C�a�l�i�b�r�i�1��ð���������C�a�l�i�b�r�i�1��,�8�¼�����C�a�l�i�b�r�i�1���8�¼�����C�a�l�i�b�r�i�1��Ü��8�¼�����C�a�l�i�b�r�i�1��ð���>������C�a�l�i�b�r�i�1��ð���4������C�a�l�i�b�r�i�1��ð���<������C�a�l�i�b�r�i�1��ð��?�¼�����C�a�l�i�b�r�i�1��h��8������C�a�m�b�r�i�a�1��ð���¼�����C�a�l�i�b�r�i�1��ð��� ������C�a�l�i�b�r�i�����"$"#,##0_);\("$"#,##0\)!����"$"#,##0_);[Red]\("$"#,##0\)"����"$"#,##0.00_);\("$"#,##0.00\)'��"��"$"#,##0.00_);[Red]\("$"#,##0.00\)7�*�2��_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).�)�)��_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?�,�:��_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6�+�1��_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)5�¤��"� NHS/� NHS �"�h�h�"�Bf"�m�m�"�R"�s�s�"�Òy �"�à������õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à�����õÿ �����������À à������� ����������À à�����õÿ ��´�������Ÿ à�����õÿ ��´�������­ à�����õÿ ��´�������ª à�����õÿ ��´�������® à�����õÿ ��´�������› à�����õÿ ��´�������¯ à�����õÿ ��´�������¬ à�����õÿ ��´������� à�����õÿ ��´�������‹ à�����õÿ ��´�������® à�����õÿ ��´�������¬ à�����õÿ ��´�������³ à�����õÿ ��´�������ž à�����õÿ ��´������� à�����õÿ ��´�������‹ à�����õÿ ��´�������¤ à�����õÿ ��´�������± à�����õÿ ��´�������´ à�����õÿ ��´�������¾ à�����õÿ ��´�������Š à�����õÿ ��´�������¹ à�����õÿ ��´�������¤ à�����õÿ ��´�������± à�����õÿ ��´�������µ à�����õÿ ��´�������­ à�����õÿ ��”— — �– à�� ���õÿ ��”ff¿¿�· à���+�õÿ ��ø��������À à���)�õÿ ��ø��������À à���,�õÿ ��ø��������À à���*�õÿ ��ø��������À à�� ���õÿ ��ô��������À à�� ���õÿ ��´�������ª à�� ���õÿ ��Ô�P�����À à�� ���õÿ ��Ô�P��� ��À à�����õÿ ��Ô� �����À à�����õÿ ��ô��������À à�����õÿ ��”— — �¯ à�����õÿ ��Ô�`�����À à�����õÿ ��´�������« à�����õÿ ��œ  �š à�����õÿ ��”¿¿�– à��� �õÿ ��ø��������À à�����õÿ ��ô��������À à�����õÿ ��Ô�a��>��À à�����õÿ ��ô��������À à������ ���������À |�|������������?�b™ž½}-�}����������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}������������ ���� ���������m�"�R"��}-�}������������ ���� ���������m�"�R"��}-�}������������ ���� ���������m�"�R"��}-�}������������ ���� ���������m�"�R"��}-�}������������ ���� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}-�}���������������� ���������m�"�R"��}A�}���������������� ���������m�"�R"�����ef���;_(@_) }A�}���������������� ���������m�"�R"�����ef���;_(@_) }A�}���������������� ���������m�"�R"�����ef���;_(@_) }A�}���������������� ���������m�"�R"�����ef���;_(@_) }A�}���������������� ���������m�"�R"�����ef���;_(@_) }A�}���������������� ���������m�"�R"�����ef ���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL���;_(@_) }A�}���������������� ���������m�"�R"�����ÌL ���;_(@_) }A�}���������������� ���������m�"�R"�����23���;_(@_) }A�}���������������� ���������m�"�R"�����23���;_(@_) }A�}���������������� ���������m�"�R"�����23���;_(@_) }A�}���������������� ���������m�"�R"�����23���;_(@_) }A�}������������ ���� ���������m�"�R"�����23���;_(@_) }A�}������������!���� ���������m�"�R"�����23 ���;_(@_) }A�}������������"���� ����������m�"�R"����������;_(@_) }A�}������������#���� ����������m�"�R"����������;_(@_) }A�}������������$���� ����������m�"�R"����������;_(@_) }A�}������������%���� ����������m�"�R"����������;_(@_) }A�}������������&���� ����������m�"�R"����������;_(@_) }A�}������������'���� ����������m�"�R"������� ���;_(@_) }A�}������������(���� �����œ�ÿ�m�"�R"�������ÿÇÎÿ;_(@_) }‘�}������������)���� �����ú}�ÿ�m�"�R"�������òòòÿ;_(@_) �����ÿ �����ÿ �����ÿ�������� �����ÿ��������}‘�}������������*���� ����������m�"�R"�������¥¥¥ÿ;_(@_) �����???ÿ �����???ÿ �����???ÿ�������� �����???ÿ��������}-�}������������+���� ���������m�"�R"��}-�}������������,���� ���������m�"�R"��}-�}������������-���� ���������m�"�R"��}-�}������������.���� ���������m�"�R"��}-�}������������/���� �����ÿ�m�"�R"��}A�}������������0���� ������a�ÿ�m�"�R"�������ÆïÎÿ;_(@_) }A�}������������1���� ���������m�"�R"����������;_(@_) }A�}������������2���� ���������m�"�R"�����ÿ?���;_(@_) }A�}������������3���� ���������m�"�R"�����23���;_(@_) }-�}������������4���� ���������m�"�R"��}‘�}������������5���� �����??vÿ�m�"�R"�������ÿ̙ÿ;_(@_) �����ÿ �����ÿ �����ÿ�������� �����ÿ��������}A�}������������6���� �����ú}�ÿ�m�"�R"�������ÿ€ÿ;_(@_) }A�}������������7���� �����œW�ÿ�m�"�R"�������ÿëœÿ;_(@_) }‘�}������������8���� ���������m�"�R"�������ÿÿÌÿ;_(@_) �����²²²ÿ �����²²²ÿ �����²²²ÿ�������� �����²²²ÿ��������}‘�}������������9���� �����???ÿ�m�"�R"�������òòòÿ;_(@_) �����???ÿ �����???ÿ �����???ÿ�������� �����???ÿ��������}-�}������������:���� ���������m�"�R"��}-�}������������;���� ���������m�"�R"��}U�}������������<���� ���������m�"�R"����������;_(@_) �������� }-�}������������=���� �����ÿ��ÿ�m�"�R"��}-�}������������>���� ���������m�"�R"��“�� ��20% - Accent1’M�’����������ÿ �2�0�%� �-� �A�c�c�e�n�t�1����� �efÜæñÿ� ������ÿ%��“�� ��20% - Accent2’M�’����������"ÿ �2�0�%� �-� �A�c�c�e�n�t�2����� �efòÜÛÿ� ������ÿ%��“�� ��20% - Accent3’M�’����������&ÿ �2�0�%� �-� �A�c�c�e�n�t�3����� �efëñÞÿ� ������ÿ%��“�� ��20% - Accent4’M�’����������*ÿ �2�0�%� �-� �A�c�c�e�n�t�4����� �efäßìÿ� ������ÿ%��“�� ��20% - Accent5’M�’����������.ÿ �2�0�%� �-� �A�c�c�e�n�t�5����� �efÚîóÿ� ������ÿ%��“�� ��20% - Accent6’M�’����������2ÿ �2�0�%� �-� �A�c�c�e�n�t�6����� � efýéÙÿ� ������ÿ%��“�� ��40% - Accent1’M�’����������ÿ �4�0�%� �-� �A�c�c�e�n�t�1����� �ÌL¸Ìäÿ� ������ÿ%��“�� ��40% - Accent2’M�’����������#ÿ �4�0�%� �-� �A�c�c�e�n�t�2����� �ÌL渷ÿ� ������ÿ%��“�� ��40% - Accent3’M�’����������'ÿ �4�0�%� �-� �A�c�c�e�n�t�3����� �ÌLØä¼ÿ� ������ÿ%��“�� ��40% - Accent4’M�’����������+ÿ �4�0�%� �-� �A�c�c�e�n�t�4����� �ÌLÌÀÚÿ� ������ÿ%��“�� ��40% - Accent5’M�’����������/ÿ �4�0�%� �-� �A�c�c�e�n�t�5����� �ÌL·Þèÿ� ������ÿ%��“�� ��40% - Accent6’M�’����������3ÿ �4�0�%� �-� �A�c�c�e�n�t�6����� � ÌLüÕ´ÿ� ������ÿ%��“�� ��60% - Accent1’M�’���������� ÿ �6�0�%� �-� �A�c�c�e�n�t�1����� �23•³×ÿ� ������ÿ%��“�� ��60% - Accent2’M�’����������$ÿ �6�0�%� �-� �A�c�c�e�n�t�2����� �23ږ”ÿ� ������ÿ%��“�� ��60% - Accent3’M�’����������(ÿ �6�0�%� �-� �A�c�c�e�n�t�3����� �23Äכÿ� ������ÿ%��“�� ��60% - Accent4’M�’����������,ÿ �6�0�%� �-� �A�c�c�e�n�t�4����� �23± Çÿ� ������ÿ%��“� � ��60% - Accent5’M�’����������0ÿ �6�0�%� �-� �A�c�c�e�n�t�5����� �23’ÍÜÿ� ������ÿ%��“�!� ��60% - Accent6’M�’����������4ÿ �6�0�%� �-� �A�c�c�e�n�t�6����� � 23ú¿ÿ� ������ÿ%��“ �"���Accent1’A�’����������ÿ�A�c�c�e�n�t�1����� ���O½ÿ� ����ÿÿÿÿ%��“ �#���Accent2’A�’����������!ÿ�A�c�c�e�n�t�2����� ���ÀPMÿ� ����ÿÿÿÿ%��“ �$���Accent3’A�’����������%ÿ�A�c�c�e�n�t�3����� ���›»Yÿ� ����ÿÿÿÿ%��“ �%���Accent4’A�’����������)ÿ�A�c�c�e�n�t�4����� ���€d¢ÿ� ����ÿÿÿÿ%��“ �&���Accent5’A�’����������-ÿ�A�c�c�e�n�t�5����� ���K¬Æÿ� ����ÿÿÿÿ%��“ �'���Accent6’A�’����������1ÿ�A�c�c�e�n�t�6����� � ��÷–Fÿ� ����ÿÿÿÿ%��“�(���Bad’9�’����������ÿ�B�a�d����� �ÿ��ÿÇÎÿ� �ÿ��œ�ÿ%��“�)� ��Calculation’�’����������ÿ �C�a�l�c�u�l�a�t�i�o�n����� �ÿ��òòòÿ� �ÿ��ú}�ÿ%����ÿ��ÿ���ÿ��ÿ���ÿ��ÿ� ��ÿ��ÿ�“�*� ��Check Cell’�’����������ÿ �C�h�e�c�k� �C�e�l�l����� �ÿ��¥¥¥ÿ� ����ÿÿÿÿ%����ÿ��???ÿ���ÿ��???ÿ���ÿ��???ÿ� ��ÿ��???ÿ�“�+€ÿ’ �’����������ÿ�C�o�m�m�a�����“�,€ÿ’(�’����������ÿ �C�o�m�m�a� �[�0�]�����“�-€ÿ’&�’����������ÿ�C�u�r�r�e�n�c�y�����“�.€ÿ’.�’����������ÿ �C�u�r�r�e�n�c�y� �[�0�]�����“�/���Explanatory Text’G�’����������5ÿ�E�x�p�l�a�n�a�t�o�r�y� �T�e�x�t����� �ÿ��ÿ%��“ �0���Good’;�’����������ÿ�G�o�o�d����� �ÿ��ÆïÎÿ� �ÿ���a�ÿ%��“�1� ��Heading 1’G�’����������ÿ �H�e�a�d�i�n�g� �1����� ���I}ÿ%������O½ÿ�“�2� ��Heading 2’G�’����������ÿ �H�e�a�d�i�n�g� �2����� ���I}ÿ%����ÿ?§¿Þÿ�“�3� ��Heading 3’G�’����������ÿ �H�e�a�d�i�n�g� �3����� ���I}ÿ%����23•³×ÿ�“�4� ��Heading 4’9�’����������ÿ �H�e�a�d�i�n�g� �4����� ���I}ÿ%��“ �5���Input’u�’����������ÿ�I�n�p�u�t����� �ÿ��ÿ̙ÿ� �ÿ��??vÿ%����ÿ��ÿ���ÿ��ÿ���ÿ��ÿ� ��ÿ��ÿ�“�6� ��Linked Cell’K�’����������ÿ �L�i�n�k�e�d� �C�e�l�l����� �ÿ��ú}�ÿ%����ÿ��ÿ€ÿ�“ �7���Neutral’A�’����������ÿ�N�e�u�t�r�a�l����� �ÿ��ÿëœÿ� �ÿ��œW�ÿ%��“��€�ÿ’3�’�����������ÿ�N�o�r�m�a�l����� ������ÿ%��“ �8���Note’b�’���������� ÿ�N�o�t�e����� �ÿ��ÿÿÌÿ��ÿ��²²²ÿ���ÿ��²²²ÿ���ÿ��²²²ÿ� ��ÿ��²²²ÿ�“ �9���Output’w�’����������ÿ�O�u�t�p�u�t����� �ÿ��òòòÿ� �ÿ��???ÿ%����ÿ��???ÿ���ÿ��???ÿ���ÿ��???ÿ� ��ÿ��???ÿ�“�:€ÿ’$�’����������ÿ�P�e�r�c�e�n�t�����“ �;���Title’1�’����������ÿ�T�i�t�l�e����� ���I}ÿ%��“ �<���Total’M�’����������ÿ�T�o�t�a�l����� ������ÿ%������O½ÿ�����O½ÿ�“�=� ��Warning Text’?�’���������� ÿ �W�a�r�n�i�n�g� �T�e�x�t����� �ÿ��ÿ��ÿ%��ŽX�Ž���������������T�a�b�l�e�S�t�y�l�e�M�e�d�i�u�m�9�P�i�v�o�t�S�t�y�l�e�M�e�d�i�u�m�4�`���…��à ����Sheet 1š�š��������������������£�£��������������Œ����Á�Á��5ê�ü� ì ������ SE-001 �� �� �� te � We believe that the accepted proposal of n2510, is detrimental to the C standard. The proposal removes the requirement for parameter names when declaring a function. We believe this removes the ability for implementers to issue errors for a reasonably common mistake. This will make C a harder language to use. The paper makes the assertion that an implementation can assume that an anonymous parameter is intentional, and we think this is dubious. Very few C developers have access to the standard, and write code C using features of the latest version, or are even aware of its latest features. It is our estimation that even once the standard has been ratified and implemented, very few C programmers will recognize when or why to use anonymous parameters for optimization purposes, and the paper does not present any implementations that have been able to report measurable performance increases. What this change does is that it deprives users of a basic error diagnostic that is today available. A C beginner may write code like: void function(int) {     printf("a = %i", a); } int main() {     int a  = 42;     function(a);     return TRUE; } ... And wonder "Why does the compiler say I haven't defined a, when I am passing it in?". Today the user would hopefully get a clear error from the implementation that the parameter requires a name. This won't be possible in C2X. For an experienced programmer a simple typo can become a bug orders of magnitude harder to detect. Consider: MyStruct *s /* commonly used param/variable name for pointer to MyStruct */ void function(/* lots of params*/ ,  MyStruct *) /* ops forgot to add param name "s" */ {                       s->param = 42; } ... function(/* lots of params*/ ,  q); This simple one character typo is now infinitely harder to find and diagnose because the compiler has to assume that the lack of a parameter name is intentional. Implementers will be put in a very difficult position, where they no longer can issue an error for something that in 99% of cases is a basic mistake. Even issuing a warning will be controversial since it prevents anyone from using this entirely ISO C compliant feature in warning free code. We think an omission is a poor indicator of intent. Further the design of this feature does not fully achieve its stated goal. If we look at the declaration: extern void function(int); And compare it to the definition: void function(int) {  ... } The function signatures are no longer the same. In the declaration the omission of a parameter name has no meaning, whereas in the definition the omission does have a meaning. Any caller of this function that wants to optimize its call can therefore only do so if it exists in the same translation unit, in order to be able to assume that the parameter is not used. Aside: (Allowing anonymous parameters in function declarations was in our opinion a mistake to begin with. We should strive for a clear, explicit language that has strict requirements that catch any typing mistake. Any claim of saving typing by omitting parameter names clearly doesn't hold water, since the programmer has to type the signature with parameter names in the definition of the function, and can simply copy that signature. Removing parameters from the signature takes more work, and reduces readability and clarity, something we should consider a loose-loose.) The proposal assumes that there are optimizations that can be made when calling a function if you know that not all parameters will be used. If we assume the author is right despite not providing any measurements, this optimization would only be applicable if: -The function is used as a function pointer, and therefore has to conform to a signature that includes useless params. -The function is also called directly, and only then can the caller skip some unused params. (The compiler can not optimize this when calling a function pointer, since it may point to a function that does use the parameter.) -The caller that calls directly is in the same translation unit as the function it's calling. This seems like a very slim use case, where a user interested in increasing performance should instead consider inlining. C2X does add a new standardized way to attach attributes. This functionality is much better suited as an attribute. An attribute could also be included in a declaration, and would explicitly unambiguously show user intent. We do note that this feature was added before the attribute format was introduced. While an attribute version of the feature would alleviate many of our concerns with the change, we are still not convinced an attribute version is justified. It still only applies to functions that are used as function pointers when they are not used as function pointers. To change the spec for such a corner case, we should require implementations of the optimization along with measurable improvements in performance in real world applications. We believe that even an attribute version of this feature is bloating the standard without a clear, common and measurable benefit. If in some future version of C, the wg14 does decide to add this feature in the form of an attribute, then we will not be able to undo the damage done by this change. Implementations will still be forced to not issue errors on parameters without names because doing so would break backward compatibility with c2X. n2953 Type inference for object definitions / Under specified Types. We believe that the proposal, that allows the use of auto to infer the type from initialization, will have a detrimental effect on safety and reliability if that chooses to use it. In C different types can have very different behaviors. The most obvious case is if the different ways signed and unsigned integers handle overflow. Not explicitly stating the type of but to rather rely on an implicit assumption, is in our view a serious risk. Consider the following:     auto limit = MY_LIMIT;     if(limit + add < limit) /* overflow protection */         return; The user here assumes that MY_LIMIT is an unsigned int. Since the unsigned int has a well defined overflow behavior, the overflow test is entirely valid. However, should the MY_LIMIT define be a signed int, then overflow is undefined, and a compiler may choose to optimize away the overflow protection. The implementation will issue no warning if the assumption is wrong. If instead the user would have explicitly declared that they expect a limit to be, say an unsigned int, then the code would not break, and if MY_LIMIT would be out of range of the unsigned int, the implementation can issue a clear diagnostic. For this reason we believe that this functionality will be discurraged by organizations like MISRA, and various style guides, since it actively prevents compilers and other diagnostic tools from verifying that the actions of the program matches the programmers intentions. We believe that the wg14 should not introduce new functionality whose use is likely to be discouraged from a safety and reliability perspective. While we believe this to be functionality to be adopted by a very small minority of C programmers. This however leaves the possibility of accidental use, when a user forgets to specify a type properly and the implementation is no longer able to issue a diagnostic, because it is forced to assume that the omission is intentional. #�� Remove n2510, and n2953 ����� GB-002 �� 2 �� 5 �� ed Z�� The URL given here now redirects and the new version is shorter and frien<� �dlier. j�� Change the URL in this paragraph to: https://standards.iso.org/ittf/PubliclyAvailableStandards/ �� GB-003 �� 9, 10 U�� www.unicode.org now uses https so the links should be updated accordingly. 0�� Change http to https in both paragraphs. �� GB-004 �� 9, 10, 11 ³�� Have the requirements of ISO/IEC Directives Part 2 §10.2 items a through e (on requirements for having non-ISO/IEC normative references) been satisfied and recorded? �� GB-005 �� 3 �� 2 Q�� Electropedia now uses https so the link should be updated accordingly. 4�� Change http to https in second bullet point. �� CA2-006 �� 5.1.1.2 �� 1 �� Te ß�� The removal of trigraphs makes it impossible for processing of C source code in code pages with variant code points for characters in the basic character set in a guaranteed deterministic way for all programs. n � � � �A�d�d� �t�o� �t�h�e� �e�n�d� �o�f� � � � �5�.�1�.�1�.�2�#�1�:� � � � �T�r�i�g�r�a�p�h� � � � �s�e�q�u�e�n�c�e�s� �a�r�e� �r�e�p�l�a�c�e�d� �b�y� �c�o�r�r�e�s�p�o�n�d�i�n�g� �s�i�n�g�l�e�-�c�h�a�r�a�c�t�e�r� �i�n�t�e�r�n�a�l� � � � �r�e�p�r�e�s�e�n�t�a�t�i�o�n�s�.� � � � � �A�d�d� �i�n� �a� �n�e�w� � � � �s�e�c�t�i�o�n�,� �5�.�2�.�1�.�1� �T�r�i�g�r�a�p�h� �s�e�q�u�e�n�c�e�s� �w�i�t�h� �t�h�e� �f�o�l�l�o�w�i�n�g� �b�o�d�y�:� � � � �B�e�f�o�r�e� � � � �a�n�y� �o�t�h�e�r� �p�r�o�c�e�s�s�i�n�g� �t�a�k�e�s� �p�l�a�c�e�,� �e�a�c�h� �o�c�c�u�r�r�e�n�c�e� �o�f� �o�n�e� �o�f� �t�h�e� �f�o�l�l�o�w�i�n�g� � � � �s�e�q�u�e�n�c�e�s� �o�f� �t�h�r�e�e� �c�h�a�r�a�c�t�e�r�s� �(�c�a�l�l�e�d� �t�r�i�g�r�a�p�h� �s�e�q�u�e�n�c�e�s�)�1�7�)� �i�s� �r�e�p�l�a�c�e�d� �w�i�t�h� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �s�i�n�g�l�e� � � � �c�h�a�r�a�c�t�e�r�.� � � � � �?�?�=� �#� �?�?�(� �[� �?�?�/� �\� � � � � �?�?�)� �]� �?�?� �^� �?�?�&�l�t�;� �{� � � � � �?�?�!� �|� �?�?�&�g�t�;� �}� �?�?�-� �~� � � � � �N�o� �o�t�h�e�r� � � � �t�r�i�g�r�a�p�h� �s�e�q�u�e�n�c�e�s� �e�x�i�s�t�.� �E�a�c�h� �?� �t�h�a�t� �d�o�e�s� �n�o�t� �b�e�g�i�n� � � � �o�n�e� �o�f� �t�h�e� �t�r�i�g�r�a�p�h�s� �l�i�s�t�e�d� �a�b�o�v�e� �i�s� �n�o�t� �c�h�a�n�g�e�d�.� � � � ��� GB-007 )�� 5.1.2.3, 5.2.4.2.2, 6.7.1 �� 12 Æ � � � �T�h�e� �t�e�r�m�s� � s�i�n�g�l�e�-�p�r�e�c�i�s�i�o�n� �a�n�d� � d�o�u�b�l�e�-�p�r�e�c�i�s�i�o�n� �a�r�e� �n�o�t� � � � �d�e�f�i�n�e�d� �i�n� �t�h�i�s� �d�o�c�u�m�e�n�t� �a�n�d� �t�h�e� �d�e�f�i�n�i�t�i�o�n�s� �i�n� �I�S�O�/�I�E�C� �2�3�8�2� �(�i�n� �t�e�r�m�s� �o�f� �u�s�e� � � � �o�f� �o�n�e� �o�r� �t�w�o� �c�o�m�p�u�t�e�r� �w�o�r�d�s� �t�o� �r�e�p�r�e�s�e�n�t� �a� �v�a�l�u�e�)� �a�r�e� �n�o�t� �a�p�p�r�o�p�r�i�a�t�e� �f�o�r� � � � �t�h�e�i�r� �u�s�e�s� �i�n� �t�h�i�s� �d�o�c�u�m�e�n�t� �b�e�c�a�u�s�e� �t�h�e�r�e� �i�s� �n�o� �g�u�a�r�a�n�t�e�e� �t�h�a�t� �t�h�e� �t�y�p�e�s� � � � �f�l�o�a�t� �o�r� �d�o�u�b�l�e� �c�o�r�r�e�s�p�o�n�d� �t�o� �t�h�o�s�e� �d�e�f�i�n�i�t�i�o�n�s�.� �F�u�r�t�h�e�r�m�o�r�e�,� �I�E�C� �6�0�5�5�9� � � � �r�e�f�e�r�s� �t�o� �t�h�e� �f�o�r�m�a�t�s� �a�s� �b�i�n�a�r�y�3�2� �a�n�d� �b�i�n�a�r�y�6�4�,� �n�o�t� � � � �s�i�n�g�l�e� �a�n�d� �d�o�u�b�l�e�.� � � � �ã � � � �I�n� �5�.�1�.�2�.�3� �p�a�r�a�g�r�a�p�h� �1�2�,� �c�h�a�n�g�e� � s�i�n�g�l�e�-�p�r�e�c�i�s�i�o�n� �t�o� � f�l�o�a�t� �a�n�d� � � � � d�o�u�b�l�e�-�p�r�e�c�i�s�i�o�n� �t�o� � d�o�u�b�l�e� �(�i�n� �b�o�t�h� �c�a�s�e�s� �f�o�r�m�a�t�t�e�d� �a�s� �C� �k�e�y�w�o�r�d�s�)�.� � � � �I�n� �5�.�2�.�4�.�2�.�2� �p�a�r�a�g�r�a�p�h� �2�9�,� �c�h�a�n�g�e� � s�i�n�g�l�e�-�p�r�e�c�i�s�i�o�n� �t�o� � b�i�n�a�r�y�3�2� � � � �a�n�d� � d�o�u�b�l�e�-�p�r�e�c�i�s�i�o�n� �t�o� � b�i�n�a�r�y�6�4� .� � � � �I�n� �6�.�7�.�1� �p�a�r�a�g�r�a�p�h� �1�6� �(�E�x�a�m�p�l�e� �2�)�,� �c�h�a�n�g�e� � s�i�n�g�l�e� �p�r�e�c�i�s�i�o�n� �a�n�d� � � � � 3�2�-�b�i�t� �s�i�n�g�l�e�-�p�r�e�c�i�s�i�o�n� �t�o� � b�i�n�a�r�y�3�2� .� � � � �A�l�s�o� �e�n�s�u�r�e� �a�s�s�o�c�i�a�t�e�d� �i�n�d�e�x� �e�n�t�r�i�e�s� �f�o�r� �t�h�e� � s�i�n�g�l�e�-�p�r�e�c�i�s�i�o�n� � � � �a�n�d� � d�o�u�b�l�e�-�p�r�e�c�i�s�i�o�n� �t�e�r�m�s� �a�r�e� �r�e�m�o�v�e�d�.� � � � ��� GB-008 �� 5.1.2.4 Ü�� The description of when threads are supported (for hosted implementations, implementation-defined for freestanding implementations) fails to take account of threads being optional in hosted implementations. n� � � � �C�h�a�n�g�e� � h�o�s�t�e�d� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �t�o� � h�o�s�t�e�d� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �t�h�a�t� �d�o�e�s� � � � �n�o�t� �d�e�f�i�n�e� �_�_�S�T�D�C�_�N�O�_�T�H�R�E�A�D�S�_�_� .� � � � ��� GB-009 �� 5.2.1 Š� � � � � z�e�r�o� �o�r� �m�o�r�e� �l�o�c�a�l�e�-�s�p�e�c�i�f�i�c� �m�e�m�b�e�r�s� �d�o�e�s�n� t� �r�e�f�l�e�c�t� �t�h�a�t� �t�h�e�r�e� � � � �a�r�e� �n�o�w� �t�h�r�e�e� �r�e�q�u�i�r�e�d� �m�e�m�b�e�r�s� �o�f� �t�h�e� �e�x�t�e�n�d�e�d� �c�h�a�r�a�c�t�e�r� �s�e�t�.� � � � �}� � � � �C�h�a�n�g�e� � z�e�r�o� �o�r� �m�o�r�e� �t�o� � t�h�r�e�e� �o�r� �m�o�r�e� ,� �w�i�t�h� �a� �f�o�o�t�n�o�t�e� � T�h�e� � � � �e�x�t�e�n�d�e�d� �c�h�a�r�a�c�t�e�r�s� �i�n�c�l�u�d�e� �a�t� �l�e�a�s�t� �@�,� �$�,� �a�n�d� �`�.� .� � � � ��� GB-010 �� 3 \� � � � � N� �i�n� �t�h�e� �t�a�b�l�e� �o�f� �u�p�p�e�r�c�a�s�e� �l�e�t�t�e�r�s� �i�s� �i�n� �b�o�l�d�,� �u�n�l�i�k�e� �t�h�e� �r�e�s�t� � � � �o�f� �t�h�e� �l�e�t�t�e�r�s�.� � � � �P� � � � �F�o�r� �t�h�i�s� �t�a�b�l�e�,� �d�i�s�a�b�l�e� �w�h�a�t�e�v�e�r� �f�o�r�m�a�t�t�i�n�g� �c�a�u�s�e�s� � N� �t�o� �b�e� �i�n� � � � �b�o�l�d�.� � � � ��� US 3 -011 í�� Adopt Wording Alternative #1 from N3046 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3046.pdf \� If any other characters are encountered in a source file (except in an identifier, a character constant, a string literal, a header name, a comment, or a preprocessing token that is never converted to a token), the behavior is undefined. The $ character is reserved for use in identifiers as an implementation-defined extension. �� GB-012 �� 5.2.4.1, 6.4.3 � The 2011 edition of ISO/IEC 10646 removed eight-digit short identifiers that were present in the 2003 edition (and this removal still applies as of the 2020 edition). Thus, the C standard should only use short identifiers with no more than six digits. v � � � �I�n� �5�.�2�.�4�.�1� �p�a�r�a�g�r�a�p�h� �1�,� �c�h�a�n�g�e� � 0�0�0�0�F�F�F�F� �t�o� � 0�0�F�F�F�F� �a�n�d� �c�h�a�n�g�e� � � � � 0�0�0�1�0�0�0�0� �t�o� � 0�1�0�0�0�0� .� � � � �I�n� �6�.�4�.�3� �p�a�r�a�g�r�a�p�h� �4�,� �c�h�a�n�g�e� � \�U�n�n�n�n�n�n�n�n� �t�o� � \�U�0�0�n�n�n�n�n�n� ,� � e�i�g�h�t� � � � �d�i�g�i�t� �t�o� � s�i�x� �d�i�g�i�t� �(�t�w�i�c�e�)�,� � n�n�n�n�n�n�n�n� �t�o� � n�n�n�n�n�n� �a�n�d� � 0�0�0�0�n�n�n�n� �t�o� � � � � 0�0�n�n�n�n� .� �A�t� �t�h�e� �e�n�d� �o�f� �f�o�o�t�n�o�t�e� �8�0�,� �a�d�d� � I�f� �e�i�t�h�e�r� �o�f� �t�h�e� �f�i�r�s�t� �t�w�o� �d�i�g�i�t�s� � � � �a�f�t�e�r� �\�U� �i�s� �n�o�t� �0�,� �t�h�i�s� �v�i�o�l�a�t�e�s� �a� �c�o�n�s�t�r�a�i�n�t�.� .� � � � ��� US 4 -013 �� 5.2.4.2.1 �� Para 5 [ � � � �T�h�e� �C� �S�t�a�n�d�a�r�d� � � � �c�o�n�s�i�d�e�r�s� �t�h�e� �l�a�n�g�u�a�g�e� �a�n�d� �t�h�e� �l�i�b�r�a�r�y� �c�o�m�p�o�n�e�n�t�s� �t�o� �b�o�t�h� �b�e� �c�o�m�b�i�n�e�d� �i�n�t�o� � � � �t�h�e� � i�m�p�l�e�m�e�n�t�a�t�i�o�n� ,� �b�u�t� �t�h�e� �r�e�a�l�i�t�y� �o�f� �m�o�d�e�r�n� �C� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�s� �i�s� �t�h�a�t� �t�h�e� � � � �c�o�m�p�i�l�e�r� �i�s� �p�o�t�e�n�t�i�a�l�l�y� �p�r�o�d�u�c�e�d� �b�y� �a� �d�i�f�f�e�r�e�n�t� �v�e�n�d�o�r� �t�h�a�n� �t�h�e� �s�t�a�n�d�a�r�d� � � � �l�i�b�r�a�r�y�.� �T�h�e� �r�e�q�u�i�r�e�m�e�n�t�s� �a�d�d�e�d� �b�y� �N�2�3�5�9� �p�o�s�e�s� �b�u�r�d�e�n�s� �f�o�r� �t�h�e� �l�a�t�t�e�r� �k�i�n�d� �o�f� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �s�c�e�n�a�r�i�o� �b�e�c�a�u�s�e� �t�h�e� �c�o�m�p�i�l�e�r� �h�a�s� �n�o� �c�o�n�t�r�<� �ol over the standard library features and the standard library has no control over the host compiler, so there is no way to know how to define these macros. As a concrete example, the Windows SDK is what vends the C Standard Library on Windows (used by MSVC and Clang, at a minimum), so it's quite easy to have an old version of a compiler that's linking against a new version of a standard library (or vice versa). ~�� We recommend reverting N2359 from C2x to give more time to explore the design space. �� GB-014 �� 5.2.4.2.2 �� 15 h� Stating that floating values  shall be constant expressions ensures they can be used in static initializers, but the stronger condition of being arithmetic constant expressions (rather than some other kind of implementation-defined constant expression permitted in initializers) is needed for them to be usable in constexpr initializers. Í� � � � �A�s�s�u�m�i�n�g� �t�h�o�s�e� �m�a�c�r�o�s� �s�h�o�u�l�d� �b�e� �u�s�a�b�l�e� �i�n� �c�o�n�s�t�e�x�p�r� �i�n�i�t�i�a�l�i�z�e�r�s�,� � � � �c�h�a�n�g�e� � a�l�l� �f�l�o�a�t�i�n�g� �v�a�l�u�e�s� �s�h�a�l�l� �b�e� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n�s� �t�o� � a�l�l� �f�l�o�a�t�i�n�g� � � � �v�a�l�u�e�s� �s�h�a�l�l� �b�e� �a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n�s� .� � � � ��� GB-015 �� 24 j� � � � �I�n� �t�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �t�h�e� �*�_�M�I�N�_�1�0�_�E�X�P� �a�n�d� �*�_�M�A�X�_�1�0�_�E�X�P� �m�a�c�r�o�s�,� � � � � l�o�g� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �i�t�a�l�i�c�s�.� � � � �:�� Change to roman font (LaTeX \log), in both places. �� GB-016 �� 29 ~�� When the value 2 for *_IS_IEC_60559 was removed editorially at a late stage, some uses of it were left in examples. X�� Change the values of FLT_IS_IEC_60559 and DBL_IS_IEC_60559 to 1 in Example 2. �� GB-017 �� 5, 6 5� � � � �T�h�e� �s�u�b�s�c�r�i�p�t� � m�i�n� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �i�t�a�l�i�c�s�.� � � � �:�� Change to roman font (LaTeX \min), in both places. �� US 5 -018 �� paragraph 18 z� � � � � m�a�t�c�h�(�e�s�)� �i�s� �u�s�e�d� �i�n� �a� �m�e�a�n�i�n�g�f�u�l� �w�a�y� �i�n� �F�.�2� �b�u�t� �i�s� �a�m�b�i�g�u�o�u�s� �h�e�r�e� � � � �i�n� �t�h�e� �m�o�r�e� �g�e�n�e�r�a�l� �c�o�n�t�e�x�t� �o�f� �5�.�2�.�4�.�2�.�2�.� � � � � �ä � � � �R�e�p�l�a�c�e� �t�h�e� �p�a�r�a�g�r�a�p�h� �w�i�t�h�:� � � � �W�h�e�t�h�e�r� �a� �t�y�p�e� �h�a�s� �t�h�e� �s�a�m�e� �p�r�e�c�i�s�i�o�n� �(�p�)� � � � �a�n�d� �e�x�p�o�n�e�n�t� �r�a�n�g�e� �(�e�m�i�n� �d" �e� �d" �e�m�a�x�)� �a�s� �a�n� �I�E�C� �6�0�5�5�9� � � � �f�o�r�m�a�t� �i�s� �c�h�a�r�a�c�t�e�r�i�z�e�d� �b�y� �t�h�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� �v�a�l�u�e�s� �o�f� � � � �F�L�T�_�I�S�_�I�E�C�_�6�0�5�5�9�,� �D�B�L�_�I�S�_�I�E�C�_�6�0�5�5�9� �a�n�d� �L�D�B�L�_�I�S�_�I�E�C�_�6�0�5�5�9� �(�t�h�i�s� �d�o�e�s� �n�o�t� �i�m�p�l�y� � � � �c�o�n�f�o�r�m�a�n�c�e� �t�o� �A�n�n�e�x� �F�)�:� � � � � � � � � � � �0� � �t�y�p�e� �d�o�e�s� �n�o�t� �h�a�v�e� �t�h�e� � � � �p�r�e�c�i�s�i�o�n� �a�n�d� �e�x�p�o�n�e�n�t� �r�a�n�g�e� �o�f� �a�n� �I�E�C� �6�0�5�5�9� �f�o�r�m�a�t� � � � � � � � � � � �1� � �t�y�p�e� �h�a�s� �t�h�e� �p�r�e�c�i�s�i�o�n� �a�n�d� � � � �e�x�p�o�n�e�n�t� �r�a�n�g�e� �o�f� �a�n� �I�E�C� �6�0�5�5�9� �f�o�r�m�a�t� � � � ��� GB-019 �� 5.2.4.2.3 �� 10 «� � � � �I�n� �t�h�e� �t�a�b�l�e� �o�f� �p�r�e�f�e�r�r�e�d� �q�u�a�n�t�u�m� �e�x�p�o�n�e�n�t�s�,� �t�h�e� �e�n�t�r�y� �f�o�r� � � � �i�n�c�r�e�m�e�n�t� �a�n�d� �d�e�c�r�e�m�e�n�t� �o�p�e�r�a�t�o�r�s� �s�h�o�w�s� � m�i�n� �i�n� �i�t�a�l�i�c�s� �w�h�e�n� �o�t�h�e�r� �e�n�t�r�i�e�s� �h�a�v�e� � � � �i�t� �i�n� �r�o�m�a�n� �f�o�n�t�.� � � � �*�� Change to roman font (LaTeX \min). �� GB-020 �� 8 >�� The upper bound on the coefficient given is incorrect. 9�� Change (LaTeX notation) $10^{(p-1)}$ to $10^p-1$. �� US 8 -021 )�� Preferred quantum exponents table ¡�� Beginning with the row for compoundn, the typeface style for the arguments n, x, and y are incorrect and inconsistent with the table entries above. —�� Beginning with the row for compoundn, fix the typeface style for the arguments n, x, and y to be consistent with the table entries above. �� US 7 -022 €� � � � �I�n� �t�h�e� �r�o�w� �f�o�r� �p�o�s�t�f�i�x� �a�n�d� �p�r�e�f�i�x� �o�p�e�r�a�t�o�r�s�,� �i�n� �t�h�e� �s�e�c�o�n�d� �c�o�l�u�m�n�,� � � � � m�i�n� �i�s� �n�o�t� �i�t�a�l�i�c�i�z�e�d� �(�a�s� �i�t� �i�s� �i�n� �o�t�h�e�r� �c�e�l�l�s�)�.� � � � �¬� � � � �I�n� �t�h�e� �r�o�w� �f�o�r� �p�o�s�t�f�i�x� �a�n�d� �p�r�e�f�i�x� �o�p�e�r�a�t�o�r�s�,� �i�n� �t�h�e� �s�e�c�o�n�d� �c�o�l�u�m�n�,� � � � �i�t�a�l�i�c�i�z�e� � m�i�n� �(�a�s� �i�n� �o�t�h�e�r� �c�e�l�l�s�)�.� �M�a�k�e� �o�t�h�e�r� �t�y�p�e�f�a�c�e� �c�h�a�n�g�e�s� �i�f� �n�e�e�d�e�d� � � � �f�o�r� �c�o�n�s�i�s�t�e�n�c�y�.� � � � ��� US 6 -023 ê� � � � �T�h�e� �O�p�e�r�a�t�i�o�n� �c�o�l�u�m�n� �c�o�n�t�a�i�n�s� �C� �o�p�e�r�a�t�i�o�n�s�,� � � � �n�o�t� �m�a�t�h�e�m�a�t�i�c�a�l� �o�n�e�s�.� �T�h�u�s�,� �h�y�p�h�e�n� �i�n� �p�r�o�g�r�a�m� �f�o�n�t� �s�h�o�u�l�d� �b�e� �u�s�e�d� �i�n�s�t�e�a�d� �o�f� � � � �m�i�n�u�s� �m�a�t�h� �s�y�m�b�o�l�,� �a�n�d� �l�i�k�e�w�i�s�e� � +� �i�n� �p�r�o�g�r�a�m� �f�o�n�t� �s�h�o�u�l�d� �b�e� �u�s�e�d� �i�n�s�t�e�a�d� �o�f� � � � �p�l�u�s� �m�a�t�h� �s�y�m�b�o�l�.� � � � �•� � � � �I�n� �t�h�e� �O�p�e�r�a�t�i�o�n� �c�o�l�u�m�n�,� �u�s�e� �h�y�p�h�e�n� �i�n� �p�r�o�g�r�a�m� �f�o�n�t� �i�n�s�t�e�a�d� �o�f� �m�i�n�u�s� � � � �m�a�t�h� �s�y�m�b�o�l�,� �a�n�d� �u�s�e� � +� �i�n� �p�r�o�g�r�a�m� �f�o�n�t� �i�n�s�t�e�a�d� �o�f� �p�l�u�s� �m�a�t�h� �s�y�m�b�o�l�.� � � � ��� GB-024 �� 6.2.2 ”�� The specification of linkage for file-scope objects fails to cover the case of objects declared as thread_local without static or extern. � � � � �C�h�a�n�g�e� � n�o� �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �o�r� �o�n�l�y� �t�h�e� �s�p�e�c�i�f�i�e�r� �a�u�t�o� �t�o� � � � � d�o�e�s� �n�o�t� �c�o�n�t�a�i�n� �t�h�e� �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �s�t�a�t�i�c� �o�r� �c�o�n�s�t�e�x�p�r� .� � � � ��� GB-025 �� 6.2.4 ‰� � � � �T�h�e�r�e� �i�s� �a� �s�t�r�a�y� � .� �i�n� �m�i�d�-�s�e�n�t�e�n�c�e� �i�m�m�e�d�i�a�t�e�l�y� �b�e�f�o�r�e� �t�h�e� � � � �f�o�o�t�n�o�t�e� �n�u�m�b�e�r� �3�5�,� �a�n�d� �a� �m�i�s�s�i�n�g� � .� �a�t� �t�h�e� �e�n�d� �o�f� �t�h�a�t� �s�e�n�t�e�n�c�e�.� � � � �T� � � � �M�o�v�e� �t�h�e� � .� �f�r�o�m� �b�e�f�o�r�e� �f�o�o�t�n�o�t�e� �n�u�m�b�e�r� �3�5� �t�o� �b�e�f�o�r�e� �f�o�o�t�n�o�t�e� � � � �n�u�m�b�e�r� �3�6�.� � � � ��� GB-026 �� 6.2.5 �� 13 Ò� � � � �T�h�e� �s�e�n�t�e�n�c�e� � D�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�s� �a�r�e� �r�e�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�s�.� � � � �s�e�e�m�s� �e�n�t�i�r�e�l�y� �s�u�p�e�r�f�l�u�o�u�s�,� �b�e�c�a�u�s�e� �t�h�e� �v�e�r�y� �n�e�x�t� �p�a�r�a�g�r�a�p�h� �i�n�c�l�u�d�e�s� �d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� � � � �t�y�p�e�s� �i�n� �t�h�e� �d�e�f�i�n�i�t�i�o�n� �o�f� �r�e�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�s�.� � � � ��� Remove that sentence. �� GB-027 �� 14 z� � � � � r�e�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�s� �i�s� �b�e�i�n�g� �d�e�f�i�n�e�d� �i�n� �t�h�i�s� �p�a�r�a�g�r�a�p�h�,� �s�o� � � � �s�h�o�u�l�d� �b�e� �i�n� �i�t�a�l�i�c�s� �t�o� �m�a�r�k� �i�t� �a�s� �a� �d�e�f�i�n�e�d� �t�e�r�m�.� � � � �2� � � � �C�h�a�n�g�e� � r�e�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�s� �i�n�t�o� �i�t�a�l�i�c�s�.� � � � ��� GB-028 ?�� 6.2.5, 6.3.1.1, 6.5.16.1, 6.7.10, 7.20.1, J.3.4  � � � � �T�h�e� �s�e�v�e�n� �u�s�e�s� �o�f� �t�h�e� � p�l�a�i�n� �c�h�a�r� �p�h�r�a�s�e� �(�t�w�o� �a�p�p�e�a�r� �i�n� �7�.�2�0�.�1�)� � � � �i�n� �t�h�e� �d�o�c�u�m�e�n�t� �a�r�e� �i�n�c�o�n�s�i�s�t�e�n�t� �a�b�o�u�t� �w�h�e�t�h�e�r� �t�h�e� �w�o�r�d� � p�l�a�i�n� �i�s� �q�u�o�t�e�d� �o�r� � � � �n�o�t�.� � � � �y�� Make them consistent, with on<� �e choice or the other. Probably use quoting, as then only 7.20.1 needs to change. �� GB-029 �� 6.2.6.1 Î� � � � �T�h�i�s� �n�o�t�e� �w�o�u�l�d� �s�e�e�m� �t�o� �b�e� �s�u�p�e�r�f�l�u�o�u�s�,� �a�s� �t�h�e� �r�e�a�d�e�r�s�h�i�p� �o�f� �t�h�e� � � � �S�t�a�n�d�a�r�d� �s�h�o�u�l�d� �b�e� �e�x�p�e�c�t�e�d� �t�o� �k�n�o�w� �w�h�a�t� � b�i�n�a�r�y� �m�e�a�n�s�!� �I�f� �t�h�e� �d�e�f�i�n�i�t�i�o�n� �i�s� � � � �f�e�l�t� �t�o� �b�e� �i�m�p�o�r�t�a�n�t� �t�h�e�n� �m�o�v�e� �i�t� �t�o� �p�a�r�a�g�r�a�p�h� �3�.� � � � ��� Remove this note. �� GB-030 �� 6.2.6.2 p � � � �T�h�e� �s�t�a�t�e�m�e�n�t� �i�n� �N�o�t�e� �1� �t�h�a�t� � t�h�i�s� �c�a�n�n�o�t� �o�c�c�u�r� �w�i�t�h� �u�n�s�i�g�n�e�d� � � � �t�y�p�e�s� �i�s� �t�o�o� �g�e�n�e�r�a�l�;� �u�n�s�i�g�n�e�d� �t�y�p�e�s� �h�a�v�e� �e�x�c�e�p�t�i�o�n�a�l� �c�o�n�d�i�t�i�o�n�s� �(�r�e�s�u�l�t�i�n�g� � � � �i�n� �u�n�d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r�)�,� �s�u�c�h� �a�s� �d�i�v�i�s�i�o�n� �b�y� �z�e�r�o� �o�r� �s�h�i�f�t�i�n�g� �b�y� �a� �t�o�o�-�l�a�r�g�e� � � � �o�r� �n�e�g�a�t�i�v�e� �a�m�o�u�n�t�,� �a�n�d� �t�h�o�s�e� �c�o�n�d�i�t�i�o�n�s� �c�o�u�l�d� �r�e�s�u�l�t� �i�n� �a� �n�o�n�-�v�a�l�u�e� � � � �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �b�e�i�n�g� �s�t�o�r�e�d� �a�s� �t�h�e�i�r� �f�o�r�m� �o�f� �u�n�d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r�.� � � � �Ï� � � � �R�e�m�o�v�e� � ,� �a�n�d� �t�h�i�s� �c�a�n�n�o�t� �o�c�c�u�r� �w�i�t�h� �u�n�s�i�g�n�e�d� �t�y�p�e�s� .� �(�A�l�t�e�r�n�a�t�i�v�e�l�y�,� � � � �a� �m�o�r�e� �d�e�t�a�i�l�e�d� �d�i�s�c�u�s�s�i�o�n� �c�o�u�l�d� �b�e� �a�d�d�e�d� �o�f� �w�h�i�c�h� �o�p�e�r�a�t�i�o�n�s� �o�n� �u�n�s�i�g�n�e�d� � � � �t�y�p�e�s� �c�a�n� �o�r� �c�a�n�n�o�t� �h�a�v�e� �e�x�c�e�p�t�i�o�n�a�l� �c�o�n�d�i�t�i�o�n�s�.�)� � � � ��� DE-031 �� 6.2.7 � The rules for composite types in C are not fully complete which is a known issue affecting also previous versions of C standard (cf. C90 DR#13). The most relevant issue in the past was that the composite type of an enumerated type and its compatible integer type is not specified. With the new changes to compatibility of tagged types and the changes to enumerated types in C2X the general issue becomes more problematic and the rules should be fully specified to avoid future implementation divergence.  � � � �6�.�2�.�7� �C�o�m�p�a�t�i�b�l�e� �T�y�p�e� �a�n�d� �C�o�m�p�o�s�i�t�e� �T�y�p�e� � � � �3� �A� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �c�a�n� �b�e� �c�o�n�s�t�r�u�c�t�e�d� �f�r�o�m� �t�w�o� �t�y�p�e�s� �t�h�a�t� �a�r�e� � � � �c�o�m�p�a�t�i�b�l�e�;� �i�t� �i�s� �a� �t�y�p�e� �t�h�a�t� �i�s� �c�o�m�p�a�t�i�b�l�e� �w�i�t�h� �b�o�t�h� �o�f� �t�h�e� �t�w�o� �t�y�p�e�s� �a�n�d� � � � �s�a�t�i�s�f�i�e�s� �t�h�e� �f�o�l�l�o�w�i�n�g� �c�o�n�d�i�t�i�o�n�s�:� � � � � �I�f� �b�o�t�h� �t�y�p�e�s� �a�r�e� �s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e�s� �t�h�e� �f�o�l�l�o�w�i�n�g� �r�u�l�e�s� � � � �a�p�p�l�y�:� � � � �·� � � � �I�f� �b�o�t�h� �a�r�e� �t�h�e� �s�a�m�e�,� � � � �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �t�h�i�s� �t�y�p�e�.� � � � �·� � � � �O�t�h�e�r�w�i�s�e�,� �i�f� �b�o�t�h� � � � �t�y�p�e�s� �a�r�e� �s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e�s�,� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �d�e�t�e�r�m�i�n�e�d� � � � �r�e�c�u�r�s�i�v�e�l�y� �b�y� �f�o�r�m�i�n�g� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e�s� �o�f� �t�h�e�i�r� �m�e�m�b�e�r�s�.� � � � �·� � � � �O�t�h�e�r�w�i�s�e�,� �i�f� �b�o�t�h� � � � �t�y�p�e�s� �a�r�e� �e�n�u�m�e�r�a�t�e�d� �t�y�p�e�s�,� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �a� �c�o�m�p�a�t�i�b�l�e� �e�n�u�m�e�r�a�t�e�d� � � � �t�y�p�e�.� � � � �·� � � � �O�t�h�e�r�w�i�s�e�,� �i�f� �o�n�e� �t�y�p�e� � � � �i�s� �a�n� �e�n�u�m�e�r�a�t�e�d� �t�y�p�e� �a�n�d� �t�h�e� �o�t�h�e�r� �i�s� �a� �c�o�m�p�a�t�i�b�l�e� �i�n�t�e�g�e�r� �t�y�p�e�,� �t�h�e� � � � �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �t�h�e� �e�n�u�m�e�r�a�t�e�d� �t�y�p�e�.� � � � �·� �& � � � �T�h�e�s�e� �r�u�l�e�s� �a�p�p�l�y� �r�e�c�u�r�s�i�v�e�l�y� �t�o� �t�h�e� �t�y�p�e�s� �f�r�o�m� �w�h�i�c�h� �t�h�e� �t�w�o� � � � �t�y�p�e�s� �a�r�e� �d�e�r�i�v�e�d�.� �W�h�e�n� �c�o�n�s�t�r�u�c�t�i�n�g� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �f�o�r� �t�h�e� �s�a�m�e� � �t�w�o� �t�y�p�e�s� �i�n� �d�i�f�f�e�r�e�n�t� �c�o�n�t�e�x�t�s�,� �t�h�e� � � � �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �t�h�e� �s�a�m�e�.� �I�f� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �e�q�u�i�v�a�l�e�n�t� �t�o� �o�n�e� �o�f� �t�h�e� � � � �t�w�o� �o�r�i�g�i�n�a�l� �t�y�p�e�s�,� �i�t� �i�s� �u�n�s�p�e�c�i�f�i�e�d� �w�h�e�t�h�e�r� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �i�s� �t�h�e� �s�a�m�e� � � � �t�y�p�e� �a�s� �a�n� �e�q�u�i�v�a�l�e�n�t� �o�r�i�g�i�n�a�l� �t�y�p�e�.�*�*� � � � � � � � �*�*�)� �T�h�e� �n�o�t�i�o�n� �o�f� �&�q�u�o�t�;�s�a�m�e� �t�y�p�e�&�q�u�o�t�;� �a�f�f�e�c�t�s� �r�e�d�e�c�l�a�r�a�t�i�o�n�s� �o�f� � � � �t�y�p�e�d�e�f� �n�a�m�e�s� �a�n�d� �s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e�s�.� � � � � � � � � �� - �� GB-032 �� 6.2.7, 6.7.2.3 � Within a translation unit, it is problematic to allow union types with members declared in a different order to be compatible, because a braced initializer for a union initializes the first named member (and default initialization is also defined in terms of the first named member), and given such declarations, it's not clear which member should be considered first.  The same issue of course applies when the union has no tag but is contained within a struct or union that does have a tag. Ï � � � �I�n� �6�.�2�.�7� �p�a�r�a�g�r�a�p�h� �1�,� �a�f�t�e�r� � F�o�r� �t�w�o� �s�t�r�u�c�t�u�r�e�s�,� �c�o�r�r�e�s�p�o�n�d�i�n�g� � � � �m�e�m�b�e�r�s� �s�h�a�l�l� �b�e� �d�e�c�l�a�r�e�d� �i�n� �t�h�e� �s�a�m�e� �o�r�d�e�r�.� �i�n�s�e�r�t� � F�o�r� �t�w�o� �u�n�i�o�n�s� �d�e�c�l�a�r�e�d� � � � �i�n� �t�h�e� �s�a�m�e� �t�r�a�n�s�l�a�t�i�o�n� �u�n�i�t�,� �c�o�r�r�e�s�p�o�n�d�i�n�g� �m�e�m�b�e�r�s� �s�h�a�l�l� �b�e� �d�e�c�l�a�r�e�d� �i�n� �t�h�e� � � � �s�a�m�e� �o�r�d�e�r�.� .� � � � �I�n� �6�.�7�.�2�.�3� �p�a�r�a�g�r�a�p�h�s� �7� �a�n�d� �8�,� �m�o�v�e� �t�h�e� � u�n�i�o�n� �b�a�r� �d�e�c�l�a�r�a�t�i�o�n�s� � � � �f�r�o�m� �E�x�a�m�p�l�e� �1� �(�v�a�l�i�d�)� �t�o� �E�x�a�m�p�l�e� �2� �(�i�n�v�a�l�i�d�)�,� �w�i�t�h� �a� �c�o�m�m�e�n�t� �a�d�d�e�d� � o�n�l�y� � � � �v�a�l�i�d� �i�f� �t�h�e� �t�w�o� �d�e�c�l�a�r�a�t�i�o�n�s� �a�r�e� �i�n� �d�i�f�f�e�r�e�n�t� �t�r�a�n�s�l�a�t�i�o�n� �u�n�i�t�s� .� � � � ��� GB-033 �� 6.3.1.8 ´�� The comment on the third multiplication example is only correct if int has less than 33 bits; if int has 33 bits or more, the _BitInt(33) operand is converted to int. t� � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �c�o�m�m�e�n�t� �o�n� �t�h�e� �t�h�i�r�d� �m�u�l�t�i�p�l�i�c�a�t�i�o�n� �e�x�a�m�p�l�e�,� �a�d�d� � � � � ,� �p�r�o�v�i�d�e�d� �i�n�t� �h�a�s� �w�i�d�t�h� �a�t� �m�o�s�t� �3�2� .� � � � ��� US 9 -034 �� 6.3.2.3 �� Para 3 ¤�� This makes nullptr a null pointer constant, as well as 0, and (void *)0, but it seems to leave out (void *)nullptr which seems like a minor oversight. W�� Add (void *)nullptr to the list of allowed forms of a null pointer constant. �� US 10 -035 �� 6.3.2.4 �� Para 1 Ê�� Introduces incompatible semantics with C++ regarding what can be converted to nullptr_t type in the following example (rejected in C, accepted in C++): void func(nullptr_t); func(0); 3�� This example should be accepted, as in C++. �� FR-036 �� 6.4.1 �� p3 L�� Allow the bitprecise types _BitInt(N) to be implemented as macros $�� see accompanying document �� US 11 -037 Õ� There is an unfortunate (existing) incompatibility between C and C++ regarding thread_local that is exacerbated by renaming _Thread_local to thread_local. The meaning of _Thread_local in C and thread_local in C++ are subtly different in terms of behavior (this is an existing problem today with the thread_local macro and not new to C2x). This change impacts code like: extern thread_l<� �ocal struct A a; A *access() {   return &a; } Ý�� We recommend rolling back just the change for thread_local from this paper to give time for further collaboration between WG14 and WG21 to resolve the incompatibility without being under time constraints. �� NEN/NL5-038 �� n/a @�� 6.4.1; 6.4.4.5; 6.5.4; 6.5.9; 6.5.15, 7.21.2 ý � � � �T�h�e� �n�u�l�l�p�t�r� �p�r�e�d�e�f�i�n�e�d� �k�e�y�w�o�r�d� �a�n�d� �n�u�l�l�p�t�r�_�t� �t�y�p�e� �w�a�s� �a�d�d�e�d�,� � � � �r�e�p�r�e�s�e�n�t�i�n�g� �a� �s�e�p�a�r�a�t�e� �w�a�y� �t�o� �a�c�c�e�s�s� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t�.� �T�h�i�s� �m�a�y� �b�e� � � � �r�e�d�u�n�d�a�n�t� �a�n�d� �u�n�n�e�c�e�s�s�a�r�y� �a�n�d� �t�h�e� �p�r�o�b�l�e�m�s� �i�t� �a�d�d�r�e�s�s�e�s� �n�o�t� �s�u�i�t�a�b�l�y� � � � �s�u�f�f�i�c�i�e�n�t� �t�o� �j�u�s�t�i�f�y� �k�e�e�p�i�n�g� �i�t�.� �U�s�e�r�s� �v�o�i�c�e�d� �c�o�n�c�e�r�n� �o�v�e�r� �k�e�e�p�i�n�g� �i�t� �i�n� �t�h�e� � � � �C� �S�t�a�n�d�a�r�d�,� �a�n�d� �a� �f�e�w� �a�u�d�i�t�e�d� �e�x�i�s�t�i�n�g� �c�o�d�e�b�a�s�e�s� �a�n�d� �e�x�i�s�t�i�n�g� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�s� � � � �t�o� �s�e�e� �i�f� �t�h�e�r�e� �w�a�s� �a�n�y� �n�e�e�d� �b�e�y�o�n�d� �j�u�s�t� �s�e�t�t�l�i�n�g� �o�n� �a�n� �e�x�i�s�t�i�n�g� �n�u�l�l� �p�o�i�n�t�e�r� � � � �c�o�n�s�t�a�n�t� �s�u�c�h� �a�s� � (�v�o�i�d�*�)�0� .� �A�d�d�i�t�i�o�n�a�l� �u�s�e�r�s� �f�o�u�n�d� �e�x�i�s�t�i�n�g� �p�r�a�c�t�i�c�e� �w�h�e�r�e� � � � � 0� �a�n�d� � 0�L� �w�e�r�e� �b�e�i�n�g� �u�s�e�d� �a�s� �t�h�e� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �(�e�.�g�.�,� �i�n� � � � �d�e�f�i�n�i�t�i�o�n�s� �o�f� � N�U�L�L� )� �f�o�r� �e�m�b�e�d�d�e�d� �c�h�i�p�s� �l�i�k�e� �t�h�o�s�e� �e�m�p�l�o�y�e�d� �b�y� �U�.�S�.� �v�e�n�d�o�r� � � � �[�R�E�D�A�C�T�E�D�]�.� �W�h�i�l�e� �s�o�m�e� �v�e�n�d�o�r�s� �r�e�s�p�o�n�d�e�d� �p�o�s�i�t�i�v�e�l�y� �t�o� �b�e�i�n�g� �e�n�c�o�u�r�a�g�e�d� �t�o� � � � �c�h�a�n�g�e� �f�r�o�m� �u�s�i�n�g� � 0� �a�n�d� � 0�L� �t�o� � (�v�o�i�d�*�)�0� ,� �o�t�h�e�r�s� �e�i�t�h�e�r� �d�i�d� �n�o�t� �r�e�s�p�o�n�d� � � � �o�r� �r�e�j�e�c�t�e�d� �o�u�t�r�i�g�h�t� �t�h�e� �i�d�e�a� �t�h�a�t� �t�h�e�y� �w�o�u�l�d� �c�h�a�n�g�e� �t�h�e�i�r� �N�U�L�L� �m�a�c�r�o� �f�r�o�m� �0� � � � �t�o� � (�v�o�i�d�*�)�0� .� �S�o�m�e� �p�l�a�t�f�o�r�m�s� �u�s�e� �a� �s�p�e�c�i�a�l� �_�_�n�u�l�l� �e�v�e�n� �f�o�r� �t�h�e�i�r� �n�o�n�-�C�+�+� � � � �p�l�a�t�f�o�r�m�s�.� �O�t�h�e�r� �v�e�n�d�o�r�s�,� �s�u�c�h� �a�s� �[�R�E�D�A�C�T�E�D�]�,� �u�s�e�d� � 0� /� 0�L� �e�x�p�l�i�c�i�t�l�y� �u�n�l�e�s�s� � � � �a� �m�a�c�r�o� �t�u�r�n�e�d� �o�n� �t�o� �o�p�t� �i�n�t�o� �a� �n�e�w�e�r� � (�v�o�i�d�*�)�0� �d�e�f�i�n�i�t�i�o�n� �o�f� �t�h�e� �m�a�c�r�o�.� �I�t� �i�s� �n�o�t�e�d� �t�h�e�s�e� �u�s�e�r�s� �a�n�d� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�s� �w�e�r�e� �i�n� �t�h�e� �v�a�s�t� � � � �m�i�n�o�r�i�t�y�,� �e�v�e�n� �t�h�o�u�g�h� �t�h�e�y� �d�o� �d�e�f�i�n�i�t�i�v�e�l�y� �e�x�i�s�t�.� � � � �³�� Given this additional information, poll the C Standards Committee again if the nullptr changes from N3042 should remain or be removed completely from the C Standard. �� GB-039 �� 6.4.2.1 1�� Consider allowing $ in identifiers again. 7�� See N3046 for some possible choices of wording. �� US 12 -040 ˆ�� Adopt Wording Alternative #3 from N3046 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3046.pdf ‡�� nondigit: one of _ $ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z �� US 14 -041 ¤�� Adopt Wording Alternative #3 from N3046 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3046.pdf [Duplicate of US 11] Ì� An identifier is a sequence of nondigit characters (including the underscore _, the dollar sign $, the lowercase and uppercase Latin letters, and other characters) and digits, which designates one or more entities as described in 6.2.1. It is implementation-defined if a dollar sign $ may be used as a nondigit character. Lowercase and uppercase letters are distinct. There is no specific limit on the maximum length of an identifier. �� US 13 -042 ‰�� Adopt Wording Alternative #2 from N3046 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3046.pdf ž� An identifier is a sequence of nondigit characters (including the underscore _, the lowercase and uppercase Latin letters, and other characters) and digits, which designates one or more entities as described in 6.2.1. The nondigit characters may also include a dollar sign $. Lowercase and uppercase letters are distinct. There is no specific limit on the maximum length of an identifier. �� GB-043 �� 9 ƒ� � � � �T�h�e� �r�e�f�e�r�e�n�c�e�s� �t�o� � a�t�t�r�i�b�u�t�e� �t�o�k�e�n� �h�e�r�e� �s�h�o�u�l�d� �b�e� �m�o�r�e� � � � �s�p�e�c�i�f�i�c�a�l�l�y� �t�o� �t�h�e� �i�d�e�n�t�i�f�i�e�r�s� �l�i�s�t�e�d� �f�o�r� � s�t�a�n�d�a�r�d� �a�t�t�r�i�b�u�t�e� .� � � � �V� � � � �C�h�a�n�g�e� � a�t�t�r�i�b�u�t�e� �t�o�k�e�n� �t�o� � s�t�a�n�d�a�r�d� �a�t�t�r�i�b�u�t�e� �(�t�w�i�c�e� �i�n� �t�h�i�s� � � � �p�a�r�a�g�r�a�p�h�)�.� � � � ��� FR-044 �� 6.4.2.1 �� p10 =�� The status of optional identifiers could be clarified �� GB-045 �� 6.4.4.1 �� 7 ‡� � � � �A� �c�o�n�s�t�a�n�t� �w�i�t�h� �t�h�e� � w�b� �o�r� � W�B� �s�u�f�f�i�x� �t�h�a�t� �e�x�c�e�e�d�s� � � � �B�I�T�I�N�T�_�M�A�X�W�I�D�T�H� �s�h�o�u�l�d� �n�o�t� �b�e� �a�l�l�o�w�e�d� �t�o� �h�a�v�e� �a�n� �e�x�t�e�n�d�e�d� �i�n�t�e�g�e�r� �t�y�p�e�.� � � � �¢� � � � �I�n� �t�h�e� �f�i�r�s�t� �s�e�n�t�e�n�c�e� �o�f� �t�h�i�s� �p�a�r�a�g�r�a�p�h�,� �c�h�a�n�g�e� � I�f� �a�n� �i�n�t�e�g�e�r� � � � �c�o�n�s�t�a�n�t� �t�o� � I�f� �a�n� �i�n�t�e�g�e�r� �c�o�n�s�t�a�n�t� �t�h�a�t� �d�o�e�s� �n�o�t� �h�a�v�e� �a� �s�u�f�f�i�x� �i�n�c�l�u�d�i�n�g� �w�b� � � � �o�r� �W�B� .� � � � ��� GB-046 2�� 6.4.4.3, 6.7.2.3, 6.7.12.2, 7.20.1 ¦� � � � �F�o�r� �c�o�n�s�i�s�t�e�n�c�y�,� �t�h�e� �p�h�r�a�s�e� � e�n�u�m�e�r�a�t�i�o�n� �t�y�p�e� �s�h�o�u�l�d� �b�e� �c�h�a�n�g�e�d� � � � �t�o� � e�n�u�m�e�r�a�t�e�d� �t�y�p�e� �t�h�r�o�u�g�h�o�u�t� �(�t�h�e� �l�a�t�t�e�r� �i�s� �t�h�e� �d�e�f�i�n�e�d� �t�e�r�m� �i�n� �6�.�2�.�5� � � � �p�a�r�a�g�r�a�p�h� �2�1�)�.� � � � �”� � � � �C�h�a�n�g�e� � e�n�u�m�e�r�a�t�i�o�n� �t�y�p�e� �t�o� � e�n�u�m�e�r�a�t�e�d� �t�y�p�e� �t�h�r�o�u�g�h�o�u�t� �t�h�e� � � � �d�o�c�u�m�e�n�t�.� �D�o� �n�o�t� �c�h�a�n�g�e� �u�s�e�s� �o�f� �t�h�e� �w�o�r�d� � e�n�u�m�e�r�a�t�i�o�n� �o�u�t�s�i�d�e� �t�h�a�t� �p�h�r�a�s�e�.� � � � ��� GB-047 �� 6.4.4.4 �� 13, 14 I� � � � � a�n� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�s� �s�h�o�u�l�d� �b�e� � a�n� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� .� � � � �t� � � � �C�h�a�n�g�e� � a�n� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�s� �t�o� � a�n� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� � � � �(�i�n� �b�o�t�h� �p�a�r�a�g�r�a�p�h� �1�3� �a�n�d� �p�a�r�a�g�r�a�p�h� �1�4�)�.� � � � ��� US 15-048 �� 6.4.6 �� Footnote 89 ·�� Change the text to refer to both digraphs and trigraphs. This is not necessary and might be clearer, or might not depending on the association with the old semantics. O� � � � �A�d�d� �t�h�e� �w�o�r�d�s� � a�n�d� � t�r�i�g�r�a�p�h�s�  �t�o� �t�h�e� �e�n�d� � � � �o�f� �t�h�e� �f�o�o�t�n�o�t�e� �s�e�n�t�e�n�c�e�.� � � � ��� NEN/NL1-049 �� Paragraph 3 � Tripgraph removal is a good and necessary change that should happen. However, in removing trigraphs we have violated some of the few norms we have about working with and adjusting the C Standard. Namely, there was no deprecation period and no consideration of alternatives for implementations and users with demonstrated need of such. We think trigraphs should be removed! However, doing so without a deprecation period and/or an alternative is not helpful to those users and tha<� �t userbase. “ � � � �O�n�e� �o�f� �t�w�o� �p�o�t�e�n�t�i�a�l� �o�p�t�i�o�n�s� �s�h�o�u�l�d� �b�e� �p�o�l�l�e�d� �b�y� �t�h�e� �C�o�m�m�i�t�t�e�e�:� � � � � �r�e�v�e�r�t� �N�2�9�4�0� � R�e�m�o�v�e� �T�r�i�g�r�a�p�h�s�?�?�!� �a�n�d� �m�a�r�k� � � � �T�r�i�g�r�a�p�h�s� �a�s� �a� �d�e�p�r�e�c�a�t�e�d� �f�e�a�t�u�r�e�;� �O�R�,� � � � � �t�r�a�n�s�i�t�i�o�n� �b�e�h�a�v�i�o�r� �o�f� �t�r�i�g�r�a�p�h�s� �i�n�t�o� � � � �d�i�g�r�a�p�h�s�,� �r�e�m�o�v�i�n�g� �p�r�o�b�l�e�m�a�t�i�c� �s�t�r�i�n�g�-�d�e�f�y�i�n�g� �a�n�d� �c�o�m�m�e�n�t�-�d�e�f�y�i�n�g� �t�r�i�g�r�a�p�h� � � � �s�e�q�u�e�n�c�e�s� �a�n�d� �i�n�t�e�r�c�h�a�n�g�i�n�g� �t�h�e�m� �w�i�t�h� �h�e�l�p�f�u�l� �d�i�g�r�a�p�h�-�b�a�s�e�d� �b�e�h�a�v�i�o�r�,� � � � �e�s�p�e�c�i�a�l�l�y� �f�o�r� �t�h�e� �p�r�e�p�r�o�c�e�s�s�o�r� � #� �s�y�m�b�o�l�.� � � � ��� US 18 -050 � Continue to make the remaining former trigraphs available with digraph semantics. This minimizes the impact on existing user code. No real-world user code is known to depend on the trigraph-specific semantics; all reported uses are as punctuators. ‡ � � � �A�s�s�u�m�i�n�g� �c�o�m�m�e�n�t�s� �1� �a�n�d� �2� �a�r�e� � � � �i�n�c�l�u�d�e�d�:� � � � �R�e�v�e�r�t� �p�a�r�a�g�r�a�p�h� �3� �b�a�c�k� �t�o� �i�t�s� � � � �o�r�i�g�i�n�a�l� �f�o�r�m�,� �t�h�e�n� �a�d�d� �f�o�u�r� �n�e�w� �l�i�n�e�s� �b�e�f�o�r�e� � e�x�c�e�p�t� �f�o�r� �t�h�e�i�r� �s�p�e�l�l�i�n�g� � � � �(�t�h�i�s� �i�s� �c�l�e�a�r�e�r� �t�h�a�n� �a� �s�i�n�g�l�e� �l�o�n�g� �l�i�s�t�)�:� � � � �a�n�d� �t�h�e� �n�i�n�e� �t�o�k�e�n�s� � � � � � � � � �?�?�=� �?�?�/� �?�?� �?�?�(� �?�?�)� �?�?�!� �?�?�&�l�t�;� �?�?�&�g�t�;� �?�?�-� � � � �b�e�h�a�v�e�,� �r�e�s�p�e�c�t�i�v�e�l�y�,� �t�h�e� �s�a�m�e� �a�s� � � � �t�h�e� �n�i�n�e� �t�o�k�e�n�s� � � � � � � � � �#� � �\� � �^� � � � � �[� � �]� � �|� � � � � �{� � �}� � �~� � � � � � � � � � � � � � � � � � � ��� US 17 -051 °� � � � �C�o�n�t�i�n�u�e� � � � �t�o� �m�a�k�e� �t�h�e� �f�o�r�m�e�r� �t�r�i�g�r�a�p�h�s� �f�o�r� �[� �a�n�d� �]� �a�v�a�i�l�a�b�l�e�,� �b�u�t� �w�i�t�h� � d�i�g�r�a�p�h� � � � �s�e�m�a�n�t�i�c�s�.� � � � �T�h�e�s�e� �a�r�e� �t�h�e� �m�o�s�t� �c�o�m�m�o�n�l�y�-�u�s�e�d� �t�r�i�g�r�a�p�h�s� � � � �i�n� �e�x�i�s�t�i�n�g� �u�s�e�r� �c�o�d�e�.� � � � �- � � � �A�s�s�u�m�i�n�g� �c�o�m�m�e�n�t� �1� �i�s� �i�n�c�l�u�d�e�d�;� � � � �C�h�a�n�g�e� �b�o�t�h� �o�c�c�u�r�r�e�n�c�e�s� �o�f� � t�h�e� �s�e�v�e�n� � � � �t�o�k�e�n�s� �t�o� � t�h�e� �n�i�n�e� �t�o�k�e�n�s� ;� �a�d�d� �t�o� �t�h�e� �e�n�d� �o�f� �t�h�e� �f�i�r�s�t� �l�i�s�t� �o�f� � � � �p�u�n�c�t�u�a�t�o�r�s�,� � ?�?�(� �a�n�d� � ?�?�)� �(�u�n�q�u�o�t�e�d�,� �t�h�r�e�e� �c�h�a�r�a�c�t�e�r�s�)�;� �a�d�d� �t�o� �t�h�e� �e�n�d� �o�f� � � � �t�h�e� �s�e�c�o�n�d� �l�i�s�t� �o�f� �p�u�n�c�t�u�a�t�o�r�s� � [� �a�n�d� � ]� �(�u�n�q�u�o�t�e�d�,� �o�n�e� �c�h�a�r�a�c�t�e�r�)� � � � ��� US 16 -052 ó� � � � �C�o�n�t�i�n�u�e� � � � �t�o� �m�a�k�e� �t�h�e� �f�o�r�m�e�r� �t�r�i�g�r�a�p�h� �f�o�r� �#� �a�v�a�i�l�a�b�l�e�,� �b�u�t� �w�i�t�h� � d�i�g�r�a�p�h� �s�e�m�a�n�t�i�c�s�.� � � � �T�h�i�s� �i�s� �n�e�c�e�s�s�a�r�y� �t�o� �a�l�l�o�w� �b�a�s�i�c� �m�i�n�i�m�a�l� � � � �C�2�3� �p�o�r�t�a�b�i�l�i�t�y� �o�f� �o�l�d�e�r� �p�r�o�j�e�c�t�s� �w�h�i�c�h� �u�s�e� �a� �#�p�r�a�g�m�a� �l�i�n�e� �t�o� �s�w�i�t�c�h� �t�h�e� � � � �c�o�m�p�i�l�e�r� �i�n�t�o� �A�S�C�I�I� �m�o�d�e�.� � � � �÷� � � � �C�h�a�n�g�e� �b�o�t�h� �o�c�c�u�r�r�e�n�c�e�s� �o�f� � t�h�e� �s�i�x� �t�o�k�e�n�s� � � � �t�o� � t�h�e� �s�e�v�e�n� �t�o�k�e�n�s� ;� �a�d�d� �t�o� �t�h�e� �e�n�d� �o�f� �t�h�e� �f�i�r�s�t� �l�i�s�t� �o�f� �p�u�n�c�t�u�a�t�o�r�s�,� � ?�?�=� � � � �(�u�n�q�u�o�t�e�d�,� �t�h�r�e�e� �c�h�a�r�a�c�t�e�r�s�)�;� �a�d�d� �t�o� �t�h�e� �e�n�d� �o�f� �t�h�e� �s�e�c�o�n�d� �l�i�s�t� �o�f� � � � �p�u�n�c�t�u�a�t�o�r�s� � #� �(�u�n�q�u�o�t�e�d�,� �o�n�e� �c�h�a�r�a�c�t�e�r�)� � � � ��� GB-053 �� 6.4.7 ‰�� The wording here about contexts for header name preprocessing tokens needs to include the same contexts as in 6.4 paragraph 4. ð � � � �C�h�a�n�g�e� � H�e�a�d�e�r� �n�a�m�e� �p�r�e�p�r�o�c�e�s�s�i�n�g� �t�o�k�e�n�s� �a�r�e� �r�e�c�o�g�n�i�z�e�d� �o�n�l�y� � � � �w�i�t�h�i�n� �#�i�n�c�l�u�d�e� �p�r�e�p�r�o�c�e�s�s�i�n�g� �d�i�r�e�c�t�i�v�e�s� �a�n�d� �i�n� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� � � � �l�o�c�a�t�i�o�n�s� �w�i�t�h�i�n� �#�p�r�a�g�m�a� �d�i�r�e�c�t�i�v�e�s�.� �t�o� � H�e�a�d�e�r� �n�a�m�e� �p�r�e�p�r�o�c�e�s�s�i�n�g� �t�o�k�e�n�s� � � � �a�r�e� �r�e�c�o�g�n�i�z�e�d� �o�n�l�y� �w�i�t�h�i�n� �#�i�n�c�l�u�d�e� �a�n�d� �#�e�m�b�e�d� �p�r�e�p�r�o�c�e�s�s�i�n�g� �d�i�r�e�c�t�i�v�e�s�,� �i�n� � � � �_�_�h�a�s�_�i�n�c�l�u�d�e� �a�n�d� �_�_�h�a�s�_�e�m�b�e�d� �e�x�p�r�e�s�s�i�o�n�s�,� �a�s� �w�e�l�l� �a�s� �i�n� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� �l�o�c�a�t�i�o�n�s� �w�i�t�h�i�n� �#�p�r�a�g�m�a� �d�i�r�e�c�t�i�v�e�s�.� �(�t�h�e� �s�a�m�e� � � � �w�o�r�d�i�n�g� �a�s� �i�n� �6�.�4� �p�a�r�a�g�r�a�p�h� �4�,� �a�n�d� �f�o�r�m�a�t�t�e�d� �t�h�e� �s�a�m�e� �w�a�y�)�.� � � � ��� GB-054 �� 6.5 �� footnote 95 g� � � � �T�h�e� �l�i�s�t� �o�f� �c�a�s�e�s� �w�h�e�r�e� �o�p�e�r�a�n�d�s� �m�a�y� �c�o�m�e� �f�r�o�m� �a� �l�a�t�e�r� �s�u�b�c�l�a�u�s�e� � � � �d�o�e�s�n� t� �a�l�l�o�w� �f�o�r� �_�G�e�n�e�r�i�c�.� � � � �¨� � � � �A�f�t�e�r� � g�r�o�u�p�i�n�g� �p�a�r�e�n�t�h�e�s�e�s� �(�)� �(�6�.�5�.�1�)�,� ,� �i�n�s�e�r�t� � g�e�n�e�r�i�c� � � � �s�e�l�e�c�t�i�o�n� �p�a�r�e�n�t�h�e�s�e�s� �(�)� �(�6�.�5�.�1�.�1�)�,� �(�w�i�t�h� �t�h�e� �f�i�r�s�t� �p�a�i�r� �o�f� �p�a�r�e�n�t�h�e�s�e�s� �i�n� �a� � � � �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�)�.� � � � ��� GB-055 �� 6.5.1 �� Constraints C�� The Constraints paragraph does not have a paragraph number. W�� Number this paragraph 2, adjusting numbers for paragraphs below accordingly. �� GB-056 �� 6.5.15 �� 3, 6 ¯�� Given the tag compatibility changes, conditional expressions should be allowed between structures or unions that have compatible (not necessarily the same) type.  � � � �I�n� �p�a�r�a�g�r�a�p�h� �3�,� �s�e�c�o�n�d� �b�u�l�l�e�t� �p�o�i�n�t�,� �c�h�a�n�g�e� � t�h�e� �s�a�m�e� �t�o� � � � � c�o�m�p�a�t�i�b�l�e� .� �I�n� �p�a�r�a�g�r�a�p�h� �6�,� �c�h�a�n�g�e� � I�f� �b�o�t�h� �t�h�e� �o�p�e�r�a�n�d�s� �h�a�v�e� �s�t�r�u�c�t�u�r�e� �o�r� � � � �u�n�i�o�n� �t�y�p�e�,� �t�h�e� �r�e�s�u�l�t� �h�a�s� �t�h�a�t� �t�y�p�e�.� �t�o� � I�f� �b�o�t�h� �t�h�e� �o�p�e�r�a�n�d�s� �h�a�v�e� � � � �s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e�,� �t�h�e� �r�e�s�u�l�t� �h�a�s� �t�h�e� �t�y�p�e� �o�f� �o�n�e� �o�p�e�r�a�n�d�.� .� � � � ��� GB-057 �� footnote 122 w� � � � � t�h�a�t� �i�s� �n�o�t� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �i�s� �n�o�t� �n�e�c�e�s�s�a�r�y� �f�o�r� �t�h�i�s� � � � �f�o�o�t�n�o�t�e� �t�o� �a�p�p�l�y�,� �a�n�d� � o�r� �s�h�o�u�l�d� �b�e� � a�n�d� .� � � � �t� � � � �R�e�m�o�v�e� � t�h�a�t� �i�s� �n�o�t� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� .� �C�h�a�n�g�e� � o�r� �d�o�e�s� �n�o�t� � � � �h�a�v�e� �t�y�p�e� �t�o� � a�n�d� �d�o�e�s� �n�o�t� �h�a�v�e� �t�y�p�e� .� � � � ��� US 22 -058 Ô�� Introduces incompatible semantics with C++ regarding behavior of the following examples (rejected in C, accepted in C++): nullptr_t val; (void)(1 ? val : 0); (void)(1 ? nullptr : 0); 8�� These examples should be accepted, as in C++. �� GB-059 �� 6.5.16.1 t� � � � �T�h�e� �e�d�i�t�o�r�i�a�l� �c�h�a�n�g�e� �t�o� �s�a�y� � t�h�e� �o�v�e�r�l�a�p� �s�h�a�l�l� �e�x�a�c�t�l�y� �m�a�t�c�h� � � � �s�e�e�m�s� �l�e�s�s� �c�l�e�a�r� �t�h�a�n� �t�h�e� �p�r�e�v�i�o�u�s� �w�o�r�d�i�n�g�.� � � � �ª� � � � �C�h�a�n�g�e� � t�h�e�n� �t�h�e� �o�v�e�r�l�a�p� �s�h�a�l�l� �e�x�a�c�t�l�y� �m�a�t�c�h� �a�n�d� �t�h�e� �t�w�o� �o�b�j�e�c�t�s� � � � �s�h�a�l�l� �h�a�v�e� �t�o� � t�h�e�n� �t�h�e� �t�w�o� �o�b�j�e�c�t�s� �s�h�a�l�l� �o�c�c�u�p�y� �e�x�a�c�t�l�y� �t�h�e� �s�a�m�e� �s�t�o�r�a�g�e� � � � �a�n�d� �s�h�a�l�l� �h�a�v�e� .� � � � ��� US 25 -060 <� � �� Footnote 126 n� This footnote can't be implemented because it would require the implementation to inspect the value of an object as an assignment constraint at compile time. Consider:   nullptr_t lhs_val;   nullptr_t rhs_val = (nullptr_t)(void *)1; // UB   lhs_val = rhs_val; // Expects a constraint violation here per the footnote but nothing normative l� � � � �I� �t�h�i�n�k� �t�h�e� �f�o�o�t�n�o�t�e� �s�h�o�u�l�d� � � � �r�e�a�d� �t�h�a�t� �i�t� s� �u�n�d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r� �r�a�t�h�e�r� �t�h�a�n� �a� �c�o�n�s�t�r�a�i�n�t� �v�i�o�l�a�t�i�o�n�.� � � � ��� US 24 -061 «�� Introduces a different kind of incompatible semantics with C++ regarding the following example (rejected in C, accepted in C++): nullptr_tval; val = 0; 6�� This example should be accepted, as in C++. �� US 23 -062 Å�� Introduces incompatible semantics with C++ regarding the behavior of the following examples (accepted in C, rejected in C++): nullptr_t val; bool b1 = val; bool b2 = nullptr; 8�� These examples should be rejected, as in C++. �� GB-063 1�� 6.5.2.1, 6.5.3.3, 6.5.6, 7.17.7.5 ö � � � �I�n� �v�a�r�i�o�u�s� �p�l�a�c�e�s�,� �i�n�c�l�u�d�i�n�g� �a�t� �l�e�a�s�t� �6�.�5�.�2�.�1� �p�a�r�a�g�r�a�p�h� �2�,� �6�.�5�.�3�.�3� � � � �p�a�r�a�g�r�a�p�h�s� �1�,� �2� �a�n�d� �3�,� �6�.�5�.�6� �p�a�r�a�g�r�a�p�h�s� �6� �a�n�d� �7�,� �a�n�d� �7�.�1�7�.�7�.�5� �p�a�r�a�g�r�a�p�h� �1�,� � � � �t�h�e� � +� �a�n�d� � -� �s�y�m�b�o�l�s� �a�r�e� �u�s�e�d� �f�o�r� �C� �o�p�e�r�a�t�o�r�s� �b�u�t� �t�h�e� �f�o�n�t� �u�s�e�d� �i�s� �n�o�t� �t�h�e� � � � �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t� �g�e�n�e�r�a�l�l�y� �u�s�e�d� �f�o�r� �C� �c�o�d�e� �i�n� �t�h�e� �s�t�a�n�d�a�r�d�.� �S�o�m�e� �s�u�c�h� �c�h�a�n�g�e�s� � � � �w�e�r�e� �m�a�d�e� �a�s� �p�a�r�t� �o�f� �c�o�m�m�i�t� �2�3�3�3�c�3�3�4�4�c�6�9�5�5�f�9�b�a�d�c�8�a�5�b�4�3�3�c�9�e�0�6�7�d�6�f�d�5�9�6� �i�n� �t�h�e� �C� � � � �s�t�a�n�d�a�r�d� �g�i�t� �r�e�p�o�s�i�t�o�r�y�,� �t�o� �w�o�r�k� �a�r�o�u�n�d� �o�t�h�e�r� �f�o�r�m�a�t�t�i�n�g� �i�s�s�u�e�s� �w�i�t�h� �s�p�a�c�i�n�g� � � � �a�r�o�u�n�d� �t�h�o�s�e� �o�p�e�r�a�t�o�r�s�.� � � � � � � � �F�i�x� �t�h�o�s�e� �s�p�a�c�i�n�g� �i�s�s�u�e�s� �i�n� �s�o�m�e� �o�t�h�e�r� �w�a�y�,� �i�f� �n�o�t� �a�l�r�e�a�d�y� �f�i�x�e�d�,� � � � �a�n�d� �t�h�e�n� �r�e�s�t�o�r�e� �a�l�l� �u�s�e�s� �o�f� � -� �a�n�d� � +� �a�s� �C� �o�p�e�r�a�t�o�r�s� �(�a�s� �o�p�p�o�s�e�d� �t�o� �a�s� � � � �m�a�t�h�e�m�a�t�i�c�a�l� �o�p�e�r�a�t�i�o�n�s�)� �t�o� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� �(�O�t�h�e�r� �c�h�a�n�g�e�s� �f�r�o�m� �t�h�e� � � � �r�e�f�e�r�e�n�c�e�d� �c�o�m�m�i�t� �s�h�o�u�l�d� �n�o�t� �b�e� �r�e�v�e�r�t�e�d�.�)� � � � ��� CA3-064 �� 6.5.2.2 � The removal of function declarations without a prototype without a viable replacement (var-args can have different ABIs on some systems) makes it impossible to declare functions that take a variable number of arguments but are not C var-arg functions. �� Either return the specification for called functions without a prototype or provide an alternate means of declaring such a function. �� GB-065 �� 6.5.2.2, 6.5.4 Ç� A series of changes have had the general effect of eliminating ways in which an rvalue might be considered to have a qualified type (see DR#423 / N1863, DR#481, N2726). However, those changes left two places where a literal reading would give an rvalue an atomic type: calls to functions with an atomic return type, and casts to an atomic type. This seems anomalous and contrary to the general intent, given that such types cannot occur with the result of lvalue-to-rvalue conversion, which returns an unqualified, non-atomic type, and given that it is explicitly said for both atomic and qualified types that those properties are only meaningful for lvalues (6.7.2.4, 6.7.3). 5 � � � �I�n� �6�.�5�.�2�.�2� �p�a�r�a�g�r�a�p�h� �5�,� �c�h�a�n�g�e� � t�h�e� �f�u�n�c�t�i�o�n� �c�a�l�l� �e�x�p�r�e�s�s�i�o�n� �h�a�s� � � � �t�h�e� �s�a�m�e� �t�y�p�e� �a�s� �t�h�a�t� �o�b�j�e�c�t� �t�y�p�e� �t�o� � t�h�e� �t�y�p�e� �o�f� �t�h�e� �f�u�n�c�t�i�o�n� �c�a�l�l� � � � �e�x�p�r�e�s�s�i�o�n� �i�s� �t�h�e� �n�o�n�-�a�t�o�m�i�c� �v�e�r�s�i�o�n� �o�f� �t�h�a�t� �o�b�j�e�c�t� �t�y�p�e� ,� �w�i�t�h� �a� �f�o�o�t�n�o�t�e� � � � �s�a�y�i�n�g� � A� �f�u�n�c�t�i�o�n� �t�y�p�e� �c�a�n�n�o�t� �h�a�v�e� �a� �r�e�t�u�r�n� �t�y�p�e� �t�h�a�t� �i�s� �a� �q�u�a�l�i�f�i�e�d� �t�y�p�e� � � � �(�6�.�7�.�6�.�3�)�.� .� �A�l�t�e�r�n�a�t�i�v�e�l�y�,� �i�f� �i�t� s� �d�e�s�i�r�e�d� �t�o� �a�v�o�i�d� �a�t�o�m�i�c� �r�e�t�u�r�n� �t�y�p�e�s� �o�n� � � � �f�u�n�c�t�i�o�n�s� �a�t� �a�l�l�,� �c�h�a�n�g�e� �6�.�7�.�6�.�3� �p�a�r�a�g�r�a�p�h� �4� �b�y� �c�h�a�n�g�i�n�g� � u�n�q�u�a�l�i�f�i�e�d� �t�o� � � � � u�n�q�u�a�l�i�f�i�e�d�,� �n�o�n�-�a�t�o�m�i�c� .� � � � �I�n� �6�.�5�.�4� �p�a�r�a�g�r�a�p�h� �5�,� �c�h�a�n�g�e� � u�n�q�u�a�l�i�f�i�e�d� �t�o� � u�n�q�u�a�l�i�f�i�e�d�,� � � � �n�o�n�-�a�t�o�m�i�c� .� � � � ��� US 19 -066 �� 6.5.2.5 �� Para 4 "� This specifies whether a compound literal expression is associated with block scope or file scope, but it fails to make clear what happens with a declaration like the following: void func(int array[(register int){12}]); Note that this is a function declaration, not a definition, so there is no block scope associated with it. This matters for conformance to 6.9p2; if the compound literal is declared at file scope, it should be diagnosed (because of the semantic rewriting to a declaration done in 6.5.2.5p4). £�� Please clarify what was intended, but we believe this should be rejected as a constraint violation due to use of the register keyword at file scope. �� US 20 -067 �� Paras 4 & 5 � These do not match what we think the intent is for code like: (static int){12} We think the intent is that this expression generates one notional static variable that is referenced each time the compound literal is evaluated. However, p4 says that it is rewritten to a form: SC typeof(T) ID = { IL }; "where ID is an identifier that is unique for the whole program", while p5 says "A compound literal provides an unnamed object whose value, type, storage duration and other properties are as if given by the definition syntax in the constraints". The effect of this is that each time the compound literal is evaluated, you get a unique ID for the object and thus you get different static variables on each evaluation. ‰�� Clarify whether each evaluation of a compound literal using the static storage class specifier creates a unique object or not. �� US 21 -068 �� 6.5.4 Ì � � � �I�n�t�r�o�d�u�c�e�s� �i�n�c�o�m�p�a�t�i�b�l�e� �s�e�m�a�n�t�i�c�s� �w�i�t�h� �C�+�+� � � � �r�e�g�a�r�d�i�n�g� �t�h�e� �f�o�l�l�o�w�i�n�g� �e�x�a�m�p�l�e� �(�r�e�j�e�c�t�e�d� �i�n� �C�,� �a�c�c�e�p�t�e�d� �i�n� �C�+�+�)�:� � � � � � � � � �(�n�u�l�l�p�t�r�_�t�)�n�u�l�l�p�t�r�;� � � � �b�e�c�a�u�s�e� � � � �n�u�l�l�p�t�r�_�t� �i�s� �n�o�t� �v�o�i�d�,� �b�o�o�l�,� �o�r� �a� �p�o�i�n�t�e�r� �t�y�p�e� �(�s�o� �i�t� �c�a�n�n�o�t� �b�e� �c�a�s�t� �t�o� � � � �i�t�s�e�l�f�)�.� �N�o�t�e�,� �t�h�i�s� �m�i�g�h�t� �b�e� �e�d�i�t�o�r�i�a�l� �b�e�c�a�u�s�e� �t�h�e� �l�a�s�t� �s�e�n�t�e�n�c�e� �o�f� �t�h�e� �p�a�r�a� � � � �s�a�y�s� � N�o� �t�y�p�e� �o�t�h�e�r� �t�h�a�n� �n�u�l�l�p�t�r�_�t� �s�h�a�l�l� �b�e� �c�o�n�v�e�r�t�e�d� �t�o� �n�u�l�l�p�t�r�_�t� �b�u�t� �i�t� s� � � � �u�n�c�l�e�a�r� �b�e�c�a�u�s�e� �o�f� �t�h�e� �u�s�e� �o�f� � o�n�l�y� �i�n� �t�h�e� �p�r�e�c�e�d�i�n�g� �s�e�n�t�e�n�c�e�.� � � � �œ�� Change the penultimate sentence to: The type nullptr_t shall not be converted to any type other than void, bool, nullptr_t, or a pointer type. �� DE-069 "�� 6.5.4, 6.7.8, 6.8. Î�� When size expressions of arrays have to be evaluated is not clear, especially when used with typeof<� �. Examples: (char(*)[f()])0; typeof(f()) x; typedef typeof(f()) t; r � � � �6�.�5�.�4�.� �C�a�s�t� �O�p�e�r�a�t�o�r�s�,� �S�e�m�a�n�t�i�c�s� � � � �S�i�z�e� �e�x�p�r�e�s�s�i�o�n�s� �a�n�d� �t�y�p�e�o�f� �o�p�e�r�a�t�o�r�s� �c�o�n�t�a�i�n�e�d� �i�n� �a� �t�y�p�e� �n�a�m�e� � � � �u�s�e�d� �w�i�t�h� �a� �c�a�s�t� �o�p�e�r�a�t�o�r� �a�r�e� �e�v�a�l�u�a�t�e�d� �w�h�e�n�e�v�e�r� �t�h�e� �c�a�s�t� �e�x�p�r�e�s�s�i�o�n� �i�s� � � � �e�v�a�l�u�a�t�e�d�.� � � � �6�.�7�.�8�.� �T�y�p�e� �D�e�f�i�n�i�t�i�o�n�s� � � � �A�n�y� �a�r�r�a�y� �s�i�z�e� �e�x�p�r�e�s�s�i�o�n�s� �a�s�s�o�c�i�a�t�e�d� �w�i�t�h� �v�a�r�i�a�b�l�e� �l�e�n�g�t�h� �a�r�r�a�y� � � � �d�e�c�l�a�r�a�t�o�r�s� �a�n�d� �t�y�p�e�o�f� �o�p�e�r�a�t�o�r�s� �a�r�e� �e�v�a�l�u�a�t�e�d� �e�a�c�h� �t�i�m�e� �t�h�e� � � � �d�e�c�l�a�r�a�t�i�o�n� �o�f� �t�h�e� �t�y�p�e�d�e�f� �n�a�m�e� �i�s� �r�e�a�c�h�e�d� �i�n� �t�h�e� �o�r�d�e�r� �o�f� �e�x�e�c�u�t�i�o�n� � � � �6�.�8�.� �S�t�a�t�e�m�e�n�t� �a�n�d� �B�l�o�c�k�s� � � � �& �a�n�d� �t�h�e� �v�a�r�i�a�b�l�e� �l�e�n�g�t�h� �a�r�r�a�y� �d�e�c�l�a�r�a�t�o�r�s� �a�n�d� � � � �a�n�y� �s�i�z�e� �e�x�p�r�e�s�s�i�o�n�s� �a�n�d� �t�y�p�e�o�f� �o�p�e�r�a�t�o�r�s� �i�n� �d�e�c�l�a�r�a�t�i�o�n�s� �o�f� �o�r�d�i�n�a�r�y� � � � �i�d�e�n�t�i�f�i�e�r�s� �w�i�t�h� �b�l�o�c�k� �s�c�o�p�e� �a�r�e� �e�v�a�l�u�a�t�e�d�.� � � � ��� GB-070 �� 6.5.8 T� � � � �A� � .� �a�p�p�e�a�r�s� �b�o�t�h� �b�e�f�o�r�e� �a�n�d� �a�f�t�e�r� �t�h�e� �r�e�f�e�r�e�n�c�e� �t�o� �f�o�o�t�n�o�t�e� � � � �n�u�m�b�e�r� �1�1�9�.� � � � �� � � � �R�e�m�o�v�e� �t�h�e� �s�e�c�o�n�d� � .� .� � � � ��� GB-071 �� 6.5.9 �� 2, 6 ü� Almost all places that allow operands of type nullptr_t do so independent of whether the particular operand is a null pointer constant or another expression of that type. However, the rules for equality operators only allow comparison of a pointer that is not a null pointer constant with a nullptr_t value that is a null pointer constant, not with any other nullptr_t value. Since it seems C++ implementations allow such comparisons, disallowing them in C might not be intentional.  � � � �I�f� �i�t� s� �n�o�t� �d�e�s�i�r�e�d� �t�o� �d�i�s�a�l�l�o�w� �s�u�c�h� �c�o�m�p�a�r�i�s�o�n�s� �a�f�t�e�r� �a�l�l�,� �i�n� �t�h�e� � � � �l�a�s�t� �b�u�l�l�e�t� �p�o�i�n�t� �i�n� �p�a�r�a�g�r�a�p�h� �2�,� �c�h�a�n�g�e� � i�s� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �t�o� � i�s� � � � �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �o�r� �h�a�s� �t�y�p�e� �n�u�l�l�p�t�r�_�t� .� �I�n� �p�a�r�a�g�r�a�p�h� �6�,� �c�h�a�n�g�e� � t�h�e� � � � �o�t�h�e�r� �i�s� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t�,� �t�h�e� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �i�s� �c�o�n�v�e�r�t�e�d� �t�o� � � � � t�h�e� �o�t�h�e�r� �i�s� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t� �o�r� �h�a�s� �t�y�p�e� �n�u�l�l�p�t�r�_�t�,� �t�h�e� �n�u�l�l� �p�o�i�n�t�e�r� � � � �c�o�n�s�t�a�n�t� �o�r� �o�p�e�r�a�n�d� �o�f� �t�y�p�e� �n�u�l�l�p�t�r�_�t� �i�s� �c�o�n�v�e�r�t�e�d� .� � � � ��� GB-072 �� 4 X� � � � �T�h�e�r�e� �i�s� �n�o� � .� �a�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �s�e�n�t�e�n�c�e� �t�o� �w�h�i�c�h� �f�o�o�t�n�o�t�e� �1�2�0� � � � �i�s� �a�t�t�a�c�h�e�d�.� � � � �-� � � � �A�d�d� �a� � .� �b�e�f�o�r�e� �t�h�e� �f�o�o�t�n�o�t�e� �n�u�m�b�e�r�.� � � � ��� FR-073 �� 6.5.9 �� p2 and p6 R�� There is a missing case for the comparison of pointers with type nullptr_t �� GB-074 �� 6.6 �� 6 ×� � � � �P�a�r�a�g�r�a�p�h� �1�5� �s�a�y�s� �t�h�a�t� �t�h�e� � .� �m�e�m�b�e�r� �a�c�c�e�s�s� �o�p�e�r�a�t�o�r� �m�a�y� �f�o�r�m� �a� � � � �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� �c�o�n�s�t�a�n�t�,� �b�u�t� �p�a�r�a�g�r�a�p�h� �6� �d�o�e�s�n� t� �m�e�n�t�i�o�n� �t�h�a�t� �p�o�s�s�i�b�i�l�i�t�y� � � � �(�u�n�l�i�k�e� �p�a�r�a�g�r�a�p�h� �7�,� �w�h�i�c�h� �m�e�n�t�i�o�n�s� �i�t� �f�o�r� �n�a�m�e�d� �c�o�n�s�t�a�n�t�s�)�.� � � � �Û� � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �f�i�r�s�t� �s�e�n�t�e�n�c�e� �i�n� �p�a�r�a�g�r�a�p�h� �6�,� �i�n�s�e�r�t� � ,� �a�s� �i�s� �a� � � � �p�o�s�t�f�i�x� �e�x�p�r�e�s�s�i�o�n� �t�h�a�t� �a�p�p�l�i�e�s� �t�h�e� �.� �m�e�m�b�e�r� �a�c�c�e�s�s� �o�p�e�r�a�t�o�r� �t�o� �a� �c�o�m�p�o�u�n�d� � � � �l�i�t�e�r�a�l� �c�o�n�s�t�a�n�t� �o�f� �s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e�,� �e�v�e�n� �r�e�c�u�r�s�i�v�e�l�y� .� � � � ��� US 26 -075 �� Para 17 � N3018 (the constexpr specifier for object definitions) introduces the ability to have constant expressions in more situations, but it does not update the rules for constant expression evaluation of floats. This paragraph is not possible to implement in the case of floating-point types. C++ avoids this with a recommended practice http://eel.is/c++draft/expr.const#13 because they recognized the implementation impossibilities. Consider code like:   constexpr float f = 1.0f;   constexpr float g = 3.0f;   fesetround(FE_TOWARDSZERO);   constexpr float h = f / g; Short of performing a full analysis of the control flow graph for the translation unit, there's no way to meet this semantic requirement. x�� Consider using a recommended practice for the floating-point semantic requirements instead of mandating them. �� GB-076 �� 6.7 # � � � �T�h�e�r�e� �a�r�e� �s�e�v�e�r�a�l� �p�l�a�c�e�s� �i�n� �t�h�e� �s�t�a�n�d�a�r�d� �t�h�a�t� �i�m�p�o�s�e� �r�e�s�t�r�i�c�t�i�o�n�s� � � � �o�n� �w�h�a�t� �c�a�n� �o�c�c�u�r� �w�i�t�h�i�n� �c�e�r�t�a�i�n� �k�i�n�d�s� �o�f� �d�e�c�l�a�r�a�t�i�o�n�s�,� �o�r� �r�e�q�u�i�r�e� �c�e�r�t�a�i�n� � � � �k�i�n�d�s� �o�f� �d�e�c�l�a�r�a�t�i�o�n�s� �t�o� �c�o�n�t�a�i�n� �c�e�r�t�a�i�n� �k�i�n�d�s� �o�f� �c�o�n�s�t�r�u�c�t�s� �o�r� �c�e�r�t�a�i�n� �k�i�n�d�s� � � � �o�f� �c�o�n�s�t�r�u�c�t�s� �t�o� �a�p�p�e�a�r� �i�n� �c�e�r�t�a�i�n� �d�e�c�l�a�r�a�t�i�o�n� �c�o�n�t�e�x�t�s�,� �w�i�t�h�o�u�t� �b�e�i�n�g� �f�u�l�l�y� � � � �c�l�e�a�r� �a�b�o�u�t� �w�h�a�t� �s�y�n�t�a�c�t�i�c� �p�o�s�i�t�i�o�n�s� �(�w�i�t�h�i�n� �t�h�e� �t�o�k�e�n�s� �m�a�t�c�h�i�n�g� �t�h�e� � � � � d�e�c�l�a�r�a�t�i�o�n� �s�y�n�t�a�x� �s�p�e�c�i�f�i�e�r�)� �c�o�u�n�t� �f�o�r� �t�h�e� �p�u�r�p�o�s�e�s� �o�f� �t�h�o�s�e� �r�u�l�e�s�.� �T�o� �t�h�e� � � � �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �i�n�t�e�n�t� �o�f� �t�h�e�s�e� �h�a�v�e� �b�e�e�n� �c�l�a�r�i�f�i�e�d� �i�n� �D�R�s�,� �o�r� �a�r�e� �c�l�a�r�i�f�i�e�d� � � � �i�n� �e�x�a�m�p�l�e�s�,� �i�t� �i�s� �n�o�t� �c�l�e�a�r� �t�h�a�t� �t�h�e� �c�l�a�r�i�f�i�c�a�t�i�o�n� �a�c�t�u�a�l�l�y� �f�o�l�l�o�w�s� �f�r�o�m� �t�h�e� � � � �n�o�r�m�a�t�i�v�e� �t�e�x�t�,� �e�s�p�e�c�i�a�l�l�y� �s�i�n�c�e� �t�h�e� �i�n�t�e�n�t� �s�e�e�m�s� �t�o� �b�e� �d�i�f�f�e�r�e�n�t� �i�n� � � � �d�i�f�f�e�r�e�n�t� �c�a�s�e�s�.� �S�e�e� �a�t�t�a�c�h�e�d� �d�o�c�u�m�e�n�t� �c�2�x�-�d�e�c�l�a�r�a�t�i�o�n�-�c�o�n�t�e�x�t�.�p�d�f� �f�o�r� �m�o�r�e� � � � �d�e�t�a�i�l�s� �o�f� �t�h�i�s� �i�s�s�u�e�.� � � � ��� GB-077 k � � � �T�h�e� �b�u�l�l�e�t� �p�o�i�n�t� �o�n� �d�e�f�i�n�i�t�i�o�n�s�,� � a�n� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�,� �i�s� �t�h�e� � � � �o�n�l�y� �d�e�c�l�a�r�a�t�i�o�n� �o�f� �t�h�e� �i�d�e�n�t�i�f�i�e�r� �(�p�a�r�e�n�t�h�e�s�e�s� �a�r�o�u�n�d� � o�n�l�y� �r�e�m�o�v�e�d� �s�i�n�c�e� � � � �t�h�e� �p�r�e�v�i�o�u�s� �r�e�v�i�s�i�o�n� �o�f� �t�h�e� �C� �s�t�a�n�d�a�r�d�)� �d�o�e�s�n� t� �c�o�v�e�r� �t�h�e� �c�a�s�e� �o�f� �r�e�d�e�c�l�a�r�a�t�i�o�n� � � � �o�f� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�s�,� �w�h�i�c�h� �i�s� �n�o�w� �p�e�r�m�i�t�t�e�d�;� �o�n�e� �d�e�c�l�a�r�a�t�i�o�n� �s�h�o�u�l�d� � � � �s�t�i�l�l� �b�e� �c�o�n�s�i�d�e�r�e�d� �a� �d�e�f�i�n�i�t�i�o�n� �i�n� �t�h�a�t� �c�a�s�e�.� � � � �q� � � � �C�h�a�n�g�e� � o�n�l�y� �t�o� � f�i�r�s�t� �(�o�r� �o�n�l�y�)� �f�o�r� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�s� � � � �(�m�a�t�c�h�i�n�g� �t�h�e� �w�o�r�d�i�n�g� �f�o�r� �t�y�p�e�d�e�f� �n�a�m�e�s�)�.� � � � ��� GB-078 �� 6.7.1 \� � � � �T�h�e� �e�x�a�m�p�l�e� �d�o�e�s�n� t� �m�a�k�e� �c�l�e�a�r� �w�h�y� �t�h�e� �i�n�i�t�i�a�l�i�z�<� �er for unstring might be invalid.  � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �s�e�n�t�e�n�c�e� �a�b�o�u�t� �u�n�s�t�r�i�n�g�,� �a�d�d� � ,� �b�e�c�a�u�s�e� �i�f� �c�h�a�r� � � � �h�a�s� �e�i�g�h�t� �b�i�t�s� �a�n�d� �t�h�e� �s�a�m�e� �r�a�n�g�e� �o�f� �v�a�l�u�e�s� �a�s� �s�i�g�n�e�d� �c�h�a�r�,� �t�h�e� �i�n�i�t�i�a�l�i�z�e�r� � � � �&�q�u�o�t�;�\�x�F�F�&�q�u�o�t�;� �h�a�s� �t�y�p�e� � a�r�r�a�y� �o�f� �c�h�a�r� ,� �a�n�d� �i�t�s� �f�i�r�s�t� �e�l�e�m�e�n�t� �h�a�s� �v�a�l�u�e� � � � �-�1�,� �w�h�i�c�h� �i�s� �n�o�t� �r�e�p�r�e�s�e�n�t�a�b�l�e� �i�n� �u�n�s�i�g�n�e�d� �c�h�a�r� .� � � � ��� GB-079 …� The reference to implicit initializer values in paragraph 5 runs into the issue that the definition of default initialization in 6.7.10 only says what the initializer value is, not what kind of constant expression it is. For example, default initialization for a pointer type is said to be with a null pointer; it is not specified whether it is a null pointer constant. N� If the removal of the reference to implicit initializers from the previous comment is accepted, this issue goes away. Otherwise, 6.7.10 would need amending to say what kind of constant default initializers are. In any case, add a new Example: constexpr int *p = {}; // Default initialization with a null pointer �� GB-080 Æ� Suppose a structure or union object is, as the whole or part of a constexpr initializer, initialized with a single expression (a named or compound literal constant) of that type (see comment below on 6.7.10 regarding the details of when exactly this is permitted). How exactly should the constraints that constexpr pointer initializers be null pointer constant be applied in this case, if the structure or union contains such a member (and, in the case of the union, the pointer is the active member or part of the active member)? Should it be a constraint violation because a hypothetical expression accessing the pointer member of the constant structure or union would not itself be a null pointer constant? Or should it be permitted because no such hypothetical expression is actually formed in the initialization process and the initializer actually written for the structure or union is a structure or union constant? Á � � � �S�u�p�p�o�s�i�n�g� �s�u�c�h� �a�n� �i�n�i�t�i�a�l�i�z�a�t�i�o�n� �s�h�o�u�l�d� �b�e� �p�e�r�m�i�t�t�e�d�,� �r�e�p�l�a�c�e� � t�h�e� � � � �i�m�p�l�i�c�i�t� �o�r� �e�x�p�l�i�c�i�t� �i�n�i�t�i�a�l�i�z�e�r� �v�a�l�u�e� �b�y� � a�n�y� �e�x�p�l�i�c�i�t� �i�n�i�t�i�a�l�i�z�e�r� �v�a�l�u�e� .� � � � �A�d�d� �a� �n�e�w� �E�x�a�m�p�l�e�:� � � � �s�t�r�u�c�t� �s� �{� �v�o�i�d� �*�p�;� �}�;� � � � �c�o�n�s�t�e�x�p�r� �s�t�r�u�c�t� �s� �A� �=� �{� �n�u�l�l�p�t�r� �}�;� � � � �c�o�n�s�t�e�x�p�r� �s�t�r�u�c�t� �s� �B� �=� �A�;� � � � �/�*� �A�l�t�h�o�u�g�h� �t�h�e� �e�x�p�r�e�s�s�i�o�n� �A�.�p� �i�s� �n�o�t� �a� �n�u�l�l� �p�o�i�n�t�e�r� �c�o�n�s�t�a�n�t�,� � � � �o�n�l�y� �a� �n�u�l�l� �p�o�i�n�t�e�r�,� �t�h�e� �o�n�l�y� �e�x�p�l�i�c�i�t� �i�n�i�t�i�a�l�i�z�e�r� �i�n� �t�h�e� �i�n�i�t�i�a�l�i�z�a�t�i�o�n� �o�f� �B� � � � �i�s� �A�,� �n�o�t� �A�.�p�,� �s�o� �n�o� �c�o�n�s�t�r�a�i�n�t� �i�s� �v�i�o�l�a�t�e�d� �b�y� �t�h�a�t� �i�n�i�t�i�a�l�i�z�a�t�i�o�n�.� �*�/� � � � �I�f� �(�s�e�e� �c�o�m�m�e�n�t� �b�e�l�o�w� �o�n� �6�.�7�.�1�0�)� �s�u�c�h� �i�n�i�t�i�a�l�i�z�a�t�i�o�n�s� �a�r�e� �o�n�l�y� � � � �a�c�c�e�p�t�e�d� �w�i�t�h� �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �(�i�f� �t�h�e� �p�r�o�p�o�s�e�d� �c�h�a�n�g�e� �f�o�r� �t�h�a�t� � � � �c�o�m�m�e�n�t� �i�s� �r�e�j�e�c�t�e�d�)�,� �t�h�i�s� �e�x�a�m�p�l�e� �w�i�l�l� �n�e�e�d� �a�d�j�u�s�t�i�n�g� �a�c�c�o�r�d�i�n�g�l�y�.� � � � ��� GB-081 ¡ � � � �T�h�e� �r�e�q�u�i�r�e�m�e�n�t� �o�n� �c�o�n�s�t�e�x�p�r� �i�n�i�t�i�a�l�i�z�e�r�s� �t�h�a�t� � T�h�e� �v�a�l�u�e� �o�f� �a�n�y� � � � �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n�s� �o�r� �o�f� �a�n�y� �c�h�a�r�a�c�t�e�r� �i�n� �a� �s�t�r�i�n�g� �l�i�t�e�r�a�l� �o�f� �t�h�e� � � � �i�n�i�t�i�a�l�i�z�e�r� �s�h�a�l�l� �b�e� �e�x�a�c�t�l�y� �r�e�p�r�e�s�e�n�t�a�b�l�e� �i�n� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �t�a�r�g�e�t� �t�y�p�e�;� � � � �n�o� �c�h�a�n�g�e� �o�f� �v�a�l�u�e� �s�h�a�l�l� �b�e� �a�p�p�l�i�e�d� �i�s� �u�n�c�l�e�a�r� �i�n� �m�a�n�y� �c�a�s�e�s�,� �e�s�p�e�c�i�a�l�l�y� � � � �c�o�n�c�e�r�n�i�n�g� �f�l�o�a�t�i�n�g� �p�o�i�n�t�,� �r�e�g�a�r�d�i�n�g� �w�h�a�t� �e�x�a�c�t�l�y� �c�o�u�n�t�s� �a�s� �a� �c�h�a�n�g�e� �o�f� �v�a�l�u�e� � � � �w�h�e�n� �t�h�e� �t�y�p�e� �c�h�a�n�g�e�s�;� �t�h�e� �f�o�o�t�n�o�t�e� �a�n�d� �e�x�a�m�p�l�e�s� �a�r�e� �o�n�l�y� �o�f� �l�i�m�i�t�e�d� �v�a�l�u�e� � � � �f�o�r� �c�l�a�r�i�f�y�i�n�g� �t�h�i�s�,� �a�n�d� �t�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �d�o� �c�l�a�r�i�f�y� �i�t�,� �i�t� �i�s� �n�o�t� �c�l�e�a�r� � � � �t�h�a�t� �t�h�e� �r�e�s�u�l�t�s� �f�o�l�l�o�w� �f�r�o�m� �t�h�e� �n�o�r�m�a�t�i�v�e� �t�e�x�t�.� �S�e�e� �a�t�t�a�c�h�e�d� �d�o�c�u�m�e�n�t� � � � �c�2�x�-�c�o�n�s�t�e�x�p�r�-�i�n�i�t�.�p�d�f� �f�o�r� �m�o�r�e� �d�e�t�a�i�l�s� �o�f� �t�h�i�s� �i�s�s�u�e�.� � � � ��� GB-082 �� 6.7.10 �� 11, 12, 20, 22 …� � � � �T�h�e� �c�h�a�n�g�e�s� �t�o� �d�e�f�i�n�e� � d�e�f�a�u�l�t� �i�n�i�t�i�a�l�i�z�a�t�i�o�n� �l�e�f�t� �a�w�k�w�a�r�d� � � � �w�o�r�d�i�n�g� �a�n�d� �d�u�p�l�i�c�a�t�i�o�n� �a�n�d� �w�e�r�e� �n�o�t� �c�o�n�s�i�s�t�e�n�t�l�y� �i�m�p�l�e�m�e�n�t�e�d�.� � � � �' � � � �C�h�a�n�g�e� �p�a�r�a�g�r�a�p�h� �1�1�,� �b�e�f�o�r�e� �t�h�e� �b�u�l�l�e�t� �p�o�i�n�t�s�,� �t�o� � i�f� �a�n� �o�b�j�e�c�t� � � � �t�h�a�t� �h�a�s� �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �i�s� �n�o�t� �i�n�i�t�i�a�l�i�z�e�d� �e�x�p�l�i�c�i�t�l�y�,� �i�t�s� � � � �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �i�s� �i�n�d�e�t�e�r�m�i�n�a�t�e�.� �I�f� �a�n� �o�b�j�e�c�t� �t�h�a�t� �h�a�s� �s�t�a�t�i�c� �o�r� �t�h�r�e�a�d� � � � �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �i�s� �n�o�t� �i�n�i�t�i�a�l�i�z�e�d� �e�x�p�l�i�c�i�t�l�y�,� �o�r� �a�n�y� �o�b�j�e�c�t� �i�s� �i�n�i�t�i�a�l�i�z�e�d� � � � �w�i�t�h� �a�n� �e�m�p�t�y� �i�n�i�t�i�a�l�i�z�e�r�,� �t�h�e�n� �i�t� �i�s� �s�u�b�j�e�c�t� �t�o� �d�e�f�a�u�l�t� �i�n�i�t�i�a�l�i�z�a�t�i�o�n�,� � � � �w�h�i�c�h� �i�n�i�t�i�a�l�i�z�e�s� �a�n� �o�b�j�e�c�t� �a�s� �f�o�l�l�o�w�s�:� .� � � � �C�h�a�n�g�e� � ;� �t�o� � .� �a�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �l�a�s�t� �b�u�l�l�e�t� �p�o�i�n�t� �i�n� �p�a�r�a�g�r�a�p�h� � � � �1�1�.� � � � �I�n� �p�a�r�a�g�r�a�p�h� �1�2�,� �c�h�a�n�g�e� � I�f� �t�h�e� �i�n�i�t�i�a�l�i�z�e�r� �i�s� �t�h�e� �e�m�p�t�y� � � � �i�n�i�t�i�a�l�i�z�e�r�,� �t�h�e� �i�n�i�t�i�a�l� �v�a�l�u�e� �i�s� �t�h�e� �s�a�m�e� �a�s� �t�h�e� �i�n�i�t�i�a�l�i�z�a�t�i�o�n� �o�f� �a� �s�t�a�t�i�c� � � � �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �o�b�j�e�c�t�.� �O�t�h�e�r�w�i�s�e� �t�o� � I�f� �t�h�e� �i�n�i�t�i�a�l�i�z�e�r� �i�s� �n�o�t� �t�h�e� �e�m�p�t�y� � � � �i�n�i�t�i�a�l�i�z�e�r� .� � � � �I�n� �p�a�r�a�g�r�a�p�h� �2�0�,� �c�h�a�n�g�e� � s�h�a�l�l� �b�e� �i�n�i�t�i�a�l�i�z�e�d� �i�m�p�l�i�c�i�t�l�y� �t�h�e� �s�a�m�e� � � � �a�s� �o�b�j�e�c�t�s� �t�h�a�t� �h�a�v�e� �s�t�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �t�o� � a�r�e� �s�u�b�j�e�c�t� �t�o� �d�e�f�a�u�l�t� � � � �i�n�i�t�i�a�l�i�z�a�t�i�o�n� .� � � � �I�n� �p�a�r�a�g�r�a�p�h� �2�2�,� �c�h�a�n�g�e� � s�h�a�l�l� �b�e� �i�n�i�t�i�a�l�i�z�e�d� �i�m�p�l�i�c�i�t�l�y� �t�h�e� �s�a�m�e� � � � �a�s� �o�b�j�e�c�t�s� �t�h�a�t� �h�a�v�e� �s�t�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �t�o� � i�s� �s�u�b�j�e�c�t� �t�o� �d�e�f�a�u�l�t� � � � �i�n�i�t�i�a�l�i�z�a�t�i�o�n� .� � � � ��� GB-083 �� 14, 17 Í � � � �W�h�e�n� �s�h�o�u�l�d� �i�t� �b�e� �p�o�s�s�i�b�l�e� �t�o� �i�n�i�t�i�a�l�i�z�e� �a�n� �o�b�j�e�c�t� �o�f� �s�t�r�u�c�t�u�r�e� �o�r� � � � �u�n�i�o�n� �t�y�p�e� �w�i�t�h� �a� �n�a�m�e�d� �c�o�n�s�t�a�n�t� �o�r� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� �c�o�n�s�t�a�n�t� �o�f� �s�u�c�h� �t�y�p�e�?� � � � �T�h�e� �c�u�r�r�e�n�t� �w�o�r�d�i�n�g� �s�e�e�m�s� �t�o� �i�n�d�i�c�a�t�e� �t�h�a�t� �i�t� �i�s� �o�n�l�y� �p�o�s�s�i�b�l�e� �a�t� �a�u�t�o�m�a�t�i�c� � � � �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� � �b�u�t� �w�h�e�n� �s�u�c�h� �i�n�i�t�i�a�l�i�z�a�t�i�o�n� �o�c�c�u�r�s�,� �i�t�<� � is permitted even when the object being initialized is constexpr. Since the normal rule is that the requirements on constexpr initializers are stricter than those on static storage duration initializers, it is an anomaly to allow named and compound literal constant of structure or union type in constexpr initializers of automatic storage duration but not in any initializers of static storage duration. Ó � � � �A�s�s�u�m�i�n�g� �s�u�c�h� �i�n�i�t�i�a�l�i�z�e�r�s� �a�r�e� �i�n�t�e�n�d�e�d� �t�o� �b�e� �a�l�l�o�w�e�d� �a�t� �s�t�a�t�i�c� � � � �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n�,� �i�n� �p�a�r�a�g�r�a�p�h� �1�4�,� �r�e�m�o�v�e� � t�h�a�t� �h�a�s� �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� � � � �d�u�r�a�t�i�o�n� .� �A�d�d� �a� �f�o�o�t�n�o�t�e� �t�o� �t�h�e� �e�n�d� �o�f� �t�h�e� �p�a�r�a�g�r�a�p�h�:� � I�f� �t�h�e� �o�b�j�e�c�t� �b�e�i�n�g� � � � �i�n�i�t�i�a�l�i�z�e�d� �d�o�e�s� �n�o�t� �h�a�v�e� �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n�,� �t�h�i�s� �c�a�s�e� �v�i�o�l�a�t�e�s� �a� � � � �c�o�n�s�t�r�a�i�n�t� �u�n�l�e�s�s� �t�h�e� �e�x�p�r�e�s�s�i�o�n� �i�s� �a� �n�a�m�e�d� �c�o�n�s�t�a�n�t� �o�r� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� � � � �c�o�n�s�t�a�n�t� �(�6�.�6�)�.� .� �A�l�s�o� �r�e�m�o�v�e� � t�h�a�t� �h�a�s� �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �i�n� �J�.�2� � � � �i�t�e�m� �8�1�.� � � � ��� CA1-084 �� 6.7.12 Y�� Standard attribute syntax errors should be diagnosed as was the intent in C++. ñ�� Add a paragraph after 2 in the constraints section to say that an attribute must be added to something that it can apply to, and that the syntax rules for any argument to the attribute must be as specified for the attribute. �� US 35 -085 &�� 6.7.12 and 6.7.12.1 �� Para 2, Para 3 � At the C++23 NB comment resolution meeting in Nov 2022, WG21 clarified their model of what it means to ignore an attribute in a way that is incompatible with how WG14 has it specified for C23. Specifically, ignored attributes are not actually ignored in the usual sense of the English phrase, but are instead required to be syntax and semantically checked if the attribute is a standard attribute. e.g., if an application ignores an attribute, it is still required to diagnose incorrect appertainment, presence or absence of an argument list, syntax or semantic errors in the argument list, etc. This was done in the name of improved portability. Note, there is at least one C++ implementation that has said they will not be implementing that change. ç � � � �I�f� �b�e�i�n�g� �a�b�l�e� �t�o� �s�y�n�t�a�c�t�i�c�a�l�l�y� �i�g�n�o�r�e� � � � �a�t�t�r�i�b�u�t�e�s� �i�s� �n�o�t� �i�m�p�o�r�t�a�n�t� �t�o� �W�G�1�4�,� �w�e� �c�a�n� �c�h�a�n�g�e� �o�u�r� �m�o�d�e�l� �t�o� �m�a�t�c�h� �t�h�e� �n�e�w� � � � �C�+�+� �m�o�d�e�l�.� �I�f� �t�h�i�s� �p�r�o�p�e�r�t�y� �i�s� �c�r�i�t�i�c�a�l� �t�o� �W�G�1�4�,� �w�e� �c�a�n� �d�i�v�e�r�g�e� �f�r�o�m� �C�+�+� �w�i�t�h� � � � �o�u�r� �m�o�d�e�l� � �h�o�w�e�v�e�r�,� �t�h�a�t� �i�s� �u�s�e�r�-�h�o�s�t�i�l�e� �g�i�v�e�n� �h�o�w� �f�r�e�q�u�e�n�t�l�y� �a�t�t�r�i�b�u�t�e�s� � � � �s�h�o�w� �u�p� �i�n� �h�e�a�d�e�r� �f�i�l�e�s� �s�h�a�r�e�d� �b�e�t�w�e�e�n� �C� �a�n�d� �C�+�+�.� �A� �t�h�i�r�d� �o�p�t�i�o�n� �i�s� �f�o�r� � � � �i�m�p�a�c�t�e�d� �c�o�m�p�a�n�i�e�s� �o�r� �n�a�t�i�o�n�a�l� �b�o�d�i�e�s� �t�o� �v�o�t�e� �N�O� �o�n� �t�h�e� �I�S�O�/�I�E�C� �1�4�8�8�2�:�2�0�2�3� � � � �D�I�S� �b�a�l�l�o�t� �t�o� �r�e�o�p�e�n� �t�h�e� �d�i�s�c�u�s�s�i�o�n� �w�i�t�h� �W�G�2�1�.� � � � ��� GB-086 `�� 6.7.12, 6.7.12.3, 6.7.12.4, 7.17.2.1, 7.17.3, 7.28.3.3, 7.28.3.5, K.3.9.3.1.1  � � � �T�h�e� �C� �s�t�a�n�d�a�r�d� �n�o�r�m�a�l�l�y� �u�s�e�s� �t�h�e� �w�o�r�d� � o�b�j�e�c�t� �i�n�s�t�e�a�d� �o�f� � � � � v�a�r�i�a�b�l�e� �a�s� �a� �n�o�u�n� �i�n� �n�o�r�m�a�t�i�v�e� �t�e�x�t�,� �w�i�t�h� �n�o�u�n� �u�s�e�s� �o�f� � v�a�r�i�a�b�l�e� �b�e�i�n�g� � � � �l�i�m�i�t�e�d� �t�o� �t�h�e� �p�h�r�a�s�e�s� � s�y�s�t�e�m� �v�a�r�i�a�b�l�e� �a�n�d� � c�o�n�d�i�t�i�o�n� �v�a�r�i�a�b�l�e� .� �H�o�w�e�v�e�r�,� � � � �s�o�m�e� �n�o�r�m�a�t�i�v�e� �w�o�r�d�i�n�g�,� �m�a�i�n�l�y� �f�o�r� �a�t�t�r�i�b�u�t�e�s�,� �a�t�o�m�i�c�s� �a�n�d� �t�h�r�e�a�d�s�,� �u�s�e�s� � � � � v�a�r�i�a�b�l�e� �a�s� �a� �n�o�u�n� �w�h�e�n� � o�b�j�e�c�t� �w�o�u�l�d� �b�e� �m�o�r�e� �c�o�n�s�i�s�t�e�n�t� �w�i�t�h� �t�h�e� �u�s�u�a�l� � � � �w�o�r�d�i�n�g� �p�r�a�c�t�i�c�e�.� � � � �X � � � �C�h�a�n�g�e� � v�a�r�i�a�b�l�e� �t�o� � o�b�j�e�c�t� �w�h�e�n� �u�s�e�d� �a�s� �a� �n�o�u�n� �i�n� �n�o�r�m�a�t�i�v�e� � � � �t�e�x�t�,� �o�u�t�s�i�d�e� �o�f� �t�h�e� �p�h�r�a�s�e�s� �r�e�f�e�r�r�e�d� �t�o�.� �T�h�o�s�e� �p�h�r�a�s�e�s� �u�s�i�n�g� �t�h�e� �w�o�r�d� �s�h�o�u�l�d� � � � �n�o�t� �b�e� �c�h�a�n�g�e�d�,� �u�s�e� �a�s� �a�n� �a�d�j�e�c�t�i�v�e� �s�h�o�u�l�d� �n�o�t� �b�e� �c�h�a�n�g�e�d�,� �a�n�d� �n�o�n�-�n�o�r�m�a�t�i�v�e� � � � �u�s�e�s� �s�h�o�u�l�d� �b�e� �c�o�n�s�i�d�e�r�e�d� �i�n�d�i�v�i�d�u�a�l�l�y� �a�s� �t�h�e� �i�n�f�o�r�m�a�l� �t�e�r�m� � v�a�r�i�a�b�l�e� �m�a�y� � � � �s�o�m�e�t�i�m�e�s� �b�e� �a�p�p�r�o�p�r�i�a�t�e� �t�h�e�r�e�.� � � � ��� US 36 -087 �� 6.7.12.* Í�� There is an ambiguity between 6.10.1p9 (__has_c_attribute returns 0 for an ignored attribute) and 6.7.12.* (each attribute specifies that __has_c_attribute *shall* return a nonzero value). Ó�� The attributes in 6.7.12.* should be amended to say "...when given <attribute name> as the pp-tokens operand<ins> if the implementation supports the attribute</ins>." �� GB-088 "�� 6.7.12.2, 6.7.12.6 Ù � � � �T�h�e� �w�o�r�d�i�n�g� � s�h�a�l�l� �b�e� �a�p�p�l�i�e�d� �t�o� �t�h�e� �i�d�e�n�t�i�f�i�e�r� �i�n� �a� �f�u�n�c�t�i�o�n� � � � �d�e�c�l�a�r�a�t�i�o�n� ,� �t�a�k�e�n� �l�i�t�e�r�a�l�l�y�,� �w�o�u�l�d� �s�e�e�m� �t�o� �r�e�q�u�i�r�e� �t�h�e� �s�y�n�t�a�x� � i�d�e�n�t�i�f�i�e�r� � � � �a�t�t�r�i�b�u�t�e�-�s�p�e�c�i�f�i�e�r�-�s�e�q�u�e�n�c�e�[�o�p�t�]� �t�o� �b�e� �u�s�e�d�,� �r�a�t�h�e�r� �t�h�a�n� �o�t�h�e�r� �s�y�n�t�a�x� �t�o� � � � �a�p�p�l�y� �a�n� �a�t�t�r�i�b�u�t�e� �t�o� �a� �f�u�n�c�t�i�o�n�.� �S�i�n�c�e� �t�h�e� �e�x�a�m�p�l�e�s� �g�i�v�e�n� �s�h�o�w� �t�h�e� �a�t�t�r�i�b�u�t�e� � � � �a�t� �t�h�e� �s�t�a�r�t� �o�f� �t�h�e� �d�e�c�l�a�r�a�t�i�o�n� �i�n�s�t�e�a�d�,� �t�h�a�t� �c�l�e�a�r�l�y� �i�s�n� t� �i�n�t�e�n�d�e�d�.� �O�t�h�e�r� � � � �a�t�t�r�i�b�u�t�e�s� �r�e�f�e�r� �t�o� �a�p�p�l�y�i�n�g� �a�n� �a�t�t�r�i�b�u�t�e� �t�o� �a� �f�u�n�c�t�i�o�n�,� �s�o� �a�v�o�i�d�i�n�g� �t�h�i�s� � � � �i�s�s�u�e�.� � � � �š� � � � �I�n� �6�.�7�.�1�2�.�2� �(�n�o�d�i�s�c�a�r�d�)� �p�a�r�a�g�r�a�p�h� �1�,� �a�n�d� �6�.�7�.�1�2�.�6� �(�n�o�r�e�t�u�r�n�)� � � � �p�a�r�a�g�r�a�p�h� �2�,� �c�h�a�n�g�e� � t�h�e� �i�d�e�n�t�i�f�i�e�r� �i�n� �a� �f�u�n�c�t�i�o�n� �d�e�c�l�a�r�a�t�i�o�n� �t�o� � a� � � � �f�u�n�c�t�i�o�n� .� � � � ��� GB-089 �� 6.7.12.5 ™ � � � �I�t� �i�s� �u�n�c�l�e�a�r� �w�h�e�t�h�e�r� � n�e�x�t� �b�l�o�c�k� �i�t�e�m� �t�h�a�t� �w�o�u�l�d� �b�e� �e�n�c�o�u�n�t�e�r�e�d� � � � �r�e�f�e�r�s� �t�o� �n�e�x�t� �l�e�x�i�c�a�l�l�y�,� �o�r� �i�n� �e�x�e�c�u�t�i�o�n� �o�r�d�e�r� �(�t�h�e� �l�a�t�t�e�r� �b�e�i�n�g� �p�r�o�b�l�e�m�a�t�i�c� � � � �f�o�r� �a� �C�o�n�s�t�r�a�i�n�t�,� �s�i�n�c�e� �t�h�o�s�e� �a�r�e� �t�r�a�n�s�l�a�t�i�o�n�-�t�i�m�e� �p�r�o�p�e�r�t�i�e�s�)�.� �A� �s�i�m�i�l�a�r� � � � �i�s�s�u�e� �w�a�s� �p�r�e�v�i�o�u�s�l�y� �r�a�i�s�e�d� �f�o�r� �C�+�+� �-� �s�e�e� �h�t�t�p�s�:�/�/�w�w�w�.�o�p�e�n�-�s�t�d�.�o�r�g�/�j�t�c�1�/�s�c�2�2�/�w�g�2�1�/�d�o�c�s�/�c�w�g�_�d�e�f�e�c�t�s�.�h�t�m�l�#�2�4�0�6� � � � � �b�u�t� �i�t� �a�p�p�e�a�r�s� �t�h�e� �r�e�s�o�l�u�t�i�o�n� �f�o�r� �C�+�+� �w�a�s� �n�o�t� �a�p�p�l�i�e�d� �f�o�r� �C�.� � � � �C�� Add the same wording and changes to the example as for C++. �� GB-090 �� 6.7.12.7 �� 11 .� � � � � e�x�e�c�u�t�i�o�n� �w�i�d�e� �s�h�o�u�l�d� �h�a�v�e� �a� �h�y�p�h�e�n�.� � � � �4� � � � �C�h�a�n�g�e� � e�x�e�c�u�t�i�o�n� �w�i�d�e� �t�o� � e�x�e�c�u�t�i�o�n�-�w�i�d�e� .� � � �<� � �� GB-091 � � � � � r�e�f�e�r�r�e�d� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c� �h�e�r�e�;� �i�t� �c�o�u�l�d� �b�e� �m�a�d�e� � r�e�f�e�r�e�n�c�e�d� ,� � � � �b�u�t� �t�h�e� �w�o�r�d� �d�o�e�s�n� t� �a�c�t�u�a�l�l�y� �s�e�e�m� �n�e�c�e�s�s�a�r�y� �a�t� �a�l�l�.� � � � �� � � � �R�e�m�o�v�e� � r�e�f�e�r�r�e�d� .� � � � ��� GB-092 6� � � � � a� �s�u�c�h� �a�n�n�o�t�a�t�e�d� �f�u�n�c�t�i�o�n� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c�.� � � � �@� � � � �C�h�a�n�g�e� � a� �s�u�c�h� �a�n�n�o�t�a�t�e�d� �f�u�n�c�t�i�o�n� �t�o� � s�u�c�h� �a� �f�u�n�c�t�i�o�n� .� � � � ��� GB-093 J� � � � � a�c�c�o�u�n�t� �a�s� �u�s�e�d� �h�e�r�e� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c�,� �a�s� �d�o�e�s� � a�l�l�o�w� �t�o� �q�u�e�r�y� � � � �† � � � �C�h�a�n�g�e� � a�c�c�o�u�n�t� �a�s� �o�b�j�e�c�t�s� �t�o� � a�r�e� �c�o�n�s�i�d�e�r�e�d� �a�s� �o�b�j�e�c�t�s�,� �f�o�r� �t�h�e� � � � �p�u�r�p�o�s�e�s� �o�f� �t�h�e�s�e� �a�t�t�r�i�b�u�t�e�s� .� �C�h�a�n�g�e� � a�l�l�o�w� �t�o� �q�u�e�r�y� �t�o� � a�c�c�e�s�s� .� �C�h�a�n�g�e� � � � � a�c�c�o�u�n�t� �a�s� �l�v�a�l�u�e� �c�o�n�v�e�r�s�i�o�n�s� �t�o� � a�r�e� �c�o�n�s�i�d�e�r�e�d� �a�s� �l�v�a�l�u�e� �c�o�n�v�e�r�s�i�o�n�s�,� �f�o�r� � � � �t�h�e� �p�u�r�p�o�s�e�s� �o�f� �t�h�e�s�e� �a�t�t�r�i�b�u�t�e�s� .� �C�h�a�n�g�e� � a�c�c�o�u�n�t� �a�s� �s�t�o�r�e� �o�p�e�r�a�t�i�o�n�s� �t�o� � � � � a�r�e� �c�o�n�s�i�d�e�r�e�d� �a�s� �s�t�o�r�e� �o�p�e�r�a�t�i�o�n�s�,� �f�o�r� �t�h�e� �p�u�r�p�o�s�e�s� �o�f� �t�h�e�s�e� �a�t�t�r�i�b�u�t�e�s� .� � � � ��� GB-094 �� footnote 187 $� � � � � i�f� �h�e�r�e� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c�.� � � � �c� � � � �C�h�a�n�g�e� � i�n�d�e�p�e�n�d�e�n�t�l�y� �i�f� �t�o� � i�n�d�e�p�e�n�d�e�n�t�l�y� �o�f� �w�h�e�t�h�e�r� .� �C�h�a�n�g�e� � � � � o�r� �i�f� �t�o� � o�r� �w�h�e�t�h�e�r� .� � � � ��� GB-095 �� 6.7.12.7.2 4� � � � � t�h�e� �s�u�c�h� �t�y�p�e�d� �f�u�n�c�t�i�o�n� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c�.� � � � �>� � � � �C�h�a�n�g�e� � t�h�e� �s�u�c�h� �t�y�p�e�d� �f�u�n�c�t�i�o�n� �t�o� � s�u�c�h� �a� �f�u�n�c�t�i�o�n� .� � � � ��� GB-096 (� � � � � p�r�o�p�e�r�t�y� �i�f� �s�e�e�m�s� �u�n�i�d�i�o�m�a�t�i�c�.� � � � �6� � � � �C�h�a�n�g�e� � p�r�o�p�e�r�t�y� �i�f� �t�o� � p�r�o�p�e�r�t�y� �o�f� �w�h�e�t�h�e�r� .� � � � ��� GB-097 �� 6.7.2.1 3� � � � � s�i�z�e�o�f�(�o�u�b�l�e�)� �s�h�o�u�l�d� �b�e� � s�i�z�e�o�f�(�d�o�u�b�l�e�)� .� � � � �3� � � � �C�h�a�n�g�e� � s�i�z�e�o�f�(�o�u�b�l�e�)� �t�o� � s�i�z�e�o�f�(�d�o�u�b�l�e�)� .� � � � ��� GB-098 �� 6.7.2.2 »�� Because of the special semantics of conversions to bool, it seems a bad idea to allow bool as the type with which an enumeration without fixed underlying type is compatible. ¦� � � � �I�n� �t�h�e� �w�o�r�d�i�n�g� �a�s� �m�o�d�i�f�i�e�d� �b�y� �t�h�e� �p�r�e�v�i�o�u�s� �c�o�m�m�e�n�t�,� �c�h�a�n�g�e� � t�h�a�t� � � � �i�s� �n�o�t� �a� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e� �t�o� � t�h�a�t� �i�s� �n�o�t� �b�o�o�l� �o�r� �a� �b�i�t�-�p�r�e�c�i�s�e� � � � �i�n�t�e�g�e�r� �t�y�p�e� .� � � � ��� GB-099 v � � � �T�h�e� �f�i�r�s�t� �s�e�n�t�e�n�c�e� �o�f� �t�h�i�s� �p�a�r�a�g�r�a�p�h� �s�h�o�u�l�d� �e�n�d� � t�y�p�e� �n�o�t� � � � � t�y�p�e�s� ,� �a�n�d� �c�o�u�l�d� �b�e� �r�e�a�d� �s�u�c�h� �t�h�a�t� � a� �s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� �a�n�d� � a�n� �u�n�s�i�g�n�e�d� � � � �i�n�t�e�g�e�r� �t�y�p�e� �t�h�a�t� �i�s� �n�o�t� �a� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e�[�s�]� �a�r�e� �t�w�o� �s�e�p�a�r�a�t�e� � � � �e�n�t�r�i�e�s� �i�n� �t�h�e� �l�i�s�t� �(�s�o� �a�l�l�o�w�i�n�g� �a� �s�i�g�n�e�d� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e� �a�s� �t�h�e� � � � �t�y�p�e� �w�i�t�h� �w�h�i�c�h� �t�h�e� �e�n�u�m� �i�s� �c�o�m�p�a�t�i�b�l�e�,� �w�h�i�c�h� �c�l�e�a�r�l�y� �i�s�n� t� �i�n�t�e�n�d�e�d�)�.� � � � �Î� � � � �C�h�a�n�g�e� � c�h�a�r�,� �a� �s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�,� �o�r� �a�n� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� �t�h�a�t� � � � �i�s� �n�o�t� �a� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e�s� �t�o� � c�h�a�r� �o�r� �a� �s�i�g�n�e�d� �o�r� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� � � � �t�y�p�e� �t�h�a�t� �i�s� �n�o�t� �a� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e� .� � � � ��� GB-100 Æ� This paragraph talks about behavior of values of an enumerated type after lvalue conversion, with a footnote about the case of bool. However, most of the special semantics of bool relate to lvalues of that type rather than use of rvalues in arithmetic, and neither the normative text nor the footnote explicitly say that the semantics of conversion to the enumerated type are the same as those of conversion to the compatible type. d � � � �A�d�d� �a� �s�e�n�t�e�n�c�e� �a�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �p�a�r�a�g�r�a�p�h�,� � C�o�n�v�e�r�s�i�o�n� �t�o� �t�h�e� � � � �e�n�u�m�e�r�a�t�e�d� �t�y�p�e� �h�a�s� �t�h�e� �s�a�m�e� �s�e�m�a�n�t�i�c�s� �a�s� �c�o�n�v�e�r�s�i�o�n� �t�o� �t�h�e� �u�n�d�e�r�l�y�i�n�g� � � � �t�y�p�e�.� .� �M�o�v�e� �f�o�o�t�n�o�t�e� �1�5�3� �t�o� �b�e� �a�f�t�e�r� �t�h�a�t� �s�e�n�t�e�n�c�e�.� �I�n� �f�o�o�t�n�o�t�e� �1�5�3�,� �c�h�a�n�g�e� � � � � t�h�e� �s�a�m�e� �a�s� �b�o�o�l� �t�o� � t�h�e� �s�a�m�e� �a�s� �b�o�o�l�,� �c�o�n�v�e�r�s�i�o�n� �t�o� �t�h�e� �e�n�u�m�e�r�a�t�e�d� �t�y�p�e� � � � �b�e�h�a�v�e�s� �t�h�e� �s�a�m�e� �a�s� �c�o�n�v�e�r�s�i�o�n� �t�o� �b�o�o�l� �(�6�.�3�.�1�.�2�)� .� � � � ��� GB-101 �� 19 i� � � � � i�n�i�t�i�a�l�i�z�e�d� �t�o� �o�n�e� �s�h�o�u�l�d� �b�e� � i�n�i�t�i�a�l�i�z�e�d� �t�o� �1� �f�o�r� �c�o�n�s�i�s�t�e�n�c�y� � � � �w�i�t�h� �t�h�e� �p�r�e�v�i�o�u�s� �p�a�r�a�g�r�a�p�h�.� � � � �\� � � � �C�h�a�n�g�e� � i�n�i�t�i�a�l�i�z�e�d� �t�o� �o�n�e� �t�o� � i�n�i�t�i�a�l�i�z�e�d� �t�o� �1� �(�w�i�t�h� � 1� �i�n� � � � �f�i�x�e�d�-�w�i�d�t�h� �t�y�p�e�)�.� � � � ��� GB-102 6� It appears to be intended, for consistency with C++, that if an enum with fixed underlying type bool has an enumeration constant with value 1, and the following enumeration constant does not have a defining constant expression, a constraint is violated because 1 + 1 is not representable in bool. However, it is clear that the conversion of 1 + 1 to bool does not meet the definition of wraparound, and it might not meet the definition of overflow either, so different wording may be needed to ensure this case is a constraint violation.  � � � �C�h�a�n�g�e� � T�h�e� �d�e�f�i�n�i�t�i�o�n� �o�f� �a�n� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t� �w�i�t�h�o�u�t� �a� � � � �d�e�f�i�n�i�n�g� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� �s�h�a�l�l� �n�e�i�t�h�e�r� �o�v�e�r�f�l�o�w� �n�o�r� �w�r�a�p�a�r�o�u�n�d� �t�h�e� �f�i�x�e�d� � � � �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �b�y� �a�d�d�i�n�g� �1� �t�o� �t�h�e� �p�r�e�v�i�o�u�s� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�.� �t�o� � I�f� �t�h�e� � � � �v�a�l�u�e� �o�f� �a�n� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t� �w�i�t�h�o�u�t� �a� �d�e�f�i�n�i�n�g� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� �f�o�r� � � � �a�n� �e�n�u�m�e�r�a�t�i�o�n� �w�i�t�h� �f�i�x�e�d� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �i�s� �o�b�t�a�i�n�e�d� �b�y� �a�d�d�i�n�g� �1� �t�o� �t�h�e� � � � �p�r�e�v�i�o�u�s� �e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�,� �t�h�e� �v�a�l�u�e� �o�f� �t�h�a�t� �p�r�e�v�i�o�u�s� �e�n�u�m�e�r�a�t�i�o�n� � � � �c�o�n�s�t�a�n�t� �s�h�a�l�l� �n�o�t� �b�e� �t�h�e� �m�a�x�i�m�u�m� �v�a�l�u�e� �o�f� �t�h�e� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e�.� .� � � � ��� GB-103 ' � � � �T�h�e� �N�2�9�0�4� �v�e�r�s�i�o�n� �o�f� �t�h�e� �p�r�o�p�o�s�a�l� �f�o�r� �e�n�u�m�s� �w�i�t�h� �f�i�x�e�d� �u�n�d�e�r�l�y�i�n�g� � � � �t�y�p�e�s� �i�n�c�l�u�d�e�d� �a� �s�e�n�t�e�n�c�e� � T�h�e� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �o�f� �t�h�e� �e�n�u�m�e�r�a�t�i�o�n� �i�s� �t�h�e� � � � �u�n�q�u�a�l�i�f�i�e�d�,� �n�o�n�-�a�t�o�m�i�c� �v�e�r�s�i�o�n� �o�f� �t�h�e� �t�y�p�e� �s�p�e�c�i�f�i�e�d� �b�y� �t�h�e� �t�y�p�e� �s�p�e�c�i�f�i�e�r�s� � � � �i�n� �t�h�e� �s�p�e�c�i�f�i�e�r� �q�u�a�l�i�f�i�e�r� �l�i�s�t�.� .� �T�h�a�t� �<� �sentence disappeared in the N2963 version and so is not in the current draft, but it appears it is still the intent that the unqualified, non-atomic version of the type be used, and there is no other normative wording to replace that sentence to achieve that effect. Ë� � � � �A�t� �t�h�e� �e�n�d� �o�f� �p�a�r�a�g�r�a�p�h� �5�,� �a�d�d� � T�h�e� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �o�f� �t�h�e� � � � �e�n�u�m�e�r�a�t�i�o�n� �i�s� �t�h�e� �u�n�q�u�a�l�i�f�i�e�d�,� �n�o�n�-�a�t�o�m�i�c� �v�e�r�s�i�o�n� �o�f� �t�h�e� �t�y�p�e� �s�p�e�c�i�f�i�e�d� �b�y� � � � �t�h�e� �t�y�p�e� �s�p�e�c�i�f�i�e�r�s� �i�n� �t�h�e� �s�p�e�c�i�f�i�e�r� �q�u�a�l�i�f�i�e�r� �l�i�s�t�.� .� � � � ��� GB-104 ‹ � � � �T�h�e� �N�2�9�0�4� �v�e�r�s�i�o�n� �o�f� �t�h�e� �p�r�o�p�o�s�a�l� �f�o�r� �e�n�u�m�s� �w�i�t�h� �f�i�x�e�d� �u�n�d�e�r�l�y�i�n�g� � � � �t�y�p�e�s� �i�n�c�l�u�d�e�d� �a� �s�e�n�t�e�n�c�e� � N�o� �a�l�i�g�n�m�e�n�t� �s�p�e�c�i�f�i�e�r�s� �s�h�a�l�l� �a�p�p�e�a�r� �i�n� �t�h�e� � � � �s�p�e�c�i�f�i�e�r� �q�u�a�l�i�f�i�e�r� �l�i�s�t�.� ,� �w�h�i�c�h� �d�i�s�a�p�p�e�a�r�e�d� �i�n� �t�h�e� �N�2�9�6�3� �v�e�r�s�i�o�n�.� �T�h�e�r�e� �i�s� � � � �n�o� �a�c�t�u�a�l� �n�e�e�d� �f�o�r� �s�u�c�h� �a� �n�o�r�m�a�t�i�v�e� �s�e�n�t�e�n�c�e�,� �s�i�n�c�e� �i�t� �f�o�l�l�o�w�s� �f�r�o�m� � � � �r�e�q�u�i�r�e�m�e�n�t�s� �e�l�s�e�w�h�e�r�e� �i�n� �t�h�e� �s�t�a�n�d�a�r�d�,� �b�u�t� �a� �f�o�o�t�n�o�t�e� �p�o�i�n�t�i�n�g� �t�h�i�s� �o�u�t� � � � �w�o�u�l�d� �b�e� �h�e�l�p�f�u�l�.� � � � �ï� � � � �A�t� �t�h�e� �e�n�d� �o�f� �p�a�r�a�g�r�a�p�h� �5�,� �a�d�d� �a� �f�o�o�t�n�o�t�e� � T�h�e� �s�p�e�c�i�f�i�e�r� �q�u�a�l�i�f�i�e�r� � � � �l�i�s�t� �i�s� �n�o�t� �a� �c�o�n�t�e�x�t� �l�i�s�t�e�d� �i�n� �6�.�7�.�5� �a�s� �p�e�r�m�i�t�t�e�d� �f�o�r� �a�l�i�g�n�m�e�n�t� �s�p�e�c�i�f�i�e�r�s�,� � � � �s�o� �t�h�e� �p�r�e�s�e�n�c�e� �o�f� �a�n� �a�l�i�g�n�m�e�n�t� �s�p�e�c�i�f�i�e�r� �i�n� �t�h�e� �l�i�s�t� �v�i�o�l�a�t�e�s� �a� � � � �c�o�n�s�t�r�a�i�n�t�.� .� � � � ��� GB-105 Á�� There appears to be no Constraint that would explicitly disallow declaring an enum with a fixed underlying type and then defining it without one. enum e : int; enum e { A }; 4 � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �C�o�n�s�t�r�a�i�n�t�s� �i�n� �6�.�7�.�2�.�2�,� �a�d�d� �a� �n�e�w� �p�a�r�a�g�r�a�p�h� � � � �(�a�f�t�e�r� �p�a�r�a�g�r�a�p�h� �7�)�:� � A�n� �e�n�u�m�e�r�a�t�i�o�n� �w�i�t�h� �a� �f�i�x�e�d� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �s�h�a�l�l� �b�e� � � � �d�e�f�i�n�e�d� �w�i�t�h� �a�n� �e�n�u�m� �t�y�p�e� �s�p�e�c�i�f�i�e�r�.� � � � � �N�o� �e�n�u�m� �s�p�e�c�i�f�i�e�r� �f�o�r� �a�n� �e�n�u�m�e�r�a�t�i�o�n� �w�i�t�h�o�u�t� �a� �f�i�x�e�d� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� � � � �s�h�a�l�l� �i�n�c�l�u�d�e� �a�n� �e�n�u�m� �t�y�p�e� �s�p�e�c�i�f�i�e�r�.�&�q�u�o�t�;�.� � � � ��� GB-106 �� 6.7.2.3 �� 10, 11, footnote 156 r�� Some of the changes related to tags in accepted paper N3030 have not been applied to the working draft.  � � � �A�p�p�l�y� �t�h�e� �c�h�a�n�g�e�s� �t�o� �p�a�r�a�g�r�a�p�h� �1�0�:� �i�n�s�e�r�t� � � � � e�n�u�m�-�t�y�p�e�-�s�p�e�c�i�f�i�e�r�[�o�p�t�]� �i�n� �b�o�t�h� �e�n�u�m� �s�y�n�t�a�x� �a�l�t�e�r�n�a�t�i�v�e�s�,� �a�f�t�e�r� � � � �i�d�e�n�t�i�f�i�e�r�[�o�p�t�]�.� � � � �A�p�p�l�y� �t�h�e� �c�h�a�n�g�e�s� �t�o� �p�a�r�a�g�r�a�p�h� �1�1�:� �a�d�d� � e�n�u�m� � � � �i�d�e�n�t�i�f�i�e�r� � � � �e�n�u�m�-�t�y�p�e�-�s�p�e�c�i�f�i�e�r� � � � �;� �a�s� �a� �s�y�n�t�a�x� �a�l�t�e�r�n�a�t�i�v�e� �a�n�d� �c�h�a�n�g�e� � s�t�r�u�c�t�u�r�e� �o�r� �u�n�i�o�n� �t�y�p�e� �t�o� � � � � s�t�r�u�c�t�u�r�e�,� �u�n�i�o�n�,� �o�r� �e�n�u�m�e�r�a�t�e�d� �t�y�p�e� .� � � � �A�p�p�l�y� �t�h�e� �c�h�a�n�g�e�s� �t�o� �f�o�o�t�n�o�t�e� �1�5�6� �a�s� �s�h�o�w�n� �i�n� �t�h�e� �p�a�p�e�r�.� � � � ��� FR-107 �� 6.7.2.3 �� p1 [�� There is a new ambiguity for the initialization of unions if they are redeclared �� GB-108 �� 6.7.2.5 �� 4, 5 °� � � � �T�h�e� �t�y�p�e�o�f� �s�p�e�c�i�f�i�e�r�s� �s�h�o�u�l�d� �b�e� �r�e�f�e�r�r�e�d� �t�o� �a�s� �s�p�e�c�i�f�y�i�n�g� �a� �t�y�p�e�,� � � � �n�o�t� �a� � t�y�p�e� �n�a�m�e� �(�t�h�e� �l�a�t�t�e�r� �i�s� �a� �d�i�f�f�e�r�e�n�t� �s�y�n�t�a�x� �p�r�o�d�u�c�t�i�o�n� �f�o�r� �c�e�r�t�a�i�n� � � � �s�e�q�u�e�n�c�e�s� �o�f� �t�o�k�e�n�s�)�.� � � � �þ� � � � �I�n� �p�a�r�a�g�r�a�p�h� �4�,� �r�e�m�o�v�e� � t�h�e� �t�y�p�e� �n�a�m�e� �r�e�p�r�e�s�e�n�t�i�n�g� .� �C�h�a�n�g�e� � � � � p�r�o�d�u�c�e� �t�h�e� �t�y�p�e� �n�a�m�e� �t�o� � d�e�s�i�g�n�a�t�e� �t�h�e� �s�a�m�e� �t�y�p�e� �a�s� �t�h�e� �t�y�p�e� �n�a�m�e� .� �I�n� � � � �p�a�r�a�g�r�a�p�h� �5�,� �c�h�a�n�g�e� � n�o�n�-�a�t�o�m�i�c� �u�n�q�u�a�l�i�f�i�e�d� �t�y�p�e� �n�a�m�e� �t�o� � n�o�n�-�a�t�o�m�i�c� � � � �u�n�q�u�a�l�i�f�i�e�d� �v�e�r�s�i�o�n� �o�f� �t�h�e� �t�y�p�e� .� � � � ��� US 28 -109 �� Example 3 h�� This example uses smart quotes rather than straight quotes around the character constants. $�� Use straight quotes instead. �� US 27 -110 �� Examples 1 & 2 ½�� 5.1.2.2.1p1 says that main "shall be defined with a return type of int", so use of typeof and typeof_unqual in these examples are technically violating a constraint. e�� Use `int` as the return type for `main()` and pick different examples for those two cases. �� GB-111 �� footnote 159 8� � � � � t�y�p�e�-�n�a�m�e� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � �E� � � � �C�h�a�n�g�e� � t�y�p�e�-�n�a�m�e� �i�n� �t�h�e� �f�o�o�t�n�o�t�e� �o�u�t� �o�f� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � ��� GB-112 �� 6.7.3 � The statement about removing restrict not changing behavior of a conforming program is not strictly accurate for normative text, since _Generic can be used in a way that distinguishes between e.g. pointers to restrict-qualified and non-restrict-qualified types. � � � � �A�t� �t�h�e� �e�n�d� �o�f� �p�a�r�a�g�r�a�p�h� �9�,� �i�n�s�e�r�t� � ,� �u�n�l�e�s�s� �_�G�e�n�e�r�i�c� �i�s� �u�s�e�d� �t�o� � � � �d�i�s�t�i�n�g�u�i�s�h� �w�h�e�t�h�e�r� �o�r� �n�o�t� �a� �t�y�p�e� �h�a�s� �t�h�a�t� �q�u�a�l�i�f�i�e�r� .� � � � ��� US 29 -113 �� 6.7.3.1 �� example box F�� Inconsistent use of space in front of operator parentheses. 4� � � � �R�e�m�o�v�e� �s�p�a�c�e� �b�e�t�w�e�e�n� � s�i�z�e�o�f� �a�n�d� � (�f�l�o�a�t�)� .� � � � ��� CA4-114 �� 6.7.6 y� � � � �T�h�e� �r�e�m�o�v�a�l� �o�f� � K�&�a�m�p�;�R� �d�e�c�l�a�r�a�t�i�o�n�s� �m�a�d�e� �c�l�a�s�s�e�s� �o�f� �i�n�t�e�r�f�a�c�e�s� � � � �i�m�p�o�s�s�i�b�l�e� �a�n�d� �b�r�e�a�k�s� �a� �l�o�t� �o�f� �e�x�i�s�t�i�n�g� �c�o�d�e�.� � � � �h�� Either return K&R declarations or allow forward declaration of parameters in some manner. �� US 30 -115 �� Para 2 u � � � � & �a�n�d� �a�s�s�e�r�t�s� �t�h�a�t� �w�h�e�n� �a�n� �o�p�e�r�a�n�d� � � � �o�f� �t�h�e� �s�a�m�e� �f�o�r�m� �a�s� �t�h�e� �d�e�c�l�a�r�a�t�o�r� �a�p�p�e�a�r�s� �i�n� �a�n� �e�x�p�r�e�s�s�i�o�n�,� �i�t� �d�e�s�i�g�n�a�t�e�s� �a� � � � �f�u�n�c�t�i�o�n� �o�r� �o�b�j�e�c�t� �w�i�t�h� �t�h�e� �s�c�o�p�e�,� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n�,� �a�n�d� �t�y�p�e� �i�n�d�i�c�a�t�e�d� �b�y� � � � �t�h�e� �d�e�c�l�a�r�a�t�i�o�n� �s�p�e�c�i�f�i�e�r�s�.� �C�o�n�s�i�d�e�r�:� � � � � � �s�t�a�t�i�c� �i�n�t� �*�g�;� � � � � � �v�o�i�d� �f�(�)� �{� � � � � � � � �i�n�t� �x�;� � � � � � � � �g�=�&�a�m�p�;�x�;� � � � � � � � � �/�/� �.�.�.� � � � � � �}� � � � �H�o�w� � � � �d�o�e�s� �t�h�e� �o�b�j�e�c�t� �`�g�`� �d�e�s�i�g�n�a�t�e� �a� �s�c�o�p�e� �i�n�d�i�c�a�t�e�d� �b�y� �t�h�e� �d�e�c�l�a�r�a�t�i�o�n� � � � �s�p�e�c�i�f�i�e�r�s�?� �D�e�c�l�a�r�a�t�i�o�n� �s�p�e�c�i�f�i�e�r�s� �d�o�n� t� �i�n�d�i�c�a�t�e� �a� �s�c�o�p�e� � �t�h�e� �l�e�x�i�c�a�l� � � � �l�o�c�a�t�i�o�n� �o�f� �t�h�e� �d�e�c�l�a�r�a�t�o�r� �i�n�d�i�c�a�t�e�s� �t�h�e� �s�c�o�p�e�.� � � � �A�l�s�o�,� �t�h�e� �d�e�c�l�a�r�a�t�o�r� �i�s� �*�g� �a�n�d� �n�o�t� �g�;� �*�g� �d�o�e�s� �n�o�t� �h�a�v�e� �s�t�a�t�i�<� �c storage duration, g does. Á�� I think we can find a more clear way to specify that a declarator declares one identifier and that identifier has properties from the declaration specifiers associated with it. �� DE-116 �� 6.7.6.2 �� Example 2 3� � � � �T�h�e� �t�e�r�m� � u�n�s�p�e�c�i�f�i�e�d� �i�s� �u�s�e�d� �i�n�c�o�r�r�e�c�t�l�y�.� � � � �/� � � � �& �a�r�r�a�y� �o�f� �u�n�s�p�e�c�i�f�i�e�d� �u�n�k�n�o�w�n� �s�i�z�e� �.�.�.� � � � ��� DE-117 '�� 6.7.6.2, 6.5.3.4, 6.5.6 ß� The size expression can appear inside a subexpression which is not evaluated according to usual rules. I propose to extend the use of the existing notion of "unspecified size" to arrays with unevaluated size expressions. Existing language rules for evaluation of expressions and for composite types would then give useful behavior for common cases. In other cases, the resulting type would be an array of unspecified size, which then should explicitely be UB in sizeof or pointer arithmetic. Examples: if (0) { (char(*)[f()])0; } 0 ? (char(*)[f()])0 : 0; 1 ? (char(*)[f()])0 : (char(*)[g()])0; int a[n]; sizeof(*(0 ? &a : 0)); sizeof(*(0 ? (char(*)[f()])0 : 0)); ® � � � �6�.�7�.�6�.�2� �A�r�r�a�y� �D�e�c�l�a�r�a�t�o�r�s� � � � �5� �& �f� �i�t� �o�c�c�u�r�s� �i�n� �a� �d�e�c�l�a�r�a�t�i�o�n� �a�t� �f�u�n�c�t�i�o�n� �p�r�o�t�o�t�y�p�e� � � � �s�c�o�p�e�,� �i�f� �i�t� �i�s� �n�o�t� �e�v�a�l�u�a�t�e�d�,� �i�t� �i�s� �t�r�e�a�t�e�d� �a�s� �i�f� �i�t� �w�e�r�e� � � � �r�e�p�l�a�c�e�d� �b�y� �*�;� � �& �A� �s�i�z�e� � � � �e�x�p�r�e�s�s�i�o�n� �i�n� �a� �d�e�c�l�a�r�a�t�i�o�n� �a�t� �f�u�n�c�t�i�o�n� �p�r�o�t�o�t�y�p�e� �s�c�o�p�e� �i�s� �n�o�t� �e�v�a�l�u�a�t�e�d�.� � � � �6�.�5�.�3�.�4�.� �s�i�z�e�o�f� � � � �I�f� �t�h�e� �t�y�p�e� �o�f� �t�h�e� �o�p�e�r�a�n�d� �i�s� �a� �v�a�r�i�a�b�l�e� �l�e�n�g�t�h� �a�r�r�a�y� �t�y�p�e�,� �t�h�e� � � � �o�p�e�r�a�n�d� �i�s� �e�v�a�l�u�a�t�e�d�.� �I�f� �t�h�e� �v�a�r�i�a�b�l�e� �l�e�n�g�t�h� �a�r�r�a�y� �t�y�p�e� �h�a�s� �u�n�s�p�e�c�i�f�i�e�d� � � � �s�i�z�e�,� �t�h�e� �b�e�h�a�v�i�o�r� �i�s� �u�n�d�e�f�i�n�e�d�.� �O�t�h�e�r�w�i�s�e�,� �t�h�e� �o�p�e�r�a�n�d� �i�s� �n�o�t� �e�v�a�l�u�a�t�e�d� � � � �a�n�d� �t�h�e� �r�e�s�u�l�t� �i�s� �a�n� �i�n�t�e�g�e�r� �c�o�n�s�t�a�n�t�.� � � � �6�.�5�.�6� �A�d�d�i�t�i�v�e� �o�p�e�r�a�t�o�r�s�,� �S�e�m�a�n�t�i�c�s� � � � �I�f� �o�n�e� �o�f� �t�h�e� �o�p�e�r�a�n�d�s� �i�s� �a� �p�o�i�n�t�e�r� �t�o� �a�n� �a�r�r�a�y� �o�f� �u�n�s�p�e�c�i�f�i�e�d� � � � �s�i�z�e�,� �t�h�e� �b�e�h�a�v�i�o�r� �i�s� �u�n�d�e�f�i�n�e�d�.� � � � �6�.�5�.�1�5� �C�o�n�d�i�t�i�o�n�a�l� �o�p�e�r�a�t�o�r�,� �C�o�n�s�t�r�a�i�n�t�s� � � � �5� �I�f� �e�i�t�h�e�r� �o�f� �t�h�e� �s�e�c�o�n�d� �o�r� �t�h�i�r�d� �o�p�e�r�a�n�d�s� �i�s� �a� �n�u�l�l� �p�o�i�n�t�e�r� � � � �c�o�n�s�t�a�n�t� �o�r� �h�a�s� �t�y�p�e� �n�u�l�l�p�t�r�_�t�,� �t�h�e� �o�t�h�e�r� �o�p�e�r�a�n�d� �s�h�a�l�l� �n�o�t� �b�e� �a� �v�a�r�i�a�b�l�y� � � � �m�o�d�i�f�i�e�d� �t�y�p�e� �t�h�a�t� �h�a�s� �a�n� �u�n�s�p�e�c�i�f�i�e�d� �s�i�z�e� �i�f� �t�h�e� �o�p�e�r�a�n�d� �i�s� �n�o�t� �e�v�a�l�u�a�t�e�d� � � � ��� US 31 -118 �� 6.7.6.3 í�� Subclause 6.7.6.3, paragraph 4 says "the type specified for ident is "derived-declarator-type-list function returning the unqualified version of T".  Qualified return type is a misleading language feature. ˆ�� Add the following paragraph after paragraph 12: A return type declared to have a qualified type is an obsolescent feature. �� GB-119 �� footnote 174 < � � � �T�h�i�s� �f�o�o�t�n�o�t�e�,� �t�a�l�k�i�n�g� �s�p�e�c�i�f�i�c�a�l�l�y� �a�b�o�u�t� �a� �f�u�n�c�t�i�o�n� �d�e�f�i�n�i�t�i�o�n�,� � � � �w�a�s� �r�e�l�e�v�a�n�t� �w�h�e�n� �e�m�p�t�y� �p�a�r�e�n�t�h�e�s�e�s� �i�n� �a� �f�u�n�c�t�i�o�n� �d�e�f�i�n�i�t�i�o�n� �p�r�o�v�i�d�e�d� �a� � � � �p�r�o�t�o�t�y�p�e� �b�u�t� �t�h�o�s�e� �i�n� �o�t�h�e�r� �d�e�c�l�a�r�a�t�i�o�n�s� �d�i�d�n� t�.� �S�i�n�c�e� �t�h�e� �w�o�r�k�i�n�g� �d�r�a�f�t� �w�a�s� � � � �c�h�a�n�g�e�d� �t�o� �r�e�m�o�v�e� �u�n�p�r�o�t�o�t�y�p�e�d� �f�u�n�c�t�i�o�n�s�,� �t�h�i�s� �f�o�o�t�n�o�t�e� �s�e�e�m�s� �n�o� �l�o�n�g�e�r� � � � �r�e�l�e�v�a�n�t�.� � � � ��� Remove footnote 174. �� GB-120 �� 6.7.7 �� footnote 175 h� � � � �T�h�e� �r�e�f�e�r�e�n�c�e� �t�o� � n�o� �p�a�r�a�m�e�t�e�r� �s�p�e�c�i�f�i�c�a�t�i�o�n� �p�r�e�d�a�t�e�s� �t�h�e� �r�e�m�o�v�a�l� � � � �o�f� �u�n�p�r�o�t�o�t�y�p�e�d� �f�u�n�c�t�i�o�n�s�.� � � � �?� � � � �C�h�a�n�g�e� � n�o� �p�a�r�a�m�e�t�e�r� �s�p�e�c�i�f�i�c�a�t�i�o�n� �t�o� � n�o� �p�a�r�a�m�e�t�e�r�s� .� � � � ��� US 32 -121 �� 6.7.9 �� ge N� As we've been working on implementing this functionality in Clang, we're finding that the specification differences between C and C++ are a significant source of consternation for us. In C++, auto is a type specifier. In C, auto is not a type, it's the *absence* of a type and the use of a storage class specifier. ±�� Please do not resurrect implicit int with different semantics, but define this as a type specifier. Logically, a deduced type is a type and not a class of storage. �� US 34 -122 ­� Introduces incompatible semantics with C++ regarding the following example (undefined behavior in C, accepted in C++):   int i;   auto good = &i;   auto *bad = &i; // Cannot specify the pointer This style is often a coding standard requirement for code bases in C++ due to the improved code readability: e.g., https://llvm.org/docs/CodingStandards.html#beware-unnecessary-copies-with-auto. w�� We prefer that it be required to support (optional) pointer and array declarators as part of a deduced type. �� US 33 -123 ó� Adds a constraint on programs under a "Description" heading which makes it a bit less clear as to how to interpret the "shall" clauses used. For example, is this code UB or is it simply not possible to write:   auto a = { 1, 2 }; If it's UB, an implementation could elect to deduce `a` as `int[3]` or `int *` and I don't think we want to allow an extension into that space (FWIW, in C++ that would deduce to a std::initializer_list<int>). ‹� � � � �C�l�a�r�i�f�y� �t�h�e� �i�n�t�e�n�t� �b�y� �m�o�v�i�n�g� �t�h�e� � � � �s�p�e�c�i�f�i�c�a�t�i�o�n� �e�i�t�h�e�r� �t�o� �a� �C�o�n�s�t�r�a�i�n�t�s� �o�r� �S�e�m�a�n�t�i�c�s� �s�e�c�t�i�o�n�,� �o�r� �r�e�m�o�v�e� �u�s�e� �o�f� � � � �t�h�e� �w�o�r�d� � s�h�a�l�l� � � � ��� GB-124 �� 6.8.4.2 q� � � � �O�n�e� �r�e�f�e�r�e�n�c�e� �t�o� � d�e�f�a�u�l�t� �l�a�b�e�l� �d�o�e�s� �n�o�t� �h�a�v�e� � d�e�f�a�u�l�t� �m�a�r�k�e�d� �u�p� � � � �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t� �a�s� �a� �k�e�y�w�o�r�d�.� � � � �Q� � � � �I�n� � f�o�l�l�o�w�i�n�g� �t�h�e� �d�e�f�a�u�l�t� �l�a�b�e�l� ,� �p�u�t� � d�e�f�a�u�l�t� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� � � � �f�o�n�t�.� � � � ��� GB-125 �� 6.8.5 4 � � � �M�a�y� �a� �d�e�c�l�a�r�a�t�i�o�n� �i�n� �a� �f�o�r� �l�o�o�p� �u�s�e� �t�h�e� �c�o�n�s�t�e�x�p�r� �s�t�o�r�a�g�e� �c�l�a�s�s� � � � �s�p�e�c�i�f�i�e�r� �(�s�u�c�h� �a�n� �o�b�j�e�c�t� �b�e�i�n�g� �c�o�n�s�i�d�e�r�e�d� �i�m�p�l�i�c�i�t�l�y� �a�u�t�o� �i�f� �n�o� �o�t�h�e�r� � � � �s�t�o�r�a�g�e� �c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �u�s�e�d�)�,� �o�r� �d�o�e�s� � h�a�v�i�n�g� �s�t�o�r�a�g�e� �c�l�a�s�s� �a�u�t�o� �o�r� � � � �r�e�g�i�s�t�e�r� �e�x�c�l�u�d�e� �t�h�a�t� �c�a�s�e�?� �(�C�f�.� �D�R�#�2�7�7� �r�e�g�a�r�d�i�n�g� �i�n�t�e�r�p�r�e�t�a�t�i�o�n� �o�f� �t�h�a�t� � � � �s�e�n�t�e�n�c�e�.�)� � � � �¦� � � � �C�h�a�n�g�e� � h�a�v�i�n�g� �s�t�o�r�a�g�e� �c�l�a�s�s� �a�u�t�o� �o�r� �r�e�g�i�s�t�e�r� �t�o� � w�i�t�h� �a�u�t�o�m�a�t�i�c� � � � �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� ,� �t�o� �a�v�o�i�d� �a�m�b�i�g�u�i�t�y� �(�a�s�s�u�m�i�n�g� �t�h�e� �c�o�n�s�t�e�x�p�r� �c�a�s�e� �s�h�o�u�l�d� �b�e� � � � �a�l�l�o�w�e�d�)�.� � � � ��� GB-126 �� 6.9.2 �� 1-2 <�  � � � �T�h�e� �r�u�l�e�s� �o�n� �e�x�t�e�r�n�a�l� �a�n�d� �t�e�n�t�a�t�i�v�e� �d�e�f�i�n�i�t�i�o�n�s� �d�o� �n�o�t� �a�p�p�e�a�r� �t�o� � � � �m�a�k�e� �a� �f�i�l�e�-�s�c�o�p�e� �t�h�r�e�a�d�_�l�o�c�a�l� �d�e�c�l�a�r�a�t�i�o�n� �o�f� �a�n� �o�b�j�e�c�t� �w�i�t�h�o�u�t� � s�t�a�t�i�c� �a�n�d� � � � �w�i�t�h�o�u�t� �a�n� �i�n�i�t�i�a�l�i�z�e�r� �i�n�t�o� �e�i�t�h�e�r� �a�n� �e�x�t�e�r�n�a�l� �d�e�f�i�n�i�t�i�o�n� �o�r� �a� �t�e�n�t�a�t�i�v�e� � � � �d�e�f�i�n�i�t�i�o�n�,� �c�o�n�t�r�a�r�y� �t�o� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �p�r�a�c�t�i�c�e�.� � � � �Å � � � �I�f� �i�t� s� �i�n�t�e�n�d�e�d� �f�o�r� �s�u�c�h� �d�e�c�l�a�r�a�t�i�o�n�s� �t�o� �b�e� �t�e�n�t�a�t�i�v�e� � � � �d�e�f�i�n�i�t�i�o�n�s�,� �c�h�a�n�g�e� � w�i�t�h�o�u�t� �a� �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �o�r� �w�i�t�h� �t�h�e� � � � �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �s�t�a�t�i�c� �i�n� �p�a�r�a�g�r�a�p�h� �2� �t�o� � w�i�t�h�o�u�t� �t�h�e� �s�t�o�r�a�g�e�-�c�l�a�s�s� � � � �s�p�e�c�i�f�i�e�r� �e�x�t�e�r�n� .� �O�t�h�e�r�w�i�s�e�,� �s�a�y� � w�i�t�h�o�u�t� �t�h�e� �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �e�x�t�e�r�n� � � � �o�r� �t�h�r�e�a�d�_�l�o�c�a�l� �t�h�e�r�e�,� �a�n�d�,� �i�n� �p�a�r�a�g�r�a�p�h� �1�,� �c�h�a�n�g�e� � a�n� �i�n�i�t�i�a�l�i�z�e�r� �t�o� � a�n� � � � �i�n�i�t�i�a�l�i�z�e�r�,� �o�r� �h�a�s� �f�i�l�e� �s�c�o�p�e� �a�n�d� �t�h�e� �s�t�o�r�a�g�e�-�c�l�a�s�s� �s�p�e�c�i�f�i�e�r� �t�h�r�e�a�d�_�l�o�c�a�l� .� � � � ��� GB-127 ‡ � � � �T�h�e� � i�n�i�t�i�a�l�i�z�e�r� �e�q�u�a�l� �t�o� �{� �0� �}� �w�o�r�d�i�n�g� �i�s� �c�o�n�t�r�a�r�y� �t�o� �t�h�e� �i�n�t�e�n�t� � � � �o�f� �m�a�k�i�n�g� �t�h�e� �q�u�a�n�t�u�m� �e�x�p�o�n�e�n�t� �o�f� �a� �d�e�f�a�u�l�t� �i�n�i�t�i�a�l�i�z�e�d� �o�b�j�e�c�t� �o�f� �d�e�c�i�m�a�l� � � � �f�l�o�a�t�i�n�g� �t�y�p�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d�,� �a�s� �t�a�k�e�n� �l�i�t�e�r�a�l�l�y� �i�t� �w�o�u�l�d� �p�r�e�v�e�n�t� �t�h�e� � � � �c�h�o�i�c�e� �o�f� �t�h�e� �l�e�a�s�t� �p�o�s�s�i�b�l�e� �e�x�p�o�n�e�n�t� �(�a�l�l� �b�i�t�s� �z�e�r�o�)� �i�f� �t�h�e� �o�b�j�e�c�t� �w�i�t�h� �a� � � � �t�e�n�t�a�t�i�v�e� �d�e�f�i�n�i�t�i�o�n� �i�s�,� �o�r� �s�t�a�r�t�s� �w�i�t�h�,� �a� �s�c�a�l�a�r� �w�i�t�h� �d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�.� � � � �ž � � � �C�h�a�n�g�e� � w�i�t�h� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �a�s� �o�f� �t�h�e� �e�n�d� �o�f� �t�h�e� �t�r�a�n�s�l�a�t�i�o�n� � � � �u�n�i�t�,� �w�i�t�h� �a�n� �i�n�i�t�i�a�l�i�z�e�r� �e�q�u�a�l� �t�o� �{� �0� �}�.� �t�o� � w�i�t�h� �a�n� �e�m�p�t�y� �i�n�i�t�i�a�l�i�z�e�r� �a�n�d� � � � �t�y�p�e� �d�e�t�e�r�m�i�n�e�d� �a�s� �f�o�l�l�o�w�s�:� �i�f� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �a�s� �o�f� �t�h�e� �e�n�d� �o�f� �t�h�e� � � � �t�r�a�n�s�l�a�t�i�o�n� �u�n�i�t� �i�s� �a�n� �a�r�r�a�y� �o�f� �u�n�k�n�o�w�n� �s�i�z�e�,� �t�h�e�n� �a�n� �a�r�r�a�y� �o�f� �s�i�z�e� �o�n�e� �w�i�t�h� � � � �t�h�e� �c�o�m�p�o�s�i�t�e� �e�l�e�m�e�n�t� �t�y�p�e�,� �a�n�d� �o�t�h�e�r�w�i�s�e� �t�h�e� �c�o�m�p�o�s�i�t�e� �t�y�p�e� �a�s� �o�f� �t�h�e� �e�n�d� �o�f� � � � �t�h�e� �t�r�a�n�s�l�a�t�i�o�n� �u�n�i�t�.� .� � � � ��� GB-128 �� 6.10 h�� The second alternative in the syntax for pp-balanced-token-sequence is not properly indented. B�� Indent that alternative to match the previous alternative. �� GB-129 �� 6.10.1 ¹� � � � � U�n�r�e�c�o�g�n�i�z�e�d� �p�r�e�p�r�o�c�e�s�s�o�r� �p�r�e�f�i�x�e�d� �p�a�r�a�m�e�t�e�r�s� �i�s� �a� �p�l�u�r�a�l� �p�h�r�a�s�e� � � � �b�u�t� �s�u�b�s�e�q�u�e�n�t� �v�e�r�b�s� �i�n� �t�h�i�s� �s�e�n�t�e�n�c�e� �e�x�p�e�c�t� �t�h�e� �s�i�n�g�u�l�a�r�;� � t�o� �b�e� �e�v�a�l�u�a�t�e� � � � �s�h�o�u�l�d� �b�e� � t�o� �b�e� �e�v�a�l�u�a�t�e�d� .� � � � �g� � � � �C�h�a�n�g�e� � i�s� �n�o�t� �t�o� � a�r�e� �n�o�t� ,� � c�a�u�s�e�s� �t�o� � c�a�u�s�e� �a�n�d� � t�o� �b�e� � � � �e�v�a�l�u�a�t�e� �t�o� � t�o� �b�e� �e�v�a�l�u�a�t�e�d� .� � � � ��� FR-130 #�� 6.10.1 and 6.10.9.1 M�� The magic constants for __has_embed should have symbolic names �� FR-131 �� 6.10.3 P�� It seems that #embed offers multiple ways to express the same feature �� GB-132 �� 6.10.3.1 G� � � � � E�i�t�h�e�r� �f�o�r�m� �(�s�i�n�g�u�l�a�r�)� �d�o�e�s� �n�o�t� �a�g�r�e�e� �w�i�t�h� � b�e�h�a�v�e� �(�p�l�u�r�a�l�)�.� � � � �%� � � � �C�h�a�n�g�e� � b�e�h�a�v�e� �t�o� � b�e�h�a�v�e�s� .� � � � ��� GB-133 4� � � � � e�x�e�c�u�t�i�o�n� �t�i�m�e� �s�h�o�u�l�d� �b�e� � e�x�e�c�u�t�i�o�n�-�t�i�m�e� .� � � � �4� � � � �C�h�a�n�g�e� � e�x�e�c�u�t�i�o�n� �t�i�m�e� �t�o� � e�x�e�c�u�t�i�o�n�-�t�i�m�e� .� � � � ��� GB-134 �� 18 Q � � � �I�n� �t�h�i�s� �e�x�a�m�p�l�e�,� �t�h�e� � f�i�r�s�t� �e�n�t�r�y� �r�e�f�e�r�e�n�c�e� �i�s� �m�i�s�l�e�a�d�i�n�g�,� �s�i�n�c�e� � � � �s�c�a�l�a�r� �i�n�i�t�i�a�l�i�z�e�r�s� �i�n�s�i�d�e� �b�r�a�c�e�s� �c�a�n� �o�n�l�y� �c�o�n�t�a�i�n� �o�n�e� �e�x�p�r�e�s�s�i�o�n� �(�t�h�e� �s�y�n�t�a�x� � � � �s�h�o�w�s� �t�h�a�t� �m�u�l�t�i�p�l�e� �a�s�s�i�g�n�m�e�n�t� �e�x�p�r�e�s�s�i�o�n�s� �s�e�p�a�r�a�t�e�d� �b�y� �c�o�m�m�a�s� �a�r�e� �n�o�t� � � � �h�a�n�d�l�e�d� �a�s� �a� �u�s�e� �o�f� �t�h�e� �c�o�m�m�a� �o�p�e�r�a�t�o�r�,� �b�u�t� �a�s� �m�u�l�t�i�p�l�e� �i�n�i�t�i�a�l�i�z�e�r�s� �a�n�d� �t�h�u�s� � � � �a� �c�o�n�s�t�r�a�i�n�t� �v�i�o�l�a�t�i�o�n�)�.� � � � �›� � � � �R�e�m�o�v�e� � f�i�r�s�t� �e�n�t�r�y� ,� �a�n�d� �a�d�d� �t�h�e� � v�a�l�i�d� �i�f� �i�.�d�a�t� �p�r�o�d�u�c�e�s� �1� � � � �v�a�l�u�e�,� �f�r�o�m� �t�h�e� �s�e�c�o�n�d� �#�e�m�b�e�d� �u�s�e� �i�n� �t�h�i�s� �e�x�a�m�p�l�e� �t�o� �t�h�e� �s�t�a�r�t� �o�f� �t�h�a�t� � � � �c�o�m�m�e�n�t�.� � � � ��� GB-135 �� 6.10.3.2 .�� Example 4 is a duplicate of Example 3. C�� Remove Example 4 (renumbering Example 5 below accordingly). �� GB-136 �� 6.10.3.3 1� � � � � s�u�f�f�i�x� �s�h�o�u�l�d� �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � �+� � � � �P�u�t� � s�u�f�f�i�x� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � ��� GB-137 @�� The Constraints paragraph is missing a paragraph number. J�� Number this paragraph 1, renumbering paragraphs below accordingly. �� GB-138 �� 6.10.3.5 �� GB-139 �� 6.10.4.5 ! � � � �I�n� �t�h�e� �e�x�a�m�p�l�e� �o�f� �v�a�l�i�d� �r�e�d�e�f�i�n�i�t�i�o�n�s�,� �t�h�e� �r�e�d�e�f�i�n�i�t�i�o�n� �o�f� � � � �F�U�N�C�_�L�I�K�E� �i�s�n� t� �a�c�t�u�a�l�l�y� �v�a�l�i�d�,� �b�e�c�a�u�s�e� �t�h�e� �f�i�r�s�t� �d�e�f�i�n�i�t�i�o�n� �l�a�c�k�s� �w�h�i�t�e� � � � �s�p�a�c�e� �s�e�p�a�r�a�t�i�o�n� �p�r�e�s�e�n�t� �i�n� �t�h�e� �s�e�c�o�n�d� �o�n�e�.� �T�h�i�s� �a�p�p�e�a�r�s� �t�o� �b�e� �a� �p�r�e�v�i�o�u�s�l�y� � � � �u�n�n�o�t�i�c�e�d� �m�i�s�t�a�k�e� �i�n�t�r�o�d�u�c�e�d� �b�y� �t�h�e� �c�o�n�v�e�r�s�i�o�n� �t�o� �L�a�T�e�X� �f�o�r� �C�1�7�.� � � � � � � � �R�e�s�t�o�r�e� �p�r�e�s�e�n�c�e� �a�n�d� �a�b�s�e�n�c�e� �o�f� �w�h�i�t�e� �s�p�a�c�e� �t�o� �t�h�e� �s�t�a�t�e� �i�t� �h�a�d� �i�n� � � � �C�1�1�,� �f�o�r� �b�o�t�h� �t�h�e� �v�a�l�i�d� �a�n�d� �t�h�e� �i�n�v�a�l�i�d� �d�e�f�i�n�i�t�i�o�n�s�,� �a�s� �f�o�l�l�o�w�s�.� �I�n�s�i�d�e� �t�h�e� � � � �r�e�p�l�a�c�e�m�e�n�t� �l�i�s�t�s� �f�o�r� �t�h�e� �f�i�r�s�t�,� �t�h�i�r�d� �a�n�d� �f�o�u�r�t�h� �F�U�N�C�_�L�I�K�E� �d�e�f�i�n�i�t�i�o�n�s�,� � � � �i�n�s�e�r�t� �a� �s�p�a�c�e� �a�f�t�e�r� � (� �a�n�d� �o�n�e� �b�e�f�o�r�e� � )� .� �A�d�d�i�t�i�o�n�a�l�l�y�,� �i�n� �t�h�e� �s�e�c�o�n�d� � � � �F�U�N�C�_�L�I�K�E� �d�e�f�i�n�i�t�i�o�n�,� �i�n�s�e�r�t� �a� �s�p�a�c�e� �a�f�t�e�r� � (� �a�n�d� �b�e�f�o�r�e� � )� �i�n� �t�h�e� �l�i�s�t�i�n�g� � � � �o�f� �p�a�r�a�m�e�t�e�r� �n�a�m�e�s� �(�n�o�t� �t�h�e� �r�e�p�l�a�c�e�m�e�n�t� �l�i�s�t�)�,� �t�o� �i�l�l�u�s�t�r�a�t�e�,� �a�s� �i�n� �C�1�1�,� �t�h�a�t� � � � �v�a�r�i�a�t�i�o�n� �i�n� �t�h�e� �p�r�e�s�e�n�c�e� �o�f� �s�p�a�c�e� �t�h�e�r�e� �i�s� �O�K�.� � � � ��� GB-140 � � � � � a�n�d� ,� �i�n� �t�h�e� �a�r�g�u�m�e�n�t� �t�o� �s�h�o�w�l�i�s�t�,� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �b�o�l�d�,� �s�i�n�c�e� � � � �i�t� s� �n�o�t� �b�e�<� �ing used in any way as a standard macro. W� � � � �A�r�r�a�n�g�e� �f�o�r� � a�n�d� �t�o� �b�e� �s�h�o�w�n� �i�n� �t�h�e� �s�a�m�e� �f�o�n�t� �a�s� �t�h�e� �r�e�s�t� �o�f� �t�h�a�t� � � � �a�r�g�u�m�e�n�t�.� � � � ��� GB-141 �� 6.10.5 ®� � � � � I�f� �a� �m�a�c�r�o� �i�n�v�o�c�a�t�i�o�n� �s�p�a�n�s� �m�u�l�t�i�p�l�e� �p�h�y�s�i�c�a�l� �o�r� �l�o�g�i�c�a�l� �l�i�n�e�s� � � � �s�h�o�u�l�d�n� t� �r�e�f�e�r� �t�o� �l�o�g�i�c�a�l� �l�i�n�e�s�,� �s�i�n�c�e� �l�i�n�e� �n�u�m�b�e�r�s� �a�r�e� �a�l�w�a�y�s� �a�s�s�o�c�i�a�t�e�d� � � � �w�i�t�h� �p�h�y�s�i�c�a�l� �l�i�n�e�s�.� � � � �� � � � �R�e�m�o�v�e� � o�r� �l�o�g�i�c�a�l� .� � � � ��� US 37 -142 �� 6.10.9.1 F�� Pages 184+: Should the token "202311L" have italics? j�� Please make any proposed change as necessary. for each of these issues (unless noted otherwise) �� GB-143 ½� � � � �T�h�e� �r�e�f�e�r�e�n�c�e�s� �t�o� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n�s� �(�p�l�u�r�a�l�)� �a�r�e� �l�e�f�t� �o�v�e�r� �f�r�o�m� � � � �w�h�e�n� �a�s�c�t�i�m�e�_�r� �w�a�s� �a�d�d�e�d�.� �S�i�n�c�e� �i�t� �w�a�s� �s�u�b�s�e�q�u�e�n�t�l�y� �r�e�m�o�v�e�d�,� �t�h�o�s�e� �r�e�f�e�r�e�n�c�e�s� � � � �s�h�o�u�l�d� �r�e�v�e�r�t� �b�a�c�k� �t�o� �s�i�n�g�u�l�a�r�.� � � � �� � � � �C�h�a�n�g�e� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n�s� �t�o� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n� ,� �b�o�t�h� �i�n� �t�h�e� � � � �d�e�s�c�r�i�p�t�i�o�n� �o�f� �_�_�T�I�M�E�_�_� �a�n�d� �i�n� �t�h�e� �f�o�r�w�a�r�d� �r�e�f�e�r�e�n�c�e�s�.� � � � ��� GB-144 �� 6.10.9.2 È�� The example value of __STDC_ISO_10646__ corresponds to a very old revision of ISO/IEC 10646 (amendment 9 to the 1993 edition). A more recent version might be appropriate for the example. &� � � � �C�h�a�n�g�e� � 1�9�9�7�1�2�L� �t�o� � 2�0�2�0�1�2�L� .� � � � ��� GB-145 �� 6.10.9.3 �� Footnote 225 (intent for version macros) should be attached to all the macros using a date as a version, not just one. ’�� Attach footnote 225 also to __STDC_IEC_60559_BFP__, __STDC_IEC_60559_DFP__, __STDC_IEC_60559_COMPLEX__ and __STDC_IEC_60559_TYPES__. �� GB-146 �� 6.11.2 t� The introduction of the keyword constexpr provides a new way to declare an identifier with internal linkage at file scope. Since such a new feature should not be immediately considered obsolescent, presumably it should only be the pre-existing case (of redeclaring without static after an initial declaration with static) that is listed as obsolescent. 1� � � � �C�h�a�n�g�e� � s�t�a�t�i�c� �t�o� � s�t�a�t�i�c� �o�r� �c�o�n�s�t�e�x�p�r� .� � � � ��� GB-147 �� 7.1.2 �� 1, 7 Ã� � � � �I�t� s� �n�o�t� �j�u�s�t� �A�n�n�e�x� �K� �t�h�a�t� �d�e�f�i�n�e�s� �i�n�t�e�r�f�a�c�e�s� �t�o� �b�e� �c�o�n�s�i�d�e�r�e�d� � � � �t�o�g�e�t�h�e�r� �w�i�t�h� �t�h�e� �o�n�e�s� �i�n� �c�l�a�u�s�e� �7�;� �A�n�n�e�x�e�s� �F�,� �G� �a�n�d� �H� �d�o� �s�o� �a�s� �w�e�l�l� �a�n�d� �s�o� � � � �s�h�o�u�l�d� �b�e� �m�e�n�t�i�o�n�e�d� �t�o�g�e�t�h�e�r� �w�i�t�h� �A�n�n�e�x� �K�.� � � � � � � � �I�n� �p�a�r�a�g�r�a�p�h� �1�,� �c�h�a�n�g�e� � t�h�a�t� �d�e�f�i�n�e�s� �_�_�S�T�D�C�_�L�I�B�_�E�X�T�1�_�_� �s�h�a�l�l� � � � �c�o�n�f�o�r�m� �t�o� �t�h�e� �s�p�e�c�i�f�i�c�a�t�i�o�n�s� �i�n� �A�n�n�e�x� �K� �a�n�d� �S�u�b�c�l�a�u�s�e� �K�.�3� �s�h�o�u�l�d� �b�e� �r�e�a�d� �a�s� � � � �i�f� �i�t� �t�o� � t�h�a�t� �d�e�f�i�n�e�s� �_�_�S�T�D�C�_�I�E�C�_�6�0�5�5�9�_�B�F�P�_�_�,� �_�_�S�T�D�C�_�I�E�C�_�5�5�9�_�_�,� �o�r� � � � �_�_�S�T�D�C�_�I�E�C�_�6�0�5�5�9�_�D�F�P�_�_� �s�h�a�l�l� �c�o�n�f�o�r�m� �t�o� �t�h�e� �s�p�e�c�i�f�i�c�a�t�i�o�n�s� �i�n� �A�n�n�e�x� �F�,� �o�n�e� � � � �t�h�a�t� �d�e�f�i�n�e�s� �_�_�S�T�D�C�_�I�E�C�_�6�0�5�5�9�_�C�O�M�P�L�E�X�_�_� �o�r� �_�_�S�T�D�C�_�I�E�C�_�5�5�9�_�C�O�M�P�L�E�X�_�_� �s�h�a�l�l� � � � �c�o�n�f�o�r�m� �t�o� �t�h�e� �s�p�e�c�i�f�i�c�a�t�i�o�n�s� �i�n� �A�n�n�e�x� �G�,� �o�n�e� �t�h�a�t� �d�e�f�i�n�e�s� � � � �_�_�S�T�D�C�_�I�E�C�_�6�0�5�5�9�_�T�Y�P�E�S�_�_� �s�h�a�l�l� �c�o�n�f�o�r�m� �t�o� �t�h�e� �s�p�e�c�i�f�i�c�a�t�i�o�n�s� �i�n� �A�n�n�e�x� �H� �a�n�d� � � � �o�n�e� �t�h�a�t� �d�e�f�i�n�e�s� �_�_�S�T�D�C�_�L�I�B�_�E�X�T�1�_�_� �s�h�a�l�l� �c�o�n�f�o�r�m� �t�o� �t�h�e� �s�p�e�c�i�f�i�c�a�t�i�o�n�s� �i�n� � � � �A�n�n�e�x� �K�,� �a�n�d� �t�h�o�s�e� �A�n�n�e�x�e�s� �s�h�o�u�l�d� �b�e� �r�e�a�d� �a�s� �i�f� �t�h�e�y� .� �C�h�a�n�g�e� � h�e�r�e� �o�r� �i�n� � � � �A�n�n�e�x� �K� �t�o� � h�e�r�e� �o�r� �i�n� �A�n�n�e�x�e�s� �F�,� �G�,� �H�,� �o�r� �K� .� � � � �I�n� �p�a�r�a�g�r�a�p�h� �7�,� �c�h�a�n�g�e� � A�n�n�e�x� �K� �t�o� � A�n�n�e�x�e�s� �F�,� �G�,� �H�,� �o�r� �K� .� � � � ��� CA5-148 �� 7.2 ¯�� It is not clear what the effect of no NDEBUG defined should be for assert with no or multiple parameters passed in given the quasi-prototype listed in 7.2.1.1#1. � Add to paragraph 2: The assert macro shall be implemented as a macro with an ellipsis parameter, not as an actual function. If the macro definition is suppressed to access an actual function, the behavior is undefined.NOTE Nevertheless, when NDEBUG is not defined, the macro acts as a function taking one parameter as indicated by the given prototype. For both assert() and assert(1, 1), the number of arguments do not agree with the number of parameters. A diagnostic is required by 6.5.2.2. �� GB-149 �� 7.3.1 ¨� � � � �T�o� �e�n�s�u�r�e� �u�s�a�b�i�l�i�t�y� �i�n� �c�o�n�s�t�e�x�p�r� �i�n�i�t�i�a�l�i�z�e�r�s�,� �t�h�e� � _�C�o�m�p�l�e�x�_�I� � � � �a�n�d� � _�I�m�a�g�i�n�a�r�y�_�I� �m�a�c�r�o�s� �s�h�o�u�l�d� �b�e� �r�e�q�u�i�r�e�d� �t�o� �e�x�p�a�n�d� �t�o� �a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� � � � �e�x�p�r�e�s�s�i�o�n�s�.� � � � �b� � � � �C�h�a�n�g�e� � c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� �t�o� � a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� � � � �i�n� �p�a�r�a�g�r�a�p�h�s� �5� �a�n�d� �6�.� � � � ��� US 38 -150 �� 7.3.5.1 L�� Page 194:  Remove page break before 7.3.5.2  casin (on page 195). j�� Please make any proposed change as necessary. for each of these issues (unless noted otherwise) �� GB-151 �� 7.3.9.2, 7.3.9.6 Ÿ�� The equality stated in footnotes for creal and cimag is only correct if imaginary types are supported and if neither part of the number is a NaN. ¨� � � � �I�n� �b�o�t�h� �f�o�o�t�n�o�t�e�s� �2�4�5� �a�n�d� �2�4�6�,� �c�h�a�n�g�e� � c�r�e�a�l�(�z�)�+�c�i�m�a�g�(�z�)�*�I� �t�o� � � � � C�M�P�L�X�(�c�r�e�a�l�(�z�)�,� �c�i�m�a�g�(�z�)�)� .� �A�f�t�e�r� � o�f� �c�o�m�p�l�e�x� �t�y�p�e� ,� �i�n�s�e�r�t� � ,� �i�f� �n�e�i�t�h�e�r� � � � �p�a�r�t� �i�s� �a� �N�a�N�,� .� � � � ��� GB-152 �� 7.3.9.3 o� The CMPLX macros should expand to arithmetic constant expressions to be usable in constexpr initializers, not just those of static or thread storage duration. (But if the implementation has floating expressions that are valid in static initializers but not in constexpr initializers, CMPLX calls with such arguments should have the same property.) Å� � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �p�a�r�a�g�r�a�p�h�,� �a�d�d� �a�n�o�t�h�e�r� �s�e�n�t�e�n�c�e�:� � T�h�e� �r�e�s�u�l�t�i�n�g� � � � �e�x�p�r�e�s�s�i�o�n� �s�h�a�l�l� �b�e� �a�n� �a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n�,� �p�r�o�v�i�d�e�d� �b�o�t�h� � � � �a�r�g�u�m�e�n�t�s� �a�r�e� �a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n�s�.� .� � � � ��� GB-153 �� 7.3.9.5 P�� The given equivalence is only valid if imaginary types are supported. i� � � � �C�h�a�n�g�e� � I�N�F�I�N�I�T�Y� �+� �I� �*� �c�o�p�y�s�i�g�n�(�0�.�0�,� �c�i�m�a�g�(�z�)�)� �t�o� � � � � C�M�P�L�X�(�I�N�F�I�N�I�T�Y�,� �c�o�p�y�s�i�g�n�(�0�.�0�,� �c�i�m�a�g�(�z�)�)�)� .� � � � ��� GB-154 �� 7.5 �� footnote 250 q�� The suggested macro definition of errno is not valid because it is not fully prote<� �cted by parentheses. *� � � � �C�h�a�n�g�e� � *�e�r�r�n�o�(�)� �t�o� � (�*�e�r�r�n�o�(�)�)� .� � � � ��� US 39 -155 �� 7.6 Æ�� Page 208: Add to 7.6 paragraph 13 (one about FE_DOWNWARD): The defined macros expand to integer constant expressions whose values are distinct nonnegative values.  [This was in C17] m�� Please make any proposed change as necessary. for each of these issues (unless noted otherwise) �� GB-156  � � � �I�t� �s�e�e�m�s� �m�i�s�l�e�a�d�i�n�g� �t�o� �s�a�y� �t�h�a�t� �m�a�c�r�o�s� �a�r�e� �d�e�f�i�n�e�d� �f�o�r� �u�s�e� �w�i�t�h� � � � �t�h�e� �F�E�N�V�_�D�E�C�_�R�O�U�N�D� �p�r�a�g�m�a�,� �w�h�e�n� �s�t�a�n�d�a�r�d� �p�r�a�g�m�a�s� �d�o� �n�o�t� �m�a�c�r�o�-�e�x�p�a�n�d� �t�h�e�i�r� � � � �a�r�g�u�m�e�n�t�s�,� �s�o� �w�h�i�l�e� �t�h�o�s�e� �i�d�e�n�t�i�f�i�e�r�s� �a�r�e� �u�s�e�d� �a�s� �a�r�g�u�m�e�n�t�s� �t�o� �t�h�e� �p�r�a�g�m�a�,� � � � �t�h�a�t� s� �i�n�d�e�p�e�n�d�e�n�t� �o�f� �t�h�e�i�r� �d�e�f�i�n�i�t�i�o�n�s� �a�s� �m�a�c�r�o�s�.� � � � �€� � � � �R�e�m�o�v�e� � ,� �a�n�d� �w�i�t�h� �t�h�e� �F�E�N�V�_�D�E�C�_�R�O�U�N�D� �r�o�u�n�d�i�n�g� �c�o�n�t�r�o�l� �p�r�a�g�m�a� � � � �(�7�.�6�.�3�)� �f�o�r� �s�p�e�c�i�f�y�i�n�g� �a� �c�o�n�s�t�a�n�t� �r�o�u�n�d�i�n�g� �d�i�r�e�c�t�i�o�n�,� .� � � � ��� GB-157 �� 7.6.1 µ � � � �T�h�e� �w�o�r�d�i�n�g� �s�e�e�m�s�,� �i�n� �o�n�e� �p�l�a�c�e�,� �t�o� �l�e�a�v�e� �o�p�e�n� �t�h�e� �p�o�s�s�i�b�i�l�i�t�y� � � � �t�h�a�t� �c�o�d�e� �u�n�d�e�r� �a�n� �F�E�N�V�_�A�C�C�E�S�S� �p�r�a�g�m�a� �w�i�t�h� �s�t�a�t�e� � o�n� �c�h�a�n�g�e�s� �t�h�e� �d�y�n�a�m�i�c� � � � �r�o�u�n�d�i�n�g� �m�o�d�e�,� �a�n�d� �t�h�e�n� �c�o�n�t�r�o�l� �f�l�o�w� �p�a�s�s�e�s� �t�o� �c�o�d�e� �w�i�t�h� �s�t�a�t�e� � o�f�f� ,� �s�i�n�c�e� � � � �t�h�a�t� �d�o�e�s�n� t� �f�a�l�l� �u�n�d�e�r� � e�s�t�a�b�l�i�s�h�e�s� �n�o�n�-�d�e�f�a�u�l�t� �f�l�o�a�t�i�n�g�-�p�o�i�n�t� �m�o�d�e� � � � �s�e�t�t�i�n�g�s� ,� �b�u�t� �i�t� �p�r�o�b�a�b�l�y� �w�a�s�n� t� �i�n�t�e�n�d�e�d� �t�o� �a�l�l�o�w� �c�o�d�e� �w�i�t�h� �F�E�N�V�_�A�C�C�E�S�S� �o�f�f� � � � �t�o� �e�x�e�c�u�t�e� �w�i�t�h� �a� �n�o�n�-�d�e�f�a�u�l�t� �r�o�u�n�d�i�n�g� �m�o�d�e� �l�i�k�e� �t�h�a�t�.� � � � �B� � � � �C�h�a�n�g�e� � e�s�t�a�b�l�i�s�h�e�s� �t�o� � e�s�t�a�b�l�i�s�h�e�s� �o�r� �i�s� �e�x�e�c�u�t�e�d� �w�i�t�h� .� � � � ��� FR-158 �� 7.8.1 �� after p3 -�� Add optional macros PRIBN and similar �� FR-159 �� p3 and p5 C�� PRI and SCN macros are missing for new format specifiers �� GB-160 �� 7.8.2.1 �� footnote 271 “� � � � �N�o�w� �t�h�a�t� �t�w�o� s� �c�o�m�p�l�e�m�e�n�t� �i�s� �r�e�q�u�i�r�e�d�,� �i�t� �i�s� �k�n�o�w�n� �t�h�a�t� �t�h�e� � � � �a�b�s�o�l�u�t�e� �v�a�l�u�e� �o�f� �t�h�e� �m�o�s�t� �n�e�g�a�t�i�v�e� �i�n�t�e�g�e�r� �i�s� �d�e�f�i�n�i�t�e�l�y� �n�o�t� �r�e�p�r�e�s�e�n�t�a�b�l�e�.� � � � �(� � � � �C�h�a�n�g�e� � m�a�y� �n�o�t� �b�e� �t�o� � i�s� �n�o�t� .� � � � ��� GB-161 �� 7.11 �� footnote 272 A�� The current revision of ISO/IEC 9945 is in a single part. "� � � � �C�h�a�n�g�e� � 9�9�4�5�-�2� �t�o� � 9�9�4�5� .� � � � ��� GB-162 �� 7.11.2.1 y�� Since three of the four currencies in the example are no longer in use, the past tense seems more appropriate. -� � � � �C�h�a�n�g�e� � b�e� �u�s�e�d� �t�o� � h�a�v�e� �b�e�e�n� �u�s�e�d� .� � � � ��� GB-163 �� 7.12 �� 5, 6, 7, 8, 9, 10 �� To be usable in constexpr initializers, constant expressions should be specified as arithmetic constant expressions. p� � � � �C�h�a�n�g�e� � c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� �t�o� � a�r�i�t�h�m�e�t�i�c� �c�o�n�s�t�a�n�t� �e�x�p�r�e�s�s�i�o�n� ,� � � � �i�n� �p�a�r�a�g�r�a�p�h�s� �5�,� �6�,� �7�,� �8�,� �9� �a�n�d� �1�0�.� � � � ��� GB-164 �� 7.12.1 ;� In previous versions of the C standard, the requirements for setting errno and raising exceptions on overflow only applied when default rounding is in effect. The current wording appears to have those requirements regardless of the rounding direction, but it looks like this was an accidental side effect of splitting a single sentence into multiple sentences, rather than an intended change. Requiring errno setting when the rounding direction results in overflow returning a finite value rather than an infinity is liable to be problematic. & � � � �I�n� �t�h�e� �p�e�n�u�l�t�i�m�a�t�e� �s�e�n�t�e�n�c�e� �(�e�r�r�n�o� �s�e�t�t�i�n�g�)�,� �c�h�a�n�g�e� � I�f� �a� �f�l�o�a�t�i�n�g� � � � �r�e�s�u�l�t� �o�v�e�r�f�l�o�w�s� �t�o� � I�f� �a� �f�l�o�a�t�i�n�g� �r�e�s�u�l�t� �o�v�e�r�f�l�o�w�s�,� �d�e�f�a�u�l�t� �r�o�u�n�d�i�n�g� �i�s� �i�n� � � � �e�f�f�e�c�t�,� .� �L�i�k�e�w�i�s�e� �i�n� �t�h�e� �f�i�n�a�l� �s�e�n�t�e�n�c�e� �(�e�x�c�e�p�t�i�o�n� �r�a�i�s�i�n�g�)�,� �u�n�l�e�s�s� �i�t� s� �n�o�t� � � � �d�e�s�i�r�e�d� �t�o� �r�e�s�t�o�r�e� �t�h�e� �p�r�e�v�i�o�u�s� �s�e�m�a�n�t�i�c�s� �i�n� �t�h�a�t� �c�a�s�e�.� � � � ��� GB-165 �� 7.12.3 ]� � � � �T�h�e� � m�i�n� �a�n�d� � m�a�x� �s�u�b�s�c�r�i�p�t�s� �i�n� �e�x�p�r�e�s�s�i�o�n�s� �s�h�o�u�l�d� �b�e� �i�n� �r�o�m�a�n� � � � �f�o�n�t� �n�o�t� �i�t�a�l�i�c�s�.� � � � �5�� Change them to roman font (LaTeX \min, \max). �� US 40 -166 �� 7.12.4.14 j�� Page 243: Add to 7.12.4.14 (tanpi):  A pole error may occur if |x| is (n+0.5) for integer n. �� US 41 -167 �� 7.12.7.4 <�� Page 254: 7.12.7.4 (hypot): Paragraph 3 is empty. �� GB-168 �� 7.12.9.10 2� � � � � N�a�N� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � �/� � � � �C�h�a�n�g�e� � N�a�N� �o�u�t� �o�f� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � ��� US 42 -169 �� 7.12.11.04 b�� Page 265: 7.12.11.4 (nexttoward):  Should a "Returns" paragraph be added? @� � � � �I�f� � � � �a�d�d�e�d�,� �i�t� �s�h�o�u�l�d� �b�e� �s�i�m�i�l�a�r� �t�o� �t�h�e� � n�e�x�t�a�f�t�e�r� �o�n�e� � � � ��� US 43 -170 �� 7.12.12.02 ’�� Page 267: 7.12.12.2 (fmax): Seems like footnotes 297 and 298 are normative; so should not be footnotes, but part of the description. �� GB-171 �� 7.12.14 �� footnote 299 C� � � � � d�o�u�b�l�e� �a�n�d� � l�o�n�g� �d�o�u�b�l�e� �s�h�o�u�l�d� �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � �@� � � � �C�h�a�n�g�e� � d�o�u�b�l�e� �a�n�d� � l�o�n�g� �d�o�u�b�l�e� �t�o� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � ��� US 44 -172 �� 7.12.14.05 n�� Page 273: 7.12.14.5 (narrow fma): "(" at end of sentence should be moved to next line. �� GB-173 –�� 7.12.16.01, 7.12.16.2, 7.12.16.3, 7.12.16.4, H.11.3.1.1, H.11.3.1.2, H.11.3.2.1, H.11.3.2.2, H.12.3.1, H.12.3.2, H.12.4.1, H.12.4.2 } � � � �I�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� �b�y�t�e� �o�r�d�e�r�i�n�g� �m�a�d�e� �s�e�n�s�e� �o�r�i�g�i�n�a�l�l�y� �i�n� �T�S� � � � �1�8�6�6�1�-�2� �a�n�d� �T�S� �1�8�6�6�1�-�3�,� �w�h�e�n� �t�h�e�r�e� �w�a�s� �n�o�t�h�i�n�g� �i�n� �t�h�e� �s�t�a�n�d�a�r�d� �d�e�f�i�n�i�n�g� �w�a�y�s� � � � �t�o� �t�a�l�k� �a�b�o�u�t� �t�h�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� s� �b�y�t�e� �o�r�d�e�r�i�n�g�.� �B�u�t� �n�o�w� �w�e� �h�a�v�e� � � � �&�l�t�;�s�t�d�b�i�t�.�h�&�g�t�;� �i�n� �t�h�e� �w�o�r�k�i�n�g� �d�r�a�f�t�,� �i�t� �s�e�e�m�s� �a�p�p�r�o�p�r�i�a�t�e�,� �a�n�d� �m�o�r�e� �u�s�e�f�u�l� � � � �f�o�r� �u�s�e�r�s�,� �t�o� �s�p�e�c�i�f�y� �t�h�a�t� �t�h�e� �b�y�t�e� �o�r�d�e�r�i�n�g� �m�a�t�c�h�e�s� �_�_�S�T�D�C�_�E�N�D�I�A�N�_�N�A�T�I�V�E�_�_�.� � � � �= � � � �I�n� �e�a�c�h� �o�f� �t�h�e�s�e� �t�w�e�l�v�e� �s�u�b�c�l�a�u�s�e�s�,� �c�h�a�n�g�e� � T�h�e� �o�r�d�e�r� �o�f� �b�y�t�e�s� �i�n� � � � �t�h�e� �a�r�r�a�y� �i�s� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d�.� �t�o� � T�h�e� �o�r�d�e�r� �o�f� �b�y�t�e�s� �i�n� �t�h�e� �a�r�r�a�y� � � � �f�o�l�<� l�o�w�s� �t�h�e� �e�n�d�i�a�n�n�e�s�s� �s�p�e�c�i�f�i�e�d� �w�i�t�h� �_�_�S�T�D�C�_�E�N�D�I�A�N�_�N�A�T�I�V�E�_�_� �(�7�.�1�8�.�2�)�.� .� �(�I�n� � � � �H�.�1�1�.�3�.�2�.�1�,� �a�n�d� �H�.�1�1�.�3�.�2�.�2�,� �t�h�e� �s�e�n�t�e�n�c�e� �s�a�y�s� � a�r�r�a�y�s� �n�o�w� �a�n�d� �s�h�o�u�l�d� �s�t�i�l�l� � � � �s�a�y� � a�r�r�a�y�s� �a�f�t�e�r� �t�h�e� �c�h�a�n�g�e�.� �I�n� �H�.�1�2�.�3�.�1�,� �H�.�1�2�.�3�.�2�,� �H�.�1�2�.�4�.�1�,� �a�n�d� �H�.�1�2�.�4�.�2�,� � � � �t�h�e� �c�u�r�r�e�n�t� �t�e�x�t� �s�a�y�s� � a�r�r�a�y�s� ,� �b�u�t� �i�t� �s�h�o�u�l�d� �s�a�y� � a�r�r�a�y� �a�f�t�e�r� �t�h�e� �c�h�a�n�g�e� � � � �s�i�n�c�e� �o�n�l�y� �a� �s�i�n�g�l�e� �a�r�r�a�y� �i�s� �i�n�v�o�l�v�e�d� �f�o�r� �e�a�c�h� �o�f� �t�h�o�s�e� �f�u�n�c�t�i�o�n�s�.�)� �A�l�s�o� � � � �r�e�m�o�v�e� �i�t�e�m� �1�4� �i�n� �J�.�3�.�1�2�.� � � � ��� US 45 -174 �� 7.12.16.02 Z�� Page 276: 7.12.16.2 (decodedecN): "15" after Description seems wrong. �� GB-175 >� � � � �T�h�e�r�e� �i�s� �a� �s�t�r�a�y� � 1�5� �a�t� �t�h�e� �s�t�a�r�t� �o�f� �t�h�e� �D�e�s�c�r�i�p�t�i�o�n�.� � � � �� � � � �R�e�m�o�v�e� � 1�5� .� � � � ��� US 46 -176 �� 7.12.17 (�� subclause 1-5, paragraph 2 and 3 4�� The typeface of parentheses is inconsistent. X�� Style all parentheses in the indicated paragraphs like the ones in 7.12.17.1. �� US 47 -177 �� 7.12.17.01 �� paragraph 2 :� � � � �B�a�d� �l�i�n�e� �b�r�e�a�k� �b�e�t�w�e�e�n� � i�s�g�r�e�a�t�e�r� �a�n�d� � � � � (�x�,�y�)� .� � � � �>� � � � �F�i�x� �b�a�d� �l�i�n�e� �b�r�e�a�k� �b�e�t�w�e�e�n� � i�s�g�r�e�a�t�e�r� �a�n�d� � � � � (�x�,�y�)� .� � � � ��� US 48 -178 �� 7.12.17.02 �� paragraph 2 and 3 þ�� The intention is to define the macro isgreaterequal(x, y) with reference to the C expression (x) >= (y), not to a mathematical expression. Thus, the three instances of the mathematical symbol for greater than or equal are not correct. ¢�� Replace the three instances of the mathematical symbol for greater than or equal with the C relational operator >= with the appropriate typeface. �� GB-179 ;�� 7.12.17.02, 7.12.17.3, 7.12.17.4, 7.12.17.5 ³� The descriptions of the type-generic comparison macros are inconsistent about whether the expression used to describe the value returned by the macro is shown as a C expression (all C tokens in a fixed-width font, C operators used with corresponding C semantics) or as some kind of mathematical expression (operators not in a fixed-width font and not always C operators at all). The cases using a mathematical expression do not define semantics for how to go from a mathematical result to a C value in type int. Thus, I think the approach in 7.12.17.1 (isgreater), showing a C expression, is to be preferred over the approach in the following four subclauses. ð � � � �I�n� �7�.�1�2�.�1�7�.�2� �(�i�s�g�r�e�a�t�e�r�e�q�u�a�l�)�,� �c�h�a�n�g�e� �t�h�e� �e�x�p�r�e�s�s�i�o�n�s� �t�o� �b�e� �i�n� �a� � � � �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t� �(�b�o�t�h� �p�a�r�e�n�t�h�e�s�e�s� �a�n�d� �c�o�m�p�a�r�i�s�o�n� �o�p�e�r�a�t�o�r�)�,� �u�s�i�n�g� �t�h�e� �C� � � � � &�g�t�;�=� �o�p�e�r�a�t�o�r� �i�n�s�t�e�a�d� �o�f� � e" ;� �t�h�i�s� �c�h�a�n�g�e� �a�p�p�l�i�e�s� �t�h�r�e�e� �t�i�m�e�s� �i�n� �t�h�i�s� � � � �s�u�b�c�l�a�u�s�e�.� � � � �L�i�k�e�w�i�s�e� �i�n� �7�.�1�2�.�1�7�.�3� �(�i�s�l�e�s�s�)�.� � � � �L�i�k�e�w�i�s�e� �i�n� �7�.�1�2�.�1�7�.�4� �(�i�s�l�e�s�s�e�q�u�a�l�)�,� �u�s�i�n�g� � &�l�t�;�=� �i�n�s�t�e�a�d� �o�f� � d" .� � � � �L�i�k�e�w�i�s�e� �i�n� �7�.�1�2�.�1�7�.�5� �(�i�s�l�e�s�s�g�r�e�a�t�e�r�)� �(�t�h�i�s� �c�a�s�e� �a�l�s�o� �u�s�e�s� �t�h�e� � � � � |�|� �o�p�e�r�a�t�o�r�,� �w�h�i�c�h� �l�o�o�k�s� �p�a�r�t�i�c�u�l�a�r�l�y� �a�w�k�w�a�r�d� �w�h�e�n� �n�o�t� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� � � � �f�o�n�t�)�.� � � � ��� US 49 -180 �� 7.12.17.03 é�� The intention is to define the macro isless(x, y) with reference to the C expression (x) < (y), not to a mathematical expression. Thus, the three instances of the mathematical symbol for less than are not correct. •�� Replace the three instances of the mathematical symbol for less than with the C relational operator < with the appropriate typeface. �� US 50 -181 �� 7.12.17.04 ‰�� Page 278: 7.12.17.4 (islessequal): Better if "(" at end of line were on next line to end up with "(y)". �� US 51 -182 ,� � � � �B�a�d� �l�i�n�e� �b�r�e�a�k� �b�e�t�w�e�e�n� � (� �a�n�d� � y�)� .� � � � �0� � � � �F�i�x� �b�a�d� �l�i�n�e� �b�r�e�a�k� �b�e�t�w�e�e�n� � (� �a�n�d� � y�)� .� � � � ��� US 52 -183 ø�� The intention is to define the macro islessequal(x, y) with reference to the C expression (x) <= (y), not to a mathematical expression. Thus, the three instances of the mathematical symbol for less than or equal are not correct. Ÿ�� Replace the three instances of the mathematical symbol for less than or equal with the C relational operator <= with the appropriate typeface. �� US 53 -184 �� 7.12.17.05 i� � � � �T�h�o�u�g�h� �n�o�t� �i�n�c�o�r�r�e�c�t�,� �l�a�c�k� �o�f� �a�n�y� �s�p�a�c�e� �a�r�o�u�n�d� � � � � |�|� �s�u�g�g�e�s�t�s� �a�n� �e�r�r�o�n�e�o�u�s� �o�r�d�e�r� �o�f� �o�p�e�r�a�t�i�o�n�s�.� � � � �� � � � �A�d�d� �s�p�a�c�e� �a�r�o�u�n�d� � |�|� .� � � � ��� US 54 -185 � The intention is to define the macro islessgreater(x, y) with reference to the C expression (x) < (y) || (x) > (y), not to a mathematical expression. Thus, use of mathematical symbols in the two instances of the expression is not appropriate. ²�� Rewrite the two instances of the expression (x) < (y) || (x) > (y) in the style of a C expression, where <, ||, and > have the typeface for C operators. �� US 55 -186 �� paragraph 3 �� US 56 -187 �� 7.13 }�� Page 280: 7.13 #3: "the floating-point status flags" -> "the floating-point environment" �� GB-188 ~�� There are no interface changes in setjmp.h, so the addition of a version macro for this header seems inappropriate. ~� � � � �R�e�m�o�v�e� �p�a�r�a�g�r�a�p�h� �2�.� �I�n� �p�a�r�a�g�r�a�p�h� �1�,� �c�h�a�n�g�e� � t�h�e� �m�a�c�r�o�s� �s�e�t�j�m�p� �a�n�d� � � � �_�_�S�T�D�C�_�V�E�R�S�I�O�N�_�S�E�T�J�M�P�_�H�_�_� �t�o� � t�h�e� �m�a�c�r�o� �s�e�t�j�m�p� .� � � � ��� US 57 -189 �� 7.13.2.1 ˜�� Page 281: 7.13.2.1#3 (longjmp): footnote 305: "the floating-point status flags" -> "the floating-point environment" �� GB-190 �� 7.14.1.1 ñ� AG Reference Bug 728 (https://austingroupbugs.net/view.php?id=728) ======= Title: Restrictions on signal handlers are excessive The description of the signal function includes the following:  If the signal occurs other than as the result of calling the abort or raise function, the behavior is undefined if the signal handler refers to any object with static or thread storage duration that is not a lock-free atomic object other than by assigning a value to an object declared as volatile sig_atomic_t This is overly restrictive in several cases: · It does not allow read access to const-qualified objects · It does not allow read access to string literals · It does not allow referencing a modifiable object with static or thread storage duration (that is not a lock-free atomic object) whose last modification was sequenced before the call to the signal handler and whose next modification will be sequenced after the call to the signal handler. o� Change the text to: If the signal occurs other than as the result of calling the abort or raise function, the behavior is undefined if the signal handler refers to any <� �object with static or thread storage duration that is not a lock-free atomic object, not a const-qualified object, and not a string literal, other than by assigning a value to an object declared as volatile sig_atomic_t, unless the previous modification (if any) to the object happens before the signal handler is called and the return from the signal handler happens before the next modification (if any) to the object �� GB-191 }�� It might be appropriate to allow constexpr objects with static storage duration to be accessed in signal handlers.  � � � � �C�o�n�s�i�d�e�r� �t�h�e� �f�o�l�l�o�w�i�n�g� �c�h�a�n�g�e�:� �a�f�t�e�r� � n�o�t� �a� �l�o�c�k�-�f�r�e�e� �a�t�o�m�i�c� � � � �o�b�j�e�c�t� �i�n�s�e�r�t� � a�n�d� �t�h�a�t� �i�s� �n�o�t� �d�e�c�l�a�r�e�d� �w�i�t�h� �t�h�e� �c�o�n�s�t�e�x�p�r� �s�t�o�r�a�g�e�-�c�l�a�s�s� � � � �s�p�e�c�i�f�i�e�r� .� � � � ��� FR-192 �� 7.16.1.4 �� p4 '�� va_start becomes too permissive �� NEN/NL6-193 �� Paragraph 4 £� Accepted proposal N2975 is a positive change for the C Standard. However, because it definitively declares that all parameters passed into va_start must be ignored, it leaves no room to add warnings or errors when someone performs an objectively wrong call to va_start, such as va_list vl; va_start(vl, 1, 2, djwkdeshfes, xD); These calls should be diagnosable by most implementations. D � � � �1�.�)� �C�h�a�n�g�e� �t�h�e� �w�o�r�d�i�n�g� �o�f� �7�.�1�6�.�1�.�4�,� �p�a�r�a�g�r�a�p�h� �4�,� �f�r�o�m�:� � � � �A�n�y� � � � �a�d�d�i�t�i�o�n�a�l� �a�r�g�u�m�e�n�t�s� �a�r�e� �n�o�t� �u�s�e�d� �b�y� �t�h�e� �m�a�c�r�o� �a�n�d� �w�i�l�l� �n�o�t� �b�e� �e�x�p�a�n�d�e�d� �o�r� � � � �e�v�a�l�u�a�t�e�d� �f�o�r� �a�n�y� �r�e�a�s�o�n�.� � � � �T�o� � � � �A�n�y� � � � �a�d�d�i�t�i�o�n�a�l� �a�r�g�u�m�e�n�t�s� �a�r�e� �n�o�t� �u�s�e�d� �b�y� �t�h�e� �m�a�c�r�o� �a�n�d� �s�h�a�l�l� �n�o�t� �b�e� �e�v�a�l�u�a�t�e�d�.� � � � � � � � �2�.�)� �A�d�d� �a� �n�e�w� �R�E�C�O�M�M�E�N�D�E�D� �P�R�A�C�T�I�C�E� �s�u�b�c�l�a�u�s�e� �t�o� �7�.�1�6�.�1�.�4�:� � � � �R�e�c�o�m�m�e�n�d�e�d� �P�r�a�c�t�i�c�e� � � � � � � � �A�d�d�i�t�i�o�n�a�l� � � � �a�r�g�u�m�e�n�t�s� �b�e�y�o�n�d� �t�h�e� �f�i�r�s�t� �g�i�v�e�n� �t�o� �t�h�e� �v�a�_�s�t�a�r�t� �m�a�c�r�o� �m�a�y� �b�e� �e�x�p�a�n�d�e�d� �a�n�d� � � � �u�s�e�d� �i�n� �u�n�s�p�e�c�i�f�i�e�d� �c�o�n�t�e�x�t�s� �w�h�e�r�e� �t�h�e�y� �a�r�e� �u�n�e�v�a�l�u�a�t�e�d�.� �F�o�r� �e�x�a�m�p�l�e�,� �a�n� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �d�i�a�g�n�o�s�e�s� �p�o�t�e�n�t�i�a�l�l�y� �e�r�r�o�n�e�o�u�s� �i�n�p�u�t� �f�o�r� �a� �c�a�l�l� �t�o� �v�a�_�s�t�a�r�t� � � � �s�u�c�h� �a�s�:� � � � � � � � �#�i�n�c�l�u�d�e� �&�l�t�;�s�t�d�a�r�g�.�h�&�g�t�;� � � � �v�o�i�d� �m�i�a�o�u� �(�& )� �{� � � � � � �v�a�_�l�i�s�t� �v�l�;� � � � � � �v�a�_�s�t�a�r�t�(�v�l�,� �1�,� �3�.�0�,� � 1�2� ,� �x�d�)�;� �/�/� � � � �d�i�a�g�n�o�s�t�i�c� �e�n�c�o�u�r�a�g�e�d� � � � � � �/�*� �.�.� �*�/� � � � � � �v�a�_�e�n�d�(�v�l�)�;� � � � �}� � � � � � � � �S�i�m�u�l�t�a�n�e�o�u�s�l�y�,� � � � �v�a�_�s�t�a�r�t� �u�s�a�g�e� �c�o�n�s�i�s�t�e�n�t� �w�i�t�h� �o�l�d�e�r� �r�e�v�i�s�i�o�n�s� �o�f� �t�h�i�s� �d�o�c�u�m�e�n�t� �s�h�o�u�l�d� �n�o�t� � � � �p�r�o�d�u�c�e� �a� �d�i�a�g�n�o�s�t�i�c�:� � � � � � � � � � � � �#�i�n�c�l�u�d�e� � � � �&�l�t�;�s�t�d�a�r�g�.�h�&�g�t�;� � � � �v�o�i�d� �n�e�i�g�h� �(�i�n�t� �l�a�s�t�_�a�r�g�,� �& )� �{� � � � � � �v�a�_�l�i�s�t� �v�l�;� � � � � � �v�a�_�s�t�a�r�t�(�v�l�,� �l�a�s�t�_�a�r�g�)�;� �/�/� �n�o� � � � �d�i�a�g�n�o�s�t�i�c� � � � � � �/�*� �.�.� �*�/� � � � � � �v�a�_�e�n�d�(�v�l�)�;� � � � �}� � � � ��� GB-194 �� 7.17.4.1 Ý� � � � �I�t� s� �u�n�f�o�r�t�u�n�a�t�e� �t�h�a�t� �t�h�e� �f�i�n�a�l� �s�e�m�i�c�o�l�o�n� �o�f� �t�h�e� �s�e�c�o�n�d� �l�i�s�t� �i�t�e�m� � � � �i�s� �n�o�w� �p�u�s�h�e�d� �o�n�t�o� �t�h�e� �n�e�x�t� �l�i�n�e� �w�h�e�n� �p�r�e�v�i�o�u�s�l�y� �i�t� �w�a�s� �n�o�t�.� �(�S�i�m�i�l�a�r� �i�s�s�u�e�s� � � � �w�i�t�h� �f�o�r�m�a�t�t�i�n�g� �a�r�o�u�n�d� �c�o�d�e� �f�r�a�g�m�e�n�t�s� �a�p�p�e�a�r� �e�l�s�e�w�h�e�r�e� �a�s� �w�e�l�l�.�)� � � � �U�� Avoid line breaks between code fragments in text and adjacent punctuation. �� GB-195 �� 7.17.6 ä� � � � � s�a�m�e� �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �a�n�d� �a�l�i�g�n�m�e�n�t� �r�e�q�u�i�r�e�m�e�n�t�s� �l�e�a�v�e�s� �o�p�e�n� � � � �w�h�e�t�h�e�r� �o�t�h�e�r� �s�e�m�a�n�t�i�c�s� �m�a�t�c�h� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �d�i�r�e�c�t� �t�y�p�e�;� �i�n� �p�a�r�t�i�c�u�l�a�r�,� � � � �w�h�e�t�h�e�r� �c�o�n�v�e�r�s�i�o�n�s� �t�o� �a�t�o�m�i�c�_�b�o�o�l� �h�a�v�e� �t�h�e� �s�e�m�a�n�t�i�c�s� �o�f� �c�o�n�v�e�r�s�i�o�n�s� �t�o� �b�o�o�l�.� � � � �Û � � � �P�r�e�f�e�r�a�b�l�y�,� �c�h�a�n�g�e� � a� �t�y�p�e� �t�h�a�t� �h�a�s� �t�h�e� �s�a�m�e� �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �a�n�d� � � � �a�l�i�g�n�m�e�n�t� �r�e�q�u�i�r�e�m�e�n�t�s� �a�s� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �d�i�r�e�c�t� �t�y�p�e� �t�o� � a� �t�y�p�e�d�e�f� �n�a�m�e� � � � �f�o�r� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �d�i�r�e�c�t� �t�y�p�e� ,� �a�n�d� �r�e�m�o�v�e� �f�o�o�t�n�o�t�e� �3�1�6�.� �I�f� �t�h�a�t� �i�s� � � � �c�o�n�s�i�d�e�r�e�d� �p�r�o�b�l�e�m�a�t�i�c�,� �h�o�w�e�v�e�r�,� �a�d�d� � a�n�d� �o�t�h�e�r� �s�e�m�a�n�t�i�c�s� �a�f�t�e�r� � a�l�i�g�n�m�e�n�t� � � � �r�e�q�u�i�r�e�m�e�n�t�s� ,� �a�n�d�,� �a�t� �t�h�e� �e�n�d� �o�f� �f�o�o�t�n�o�t�e� �3�1�6�,� �a�d�d� �a� �s�e�n�t�e�n�c�e� � O�t�h�e�r� � � � �s�e�m�a�n�t�i�c�s� �i�n�c�l�u�d�e� �t�h�a�t� �c�o�n�v�e�r�s�i�o�n�s� �t�o� �a�t�o�m�i�c�_�b�o�o�l� �b�e�h�a�v�e� �t�h�e� �s�a�m�e� �a�s� � � � �c�o�n�v�e�r�s�i�o�n�s� �t�o� �b�o�o�l�.� .� � � � ��� GB-196 �� 7.17.7.5 Â� � � � �T�h�e� �l�a�s�t� � F�o�r� �a�d�d�r�e�s�s� �t�y�p�e�s� �s�e�n�t�e�n�c�e� �d�o�e�s�n� t� �s�e�e�m� �t�o� �a�p�p�l�y� �t�o� � � � �a�n�y�t�h�i�n�g�,� �i�f� � a�d�d�r�e�s�s� �t�y�p�e�s� �m�e�a�n�s� � p�o�i�n�t�e�r� �t�y�p�e�s� ,� �s�i�n�c�e� �t�h�e�s�e� �o�p�e�r�a�t�i�o�n�s� � � � �o�n�l�y� �a�p�p�l�y� �t�o� �i�n�t�e�g�e�r� �t�y�p�e�s�,� �n�o�t� �p�o�i�n�t�e�r�s�.� � � � �!�� Remove the last sentence. �� GB-197  � � � � a�n�y� �a�t�o�m�i�c� �i�n�t�e�g�e�r� �t�y�p�e� �i�s� �n�o�t� �e�n�t�i�r�e�l�y� �c�l�e�a�r� �a�s� �t�o� �w�h�e�t�h�e�r� �i�t� � � � �m�e�a�n�s� �a�n�y� �o�f� �t�h�e� �t�y�p�e�s� �l�i�s�t�e�d� �i�n� �s�u�b�c�l�a�u�s�e� �7�.�1�7�.�6� �(�A�t�o�m�i�c� �i�n�t�e�g�e�r� �t�y�p�e�s�)� �o�r� � � � �w�h�e�t�h�e�r� �i�t� �i�n�c�l�u�d�e�s� �t�h�e� �a�t�o�m�i�c� �v�e�r�s�i�o�n� �o�f� �a�n�y� �i�n�t�e�g�e�r� �t�y�p�e�;� �t�h�e� �l�a�t�t�e�r� �s�e�e�m�s� � � � �t�h�e� �m�o�r�e� �n�a�t�u�r�a�l� �r�e�a�d�i�n�g�,� �u�n�l�e�s�s� �s�o�m�e� �r�u�l�e� �o�f� �i�n�t�e�r�p�r�e�t�a�t�i�o�n� �m�e�a�n�s� �t�h�e� � � � �s�u�b�c�l�a�u�s�e� �h�e�a�d�i�n�g� �s�e�r�v�e�s� �a�s� �a� �d�e�f�i�n�i�t�i�o�n�.� �T�h�i�s� �m�e�a�n�s� �t�h�a�t� �d�i�s�a�l�l�o�w�i�n�g� � � � �a�t�o�m�i�c�_�b�o�o�l� �f�a�i�l�s� �t�o� �d�i�s�a�l�l�o�w� �t�h�e� �a�t�o�m�i�c� �v�e�r�s�i�o�n�s� �o�f� �e�n�u�m�e�r�a�t�i�o�n�s� �w�i�t�h� �b�o�o�l� � � � �a�s� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e�,� �e�v�e�n� �t�h�o�u�g�h� �t�h�o�s�e� �h�a�v�e� �t�h�e� �s�a�m�e� �s�e�m�a�n�t�i�c�s� �a�s� �b�o�o�l� �a�n�d� �s�o� � � � �p�r�o�b�a�b�l�y� �s�h�o�u�l�d� �b�e� �d�i�s�a�l�l�o�w�e�d�,� �b�e�c�a�u�s�e� �t�h�o�s�e� �a�r�e� �d�i�f�f�e�r�e�n�t� �t�y�p�e�s� �c�o�m�p�a�t�i�b�l�e� � � � �w�i�t�h� �b�o�o�l�.� �D�e�p�e�n�d�i�n�g� �o�n� �t�h�e� �r�e�s�o�l�u�t�i�o�n� �o�f� �t�h�e� �p�r�e�v�i�o�u�s� �c�o�m�m�e�n�t�,� �i�t� �m�i�g�h�t� �a�l�s�o� � � � �n�o�t� �d�i�s�a�l�l�o�w� �_�A�t�o�m�i�c� �b�o�o�l� �i�f� �t�h�a�t� �c�a�n� �b�e� �d�i�f�f�e�r�e�n�t� �f�r�o�m� �a�t�o�m�i�c�_�b�o�o�l�.� � � � �Z � � � �A�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �f�i�r�s�t� �s�e�n�t�e�n�c�e�,� �c�h�a�n�g�e� � a�t�o�m�i�c� �i�n�t�e�g�e�r� �t�y�p�e� �t�o� � � � � a�t�o�m�i�c� �i�n�t�e�g�e�r� �t�y�p�e� �o�t�h�e�r� �t�h�a�n� �_�A�t�o�m�i�c� �b�o�o�l� �o�r� �t�h�e� �a�t�o�m�i�c� �v�e�r�s�i�o�n� �o�f� �a�n� � � � �e�n�u�m�e�r�a�t�i�o�n� �w�i�t�h� �u�n�d�e�r�l�y�i�n�g� �t�y�p�e� �b�o�o�l� .� �R�e�m�o�v�e� �t�h�e� �s�e�c�o�n�d� �s�e�n�t�e�n�c�e�.� �I�f� �t�h�e� � � � �f�i�r�s�t� �p�r�o�p�<� o�s�e�d� �c�h�a�n�g�e� �f�o�r� �t�h�e� �p�r�e�v�i�o�u�s� �c�o�m�m�e�n�t� �i�s� �n�o�t� �a�c�c�e�p�t�e�d�,� � ,� � � � �a�t�o�m�i�c�_�b�o�o�l�,� �s�h�o�u�l�d� �b�e� �i�n�s�e�r�t�e�d� �b�e�f�o�r�e� � o�r� .� � � � ��� GB-198 ú� � � � � t�h�e� �c�o�m�p�o�u�n�d� �a�s�s�i�g�n�m�e�n�t� �o�p�e�r�a�t�o�r�s� �a�r�e� �n�o�t� �g�u�a�r�a�n�t�e�e�d� �t�o� �o�p�e�r�a�t�e� � � � �a�t�o�m�i�c�a�l�l�y� �i�s� �i�n�c�o�r�r�e�c�t�;� �t�h�e�y� �a�r�e� �d�e�f�i�n�e�d� �a�s� �m�e�m�o�r�y�_�o�r�d�e�r�_�s�e�q�_�c�s�t� � � � �o�p�e�r�a�t�i�o�n�s�.� �H�o�w�e�v�e�r�,� �o�t�h�e�r� �d�i�f�f�e�r�e�n�c�e�s� �w�i�t�h� �t�h�e� �c�o�m�p�o�u�n�d� �a�s�s�i�g�n�m�e�n�t� �o�p�e�r�a�t�o�r�s� � � � �a�r�e� �n�o�t� �m�e�n�t�i�o�n�e�d� �h�e�r�e�.� � � � � � � � �C�h�a�n�g�e� � T�h�e� �o�n�l�y� �d�i�f�f�e�r�e�n�c�e�s� �a�r�e� �t�h�a�t� �t�h�e� �c�o�m�p�o�u�n�d� �a�s�s�i�g�n�m�e�n�t� � � � �o�p�e�r�a�t�o�r�s� �a�r�e� �n�o�t� �g�u�a�r�a�n�t�e�e�d� �t�o� �o�p�e�r�a�t�e� �a�t�o�m�i�c�a�l�l�y�,� �a�n�d� �t�o� � T�h�e� �o�n�l�y� � � � �d�i�f�f�e�r�e�n�c�e�s� �a�r�e� �t�h�a�t� �t�h�e� �c�o�m�p�o�u�n�d� �a�s�s�i�g�n�m�e�n�t� �o�p�e�r�a�t�o�r�s� �h�a�v�e� �u�n�d�e�f�i�n�e�d� � � � �b�e�h�a�v�i�o�r� �o�n� �s�i�g�n�e�d� �i�n�t�e�g�e�r� �o�v�e�r�f�l�o�w�,� �s�u�p�p�o�r�t� �m�o�r�e� �t�y�p�e�s�,� �a�n�d� .� � � � ��� GB-199 �� 7.18 X� The practice used for paragraph numbering in this subclause does not match that used elsewhere. In this subclause only the Synopsis for each function family is numbered; the practice used elsewhere would indicate having three numbered paragraphs in each Description / Returns, where at present the paragraphs are unnumbered. ;�� Add the paragraph numbers in Description / Returns. �� NEN/NL7-200 �� Users have commented that the bit utility functions would be easier to read if the suffix had a leading underscore in front of it. ±� � � � �A�d�d� �a� � _� �b�e�f�o�r�e� �t�h�e� � u�s� ,� � u�i� ,� � � � � u�c� ,� � u�l� �a�n�d� � u�l�l� �s�u�f�f�i�x�e�s� �f�o�r� �t�h�e� �f�u�n�c�t�i�o�n�s� �p�r�e�s�e�n�t� �i�n� �t�h�i�s� �c�l�a�u�s�e� �a�n�d� � � � �a�n�y� �a�d�d�e�d� �b�e�f�o�r�e� �t�h�e� �f�i�n�a�l� �r�e�v�i�s�i�o�n� �o�f� �t�h�i�s� �C� �s�t�a�n�d�a�r�d�.� � � � ��� NEN/NL3-201 ¥ � � � �D�u�e� �t�o� �t�i�m�e� �c�o�n�s�t�r�a�i�n�t�s� �a�n�d� �w�o�r�d�i�n�g� �i�s�s�u�e�s�,� �f�u�n�d�a�m�e�n�t�a�l� �b�i�t� �u�t�i�l�i�t�i�e�s� � � � �f�o�u�n�d� �i�n� �N�3�0�2�2�.� �O�n�e� �o�f� �t�h�e� �c�h�i�e�f� �i�s�s�u�e�s� �w�a�s� �i�n� �t�h�e� �p�r�o�p�o�s�a�l� �t�r�y�i�n�g� �t�o� � � � �a�c�c�o�m�m�o�d�a�t�e� �C�H�A�R�_�B�I�T� �`" �8� �p�l�a�t�f�o�r�m�s� �(�i�n� �p�a�r�t�i�c�u�l�a�r�,� �a�l�l�o�w� �a�n�y� �p�l�a�t�f�o�r�m� �w�h�e�r�e� � � � �C�H�A�R�_�B�I�T� �w�a�s� �a� �m�u�l�t�i�p�l�e� �o�f� �8�,� �s�u�c�h� �a�s� �C�H�A�R�_�B�I�T� �a" �1�6�,�3�2�,� �o�r� �6�4�)�.� �W�h�i�l�e� �n�o�b�l�e�,� � � � �t�h�i�s� �e�f�f�e�c�t�i�v�e�l�y� �t�a�n�k�e�d� �u�s�e�f�u�l� �f�u�n�c�t�i�o�n�a�l�i�t�y� �t�h�a�t� �c�o�u�l�d� �b�e� �p�r�e�s�e�n�t� �i�f� �t�h�e�s�e� � � � �c�o�n�t�e�n�t�i�o�n�s� �w�e�r�e� �n�o�t� �p�r�e�s�e�n�t�.� � � � � � � � �T�w�o� �p�o�t�e�n�t�i�a�l� �c�h�a�n�g�e�s� �b�a�s�e�d� �o�n� �N�3�0�2�2� �s�h�o�u�l�d� �b�e� �p�o�l�l�e�d� �b�y� �t�h�e� � � � �C�o�m�m�i�t�t�e�e�:� � � � � �A�c�c�e�p�t� � E�n�d�i�a�n� �A�w�a�r�e� �L�o�a�d�/�S�t�o�r�e� ,� �b�u�t� �w�i�t�h� � � � �t�h�e� �c�h�a�n�g�e� �t�h�a�t� �C�H�A�R�_�B�I�T� �m�u�s�t� �b�e� �e�q�u�i�v�a�l�e�n�t� �t�o� �8�.� � � � � �A�c�c�e�p�t� � M�e�m�o�r�y� �R�e�v�e�r�s�a�l� ,� �b�u�t� �w�i�t�h� �t�h�e� �c�h�a�n�g�e� � � � �t�h�a�t� �C�H�A�R�_�B�I�T� �m�u�s�t� �b�e� �e�q�u�i�v�a�l�e�n�t� �t�o� �8�.� � � � ��� NEN/NL2-202 � Due to time constraints and wording issues, fundamental bit utilities found in N3022 were not voted on, despite some entities and representatives donating extra time to try. We believe that some effort should be made again to add the rotate bit functionality. ô� � � � �P�o�l�l� �w�h�e�t�h�e�r� �t�h�e� �c�o�m�m�i�t�t�e�e� �s�h�o�u�l�d� �a�c�c�e�p�t� � R�o�t�a�t�e� �L�e�f�t� �a�n�d� � R�o�t�a�t�e� � � � �R�i�g�h�t� �f�u�n�c�t�i�o�n�s�,� �w�i�t�h� �t�h�e� �c�a�v�e�a�t� �t�h�a�t� �t�h�e�y� �u�s�e� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r�s�.� �T�h�i�s� � � � �r�e�m�o�v�e�s� �t�h�e� �u�n�d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r� �i�s�s�u�e� �f�o�r� �d�e�a�l�i�n�g� �w�i�t�h� �t�h�e� �m�o�s�t� �n�e�g�a�t�i�v�e� � � � �a�r�g�u�m�e�n�t� �v�a�l�u�e�s�.� � � � ��� US 58 -203 �� 7.18.* ò�� From N3022 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3022.htm section 5.1.2 Question 1 Use unsigned integers for the function parameters for counts and the count-like return value types. b� Change the return types for the following functions: · stdc_count_ones(and all derivatives) from inttounsignedint · stdc_count_zeros(and all derivatives) frominttounsignedint · stdc_leading_ones(and all derivatives) frominttounsignedint · stdc_leading_zeros(and all derivatives) from inttounsignedint · stdc_trailing_ones(and all derivatives) fromint tounsignedint · stdc_trailing_zeros(and all derivatives) frominttounsignedint · stdc_first_leading_one(and all derivatives) from inttounsignedint · stdc_first_leading_zero(and all derivatives) from inttounsignedint · stdc_first_trailing_one(and all derivatives) from inttounsignedint · stdc_first_trailing_zero(and all derivatives) from inttounsignedint stdc_bit_width(and all derivatives) from inttounsignedint �� NEN/NL4-204 -�� 7.18.3 to 7.18.12, 7.18.14 �� (all) (� The bit and byte utilities which count the number of bits under some criteria have fine definitions but return signed numbers. Signed numbers have undefined behavior associated with their usage and present representation problems when maximally negative integer values are used. E � � � �C�h�a�n�g�e� �a�l�l� �o�f� �t�h�e� �s�y�n�o�p�s�e�s� �a�n�d� �d�e�f�i�n�i�t�i�o�n�s� �f�o�r� �t�h�e� �f�o�l�l�o�w�i�n�g� � � � �f�u�n�c�t�i�o�n�s�/�m�a�c�r�o�s� �w�i�t�h� �t�h�e� �g�i�v�e�n� �p�r�e�f�i�x� �t�o� �r�e�t�u�r�n� � u�n�s�i�g�n�e�d� � � � �i�n�t� �o�r� � s�u�i�t�a�b�l�y� �l�a�r�g�e� �u�n�s�i�g�n�e�d� � � � �i�n�t�e�g�e�r�(�t�y�p�e�)� �n�u�m�b�e�r�s�:� � � � �s�t�d�c�_�b�i�t�_�w�i�d�t�h�,� �s�t�d�c�_�c�o�u�n�t�_�(�o�n�e�s�/�z�e�r�o�s�)�,� �s�t�d�c�_�f�i�r�s�t�_�(�l�e�a�d�i�n�g�/�t�r�a�i�l�i�n�g�)�_�(�o�n�e�/�z�e�r�o�)�,� � � � �s�t�d�c�_�c�o�u�n�t�_�(�l�e�a�d�i�n�g�/�t�r�a�i�l�i�n�g�_�(�o�n�e�s�/�z�e�r�o�s�)�.� � � � ��� GB-205 �� 7.18.11, 7.18.14 ¿�� There is no apparent reason for the wording about generic_return_type for stdc_count_zeros and stdc_bit_width to be different from that used for other similar generic functions. µ�� Replace the two sentences about generic_return_type for stdc_count_zeros (7.18.11) and stdc_bit_width (7.18.14) by a copy of the one sentence used for stdc_count_ones. �� US 59 -206 �� 7.18.17 Ó�� From N3022 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3022.htm section 5.1.1 Question 0 Adopt an UnsignedType stdc_rotate(UnsignedTypevalue,intcount); I � � � �7�.�1�8�.�1�7� � � � �R�o�t�a�t�e� � � � �S�y�n�o�p�s�i�s� � � � �u�n�s�i�g�n�e�d� �c�h�a�r� � � � �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�u�c�(�u�n�s�i�g�n�e�d� �c�h�a�r� �v�a�l�u�e�,� �i�n�t� �c�o�u�n�t�)�;� � � � �u�n�s�i�g�n�e�d� �s�h�o�r�t� � � � �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�u�s�(�u�n�s�i�g�n�e�d� �s�h�o�r�t� �v�a�l�u�e�,� �i�n�t� �c�o�u�n�t�)�;� � � � �u�n�s�i�g�n�e�d� �i�n�t� �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�u�i�(�u�n�s�i�g�n�e�d� � � � �i�n�t� �v�a�l�u�e�,� �i�n�t� �c�o�u�n�t�)�;� � � � �u�n�s�i�g�n�e�d� �l�o�n�g� � � � �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�u�l�(�u�n�s�i�g�n�e�d� �l�o�n�g� �v�a�l�u�e�,� �i�n�t� �c�o�u�n�t�)�;� � � � �u�n�s�i�g�n�e�d� �l�o�n�g� �l�o�n�g� � � � �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�u�l�l�(�u�n�s�i�g�n�e�d� �l�o�n�g� �l�o�n�g� �v�a�l�u�e�,� �i�n�t� �c�o�u�n�t�)�;� � � � �<�  � � � �g�e�n�e�r�i�c�_�v�a�l�u�e�_�t�y�p�e� � � � �s�t�d�c�_�r�o�t�a�t�e�_�l�e�f�t�(� � � � � � � � � � �g�e�n�e�r�i�c�_�v�a�l�u�e�_�t�y�p�e� � � � �v�a�l�u�e�,� �g�e�n�e�r�i�c�_�c�o�u�n�t�_�t�y�p�e� �c�o�u�n�t�)�;� � � � �D�e�s�c�r�i�p�t�i�o�n� � � � �T�h�e� �s�t�d�c�_�r�o�t�a�t�e� �f�u�n�c�t�i�o�n�s� �p�e�r�f�o�r�m� �a� �b�i�t�w�i�s�e� �r�o�t�a�t�e� �l�e�f�t� �o�r� �r�i�g�h�t�.� �T�h�i�s� �o�p�e�r�a�t�i�o�n� �i�s� � � � �t�y�p�i�c�a�l�l�y� �k�n�o�w�n� �a�s� �a� �l�e�f�t� �o�r� �r�i�g�h�t� �c�i�r�c�u�l�a�r� �s�h�i�f�t�.� � � � �R�e�t�u�r�n�s� � � � �L�e�t� � � � �N� �b�e� �t�h�e� �w�i�d�t�h� �c�o�r�r�e�s�p�o�n�d�i�n�g� �t�o� �t�h�e� �t�y�p�e� �o�f� �t�h�e� �i�n�p�u�t� �v�a�l�u�e�.� �L�e�t� �r� �b�e� �c�o�u�n�t� �%� � � � �N�.� � � � � �I�f� � � � �r� �i�s� �0�,� �r�e�t�u�r�n�s� �v�a�l�u�e�;� � � � � � � � �o�t�h�e�r�w�i�s�e�,� �i�f� �r� �i�s� �p�o�s�i�t�i�v�e�,� �r�e�t�u�r�n�s� �(�v�a�l�u�e� �&�l�t�;�&�l�t�;� �r�)� �|� �(�v�a�l�u�e� �&�g�t�;�&�g�t�;� �(�N� � � � �-� �r�)�)�;� � � � � � � � �o�t�h�e�r�w�i�s�e�,� �i�f� �r� �i�s� �n�e�g�a�t�i�v�e�,� �r�e�t�u�r�n�s� �(�v�a�l�u�e� �&�g�t�;�&�g�t�;� �-�r�)� �|� �(�v�a�l�u�e� �&�l�t�;�&�l�t�;� �(�N� � � � �-� �-�r�)�)�.� � � � �T�h�e� � � � �t�y�p�e�-�g�e�n�e�r�i�c� �f�u�n�c�t�i�o�n� �(�m�a�r�k�e�d� �b�y� �i�t�s� �g�e�n�e�r�i�c�_�v�a�l�u�e�_�t�y�p�e� �a�r�g�u�m�e�n�t�)� �r�e�t�u�r�n�s� �t�h�e� � � � �a�b�o�v�e�-�d�e�s�c�r�i�b�e�d� �r�e�s�u�l�t� �f�o�r� �a� �g�i�v�e�n� �i�n�p�u�t� �v�a�l�u�e� �s�o� �l�o�n�g� �a�s� �t�h�e� � � � �g�e�n�e�r�i�c�_�v�a�l�u�e�_�t�y�p�e� �i�s� �a�n� � � � � � � � �s�t�a�n�d�a�r�d� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�,� �e�x�c�l�u�d�i�n�g� �b�o�o�l�;� � � � � � � � �e�x�t�e�n�d�e�d� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�;� � � � � �o�r� � � � �b�i�t�-�p�r�e�c�i�s�e� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� �w�h�o�s�e� �w�i�d�t�h� �m�a�t�c�h�e�s� �a� �s�t�a�n�d�a�r�d� �o�r� �e�x�t�e�n�d�e�d� � � � �i�n�t�e�g�e�r� �t�y�p�e�,� �e�x�c�l�u�d�i�n�g� �b�o�o�l�.� � � � �T�h�e� � � � �g�e�n�e�r�i�c�_�r�e�t�u�r�n�_�t�y�p�e� �t�y�p�e� �s�h�a�l�l� �b�e� �s�u�i�t�a�b�l�y� �l�a�r�g�e� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� � � � �c�a�p�a�b�l�e� �o�f� �r�e�p�r�e�s�e�n�t�i�n�g� �t�h�e� �w�i�d�t�h� �o�f� �t�h�e� �c�o�m�p�u�t�e�d� �r�e�s�u�l�t�.� �T�h�e� � � � �g�e�n�e�r�i�c�_�c�o�u�n�t�_�t�y�p�e� �s�h�a�l�l� �b�e� �a� �s�i�g�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e�.� � � � � � � � ��� GB-207 �� 7.22.1.5 �� footnote 321 a�� This footnote should mention bit-precise types as possibly being wider than uintmax_t. Z� � � � �C�h�a�n�g�e� � e�x�c�e�p�t�i�o�n� �o�f� �t�o� � e�x�c�e�p�t�i�o�n� �o�f� �u�n�s�i�g�n�e�d� �b�i�t�-�p�r�e�c�i�s�e� � � � �i�n�t�e�g�e�r� �t�y�p�e�s� �a�n�d� .� � � � ��� GB-208 �� 7.22.5 N� � � � � 0� �o�f� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �t�y�p�e� �d�o�e�s�n� t� �a�l�l�o�w� �f�o�r� �i�n�t�e�g�e�r� � � � �p�r�o�m�o�t�i�o�n�s�.� � � � �i� � � � �A�f�t�e�r� � 0� �o�f� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �t�y�p�e� �i�n�s�e�r�t� � ,� �c�o�n�v�e�r�t�e�d� �a�c�c�o�r�d�i�n�g� � � � �t�o� �t�h�e� �i�n�t�e�g�e�r� �p�r�o�m�o�t�i�o�n�s�,� .� � � � ��� GB-209 �� 7.23.2 �� 7-8 `� AG Reference Bug 689 (https://austingroupbugs.net/view.php?id=689) ======= Title: Possibly unintended allowance for stdio deadlock 7.23.2 Streams states: 7   Each stream has an associated lock that is used to prevent data races when multiple threads of execution access a stream, and to restrict the interleaving of stream operations performed by multiple threads.  Only one thread may hold this lock at a time. The lock is reentrant: a single thread may hold the lock multiple times at a given time. 8   All functions that read, write, position, or query the position of a stream lock the stream before accessing it. They release the lock associated with the stream when the access is complete. and 7.23.3 Files states in para 3:     When a stream is line buffered, characters are intended to be transmitted to or from the host environment as a block when a new-line character is encountered. Furthermore, characters are intended to be transmitted as a block to the host environment when a buffer is filled, when input is requested on an unbuffered stream, or when input is requested on a line buffered stream that requires the transmission of characters from the host environment. Although support for the latter is implementation-defined, if the "when input is requested" parts are implemented, it creates the potential for deadlock. For example, if thread A is holding the lock associated with a line-buffered output stream and its progress is blocked waiting for thread B to do something, and thread B happens to use stdio for reading any unbuffered (or line buffered with an empty buffer) stream as part of its operation, the requirement in 7.23.2 para 8 means the program will deadlock. This behavior seems highly undesirable and unintended. q� Requiring deadlock detection seems too onerous, given that POSIX makes it optional for pthread_mutex_lock, but perhaps there ought at least to be an attempt at detection.  The question is then what to do if deadlock is not detected but nor has it been established that a deadlock situation does not exist. Since implementing support for the flush is optional anyway, just not doing the flush seems like an acceptable solution. After:     All functions that read, write, position, or query the position of a stream lock the stream before accessing it. They release the lock associated with the stream when the access is complete. add:     If the lock is not immediately available, the function waits for it to become available, except in the following circumstances.  If the stream is line buffered and is open for writing or for update, and the reason the function is attempting to lock the stream is because it is going to request input on another stream that is unbuffered, or is line buffered and requires the transmission of characters from the host environment (see 7.23.3), then the function attempts to determine whether a deadlock situation exists.  If a deadlock situation is found to exist, the function shall fail.  If the function is able to establish that a deadlock situation does not exist, it shall wait for the lock to become available. If the function does not establish whether or not a deadlock situation exists, it shall continue as if it had already locked the stream, found its buffer to be empty, and released the lock. �� GB-210 �� 7.23.5.3 ²�� The undefined behaviour with the mode string would seem to be better classified as implementation defined (which forces a conforming implementation to document it). =� � � � �C�h�a�n�g�e� � i�s� �u�n�d�e�f�i�n�e�d� �t�o� � i�s� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� .� � � � ��� IE-211 _�� Adopt changes from N3059 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3059.pdf ³ � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� � � � �1�.�1�:� � � � �O�p�e�n�i�n�g� �a� �f�i�l�e� �w�i�t�h� �e�x�c�l�u�s�i�v�e� �m�o�d�e� �(� x� �a�s� �t�h�e� �l�a�s�t� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �m�o�d�e� � � � �a�r�g�u�m�e�n�t�)� �f�a�i�l�s� �i�f� �t�h�e� �f�i�l�e� �a�l�r�e�a�d�y� �e�x�i�s�t�s� �o�r� �c�a�n�n�o�t� �b�e� �c�r�e�a�t�e�d�.� �O�t�h�e�r�w�i�s�e�,� �t�h�e� �f�i�l�e� �i�s� �c�r�e�a�t�e�d� �w�i�t�h� �e�x�c�l�u�s�i�v�e� �(�a�l�s�o� � � � �k�n�o�w�n� �a�s� �n�o�n�-�s�h�a�r�e�d�)� �a�c�c�e�s�s� �t�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� �s�u�p�p�o�r�t�s� � � � �e�x�c�l�u�s�i�v�e� �a�c�c�e�s�s�.� �T�h�e� �c�h�e�c�k� �f�o�r� �t�h�e� �e�x�i�s�t�e�n�c�e� �o�f� �t�h�e� �f�i�l�e� �a�n�d� �t�h�e� �c�r�e�a�t�i�o�n� � � � �o�f� �t�h�e� �f�i�l�e� �i�f� �i�t� �d�o�e�s� �n�o�t� �e�x�i�s�t� �i�s� �a�t�o�m�i�c� �w�i�t�h� �r�e�s�p�e�c�t� �t�o� �o�t�h�e�r� �t�h�r�e�a�d�s� �a�n�d� � � � �p�r�o�c�e�s�s�e�s�.� �I�f� �t�<� �he implementation is not capable of performing the check for the existence of the file and the creation of the file atomically, it shall fail instead of performing a non-atomic check and creation. �� US 60 -212 }�� Adopt changes from N3059 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3059.pdf Ë � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� �1�.�1�:� � � � �O�p�e�n�i�n�g� �a� �f�i�l�e� �w�i�t�h� �e�x�c�l�u�s�i�v�e� �m�o�d�e� �(� x� �a�s� �t�h�e� �l�a�s�t� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �m�o�d�e� � � � �a�r�g�u�m�e�n�t�)� �f�a�i�l�s� �i�f� �t�h�e� �f�i�l�e� �a�l�r�e�a�d�y� �e�x�i�s�t�s� �o�r� �c�a�n�n�o�t� �b�e� �c�r�e�a�t�e�d�.� �O�t�h�e�r�w�i�s�e�,� �t�h�e� �f�i�l�e� �i�s� �c�r�e�a�t�e�d� �w�i�t�h� �e�x�c�l�u�s�i�v�e� �(�a�l�s�o� � � � �k�n�o�w�n� �a�s� �n�o�n�-�s�h�a�r�e�d�)� �a�c�c�e�s�s� �t�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� �s�u�p�p�o�r�t�s� � � � �e�x�c�l�u�s�i�v�e� �a�c�c�e�s�s�.� �T�h�e� �c�h�e�c�k� �f�o�r� �t�h�e� �e�x�i�s�t�e�n�c�e� �o�f� �t�h�e� �f�i�l�e� �a�n�d� �t�h�e� �c�r�e�a�t�i�o�n� � � � �o�f� �t�h�e� �f�i�l�e� �i�f� �i�t� �d�o�e�s� �n�o�t� �e�x�i�s�t� �i�s� �a�t�o�m�i�c� �w�i�t�h� �r�e�s�p�e�c�t� �t�o� �o�t�h�e�r� �t�h�r�e�a�d�s� �a�n�d� � � � �p�r�o�c�e�s�s�e�s�.� �I�f� �t�h�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �i�s� �n�o�t� �c�a�p�a�b�l�e� �o�f� �p�e�r�f�o�r�m�i�n�g� �t�h�e� �c�h�e�c�k� �f�o�r� � � � �t�h�e� �e�x�i�s�t�e�n�c�e� �o�f� �t�h�e� �f�i�l�e� �a�n�d� �t�h�e� �c�r�e�a�t�i�o�n� �o�f� �t�h�e� �f�i�l�e� �a�t�o�m�i�c�a�l�l�y�,� �i�t� �s�h�a�l�l� � � � �f�a�i�l� �i�n�s�t�e�a�d� �o�f� �p�e�r�f�o�r�m�i�n�g� �a� �n�o�n�-�a�t�o�m�i�c� �c�h�e�c�k� �a�n�d� �c�r�e�a�t�i�o�n�.� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� IE-213 [�� Adopt changes from N3059 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3059.pdf Õ � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� � � � �1�.�2�:� � � � �O�p�e�n�i�n�g� �a� �f�i�l�e� �w�i�t�h� �a�p�p�e�n�d� �m�o�d�e� �(� a� �a�s� �t�h�e� �f�i�r�s�t� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �m�o�d�e� � � � �a�r�g�u�m�e�n�t�)� �c�a�u�s�e�s� �a�l�l� �s�u�b�s�e�q�u�e�n�t� �w�r�i�t�e�s� �t�o� �t�h�e� �f�i�l�e� �t�o� �b�e� �f�o�r�c�e�d� �t�o� �t�h�e� � � � �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �a�t� �t�h�e� �p�o�i�n�t� �o�f� �b�u�f�f�e�r� �f�l�u�s�h� �o�r� �a�c�t�u�a�l� �w�r�i�t�e�,� � � � �r�e�g�a�r�d�l�e�s�s� �o�f� �i�n�t�e�r�v�e�n�i�n�g� �c�a�l�l�s� �t�o� �t�h�e� �f�s�e�e�k� �f�u�n�c�t�i�o�n�,� � � � �f�s�e�t�p�o�s�,� �o�r� �r�e�w�i�n�d� �f�u�n�c�t�i�o�n�s�.� �I�n�c�r�e�m�e�n�t�i�n�g� �t�h�e� �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �b�y� �t�h�e� �a�m�o�u�n�t� �o�f� � � � �d�a�t�a� �w�r�i�t�t�e�n� �i�s� �a�t�o�m�i�c� �w�i�t�h� �r�e�s�p�e�c�t� �t�o� �o�t�h�e�r� �t�h�r�e�a�d�s� �w�r�i�t�i�n�g� �t�o� �t�h�e� �s�a�m�e� �f�i�l�e� � � � �p�r�o�v�i�d�e�d� �t�h�e� �f�i�l�e� �w�a�s� �a�l�s�o� �o�p�e�n�e�d� �i�n� �a�p�p�e�n�d� �m�o�d�e�.� �I�f� �t�h�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �i�s� � � � �n�o�t� �c�a�p�a�b�l�e� �o�f� �i�n�c�r�e�m�e�n�t�i�n�g� �t�h�e� �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �a�t�o�m�i�c�a�l�l�y�,� �i�t� �s�h�a�l�l� �f�a�i�l� � � � �i�n�s�t�e�a�d� �o�f� �p�e�r�f�o�r�m�i�n�g� �n�o�n�-�a�t�o�m�i�c� �e�n�d�-�o�f�-�f�i�l�e� �w�r�i�t�e�s�.� �I�n� �s�o�m�e� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n�s�,� �o�p�e�n�i�n�g� �a� �b�i�n�a�r�y� �f�i�l�e� �w�i�t�h� �a�p�p�e�n�d� �m�o�d�e� �(� b� �a�s� �t�h�e� �s�e�c�o�n�d� �o�r� � � � �t�h�i�r�d� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �a�b�o�v�e� �l�i�s�t� �o�f� �m�o�d�e� �a�r�g�u�m�e�n�t� �v�a�l�u�e�s�)� �m�a�y� �i�n�i�t�i�a�l�l�y� � � � �p�o�s�i�t�i�o�n� �t�h�e� �f�i�l�e� �p�o�s�i�t�i�o�n� �i�n�d�i�c�a�t�o�r� �f�o�r� �t�h�e� �s�t�r�e�a�m� �b�e�y�o�n�d� �t�h�e� �l�a�s�t� �d�a�t�a� � � � �w�r�i�t�t�e�n�,� �b�e�c�a�u�s�e� �o�f� �n�u�l�l� �c�h�a�r�a�c�t�e�r� �p�a�d�d�i�n�g�.� � � � ��� US 61 -214 |�� Adopt changes from N3059 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3059.pdf í � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� �1�.�2�:� � � � �O�p�e�n�i�n�g� �a� �f�i�l�e� �w�i�t�h� �a�p�p�e�n�d� �m�o�d�e� �(� a� �a�s� �t�h�e� �f�i�r�s�t� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �m�o�d�e� � � � �a�r�g�u�m�e�n�t�)� �c�a�u�s�e�s� �a�l�l� �s�u�b�s�e�q�u�e�n�t� �w�r�i�t�e�s� �t�o� �t�h�e� �f�i�l�e� �t�o� �b�e� �f�o�r�c�e�d� �t�o� �t�h�e� � � � �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �a�t� �t�h�e� �p�o�i�n�t� �o�f� �b�u�f�f�e�r� �f�l�u�s�h� �o�r� �a�c�t�u�a�l� �w�r�i�t�e�,� � � � �r�e�g�a�r�d�l�e�s�s� �o�f� �i�n�t�e�r�v�e�n�i�n�g� �c�a�l�l�s� �t�o� �t�h�e� �f�s�e�e�k� �f�u�n�c�t�i�o�n�,� � � � �f�s�e�t�p�o�s�,� �o�r� �r�e�w�i�n�d� �f�u�n�c�t�i�o�n�s�.� �I�n�c�r�e�m�e�n�t�i�n�g� �t�h�e� �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �b�y� �t�h�e� �a�m�o�u�n�t� �o�f� � � � �d�a�t�a� �w�r�i�t�t�e�n� �i�s� �a�t�o�m�i�c� �w�i�t�h� �r�e�s�p�e�c�t� �t�o� �o�t�h�e�r� �t�h�r�e�a�d�s� �w�r�i�t�i�n�g� �t�o� �t�h�e� �s�a�m�e� �f�i�l�e� � � � �p�r�o�v�i�d�e�d� �t�h�e� �f�i�l�e� �w�a�s� �a�l�s�o� �o�p�e�n�e�d� �i�n� �a�p�p�e�n�d� �m�o�d�e�.� �I�f� �t�h�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �i�s� � � � �n�o�t� �c�a�p�a�b�l�e� �o�f� �i�n�c�r�e�m�e�n�t�i�n�g� �t�h�e� �c�u�r�r�e�n�t� �e�n�d�-�o�f�-�f�i�l�e� �a�t�o�m�i�c�a�l�l�y�,� �i�t� �s�h�a�l�l� �f�a�i�l� � � � �i�n�s�t�e�a�d� �o�f� �p�e�r�f�o�r�m�i�n�g� �n�o�n�-�a�t�o�m�i�c� �e�n�d�-�o�f�-�f�i�l�e� �w�r�i�t�e�s�.� �I�n� �s�o�m�e� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n�s�,� �o�p�e�n�i�n�g� �a� �b�i�n�a�r�y� �f�i�l�e� �w�i�t�h� �a�p�p�e�n�d� �m�o�d�e� �(� b� �a�s� �t�h�e� �s�e�c�o�n�d� �o�r� � � � �t�h�i�r�d� �c�h�a�r�a�c�t�e�r� �i�n� �t�h�e� �a�b�o�v�e� �l�i�s�t� �o�f� �m�o�d�e� �a�r�g�u�m�e�n�t� �v�a�l�u�e�s�)� �m�a�y� �i�n�i�t�i�a�l�l�y� � � � �p�o�s�i�t�i�o�n� �t�h�e� �f�i�l�e� �p�o�s�i�t�i�o�n� �i�n�d�i�c�a�t�o�r� �f�o�r� �t�h�e� �s�t�r�e�a�m� �b�e�y�o�n�d� �t�h�e� �l�a�s�t� �d�a�t�a� � � � �w�r�i�t�t�e�n�,� �b�e�c�a�u�s�e� �o�f� �n�u�l�l� �c�h�a�r�a�c�t�e�r� �p�a�d�d�i�n�g�.� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� US 62 -215 �� 7.23.6.1 �� paragraph 6 V� � � � �I�n� �t�h�e� � #� �b�u�l�l�e�t�,� �t�h�e� � b� �i�n� � F�o�r� �b� � � � �c�o�n�v�e�r�s�i�o�n�,� �&  �h�a�s� �t�h�e� �w�r�o�n�g� �t�y�p�e�f�a�c�e�.� � � � �T� � � � �I�n� �t�h�e� � #� �b�u�l�l�e�t�,� �f�i�x� �t�h�e� �t�y�p�e�f�a�c�e� �f�o�r� �t�h�e� � � � � b� �i�n� � F�o�r� �b� �c�o�n�v�e�r�s�i�o�n�,� �&  .� � � � ��� US 63 -216 �� paragraph 8 + � � � �I�n� �t�h�e� �a�,�A� �b�u�l�l�e�t�,� �i�n� �t�h�e� �t�e�x�t� �b�e�g�i�n�n�i�n�g� �w�i�t�h�,� � � � � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� �i�s� �p�r�e�s�e�n�t� ,� �t�h�e� �c�a�p�i�t�a�l�i�z�a�t�i�o�n� �a�n�d� �i�t�a�l�i�c�s� �f�o�r� �t�h�e� �p� s� � � � �i�s� �w�r�o�n�g�.� �T�h�e� �(�f�o�r�m�a�t�t�i�n�g�)� �p�r�e�c�i�s�i�o�n� �i�s� �d�e�n�o�t�e�d� �P� �(�u�p�p�e�r� �c�a�s�e�,� �i�t�a�l�i�c�)�;� � � � �t�h�e� �f�o�r�m�a�t� �o�f� �t�h�e� �(�d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g�)� �t�y�p�e� �i�s� �d�e�n�o�t�e�d� �b�y� �p� �(�l�o�w�e�r� �c�a�s�e�,� � � � �i�t�a�l�i�c�)�.� � � � � � � � � �Þ � � � �I�n� �t�h�e� �a�,�A� �b�u�l�l�e�t�,� �c�h�a�n�g�e� �t�h�e� �c�a�p�i�t�a�l�i�z�a�t�i�o�n� � � � �a�n�d� �i�t�a�l�i�c�s� �o�f� �t�h�e� �p� s� �i�n� �t�h�e� �t�e�x�t� �b�e�g�i�n�n�i�n�g� �w�i�t�h�,� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� �i�s� � � � �p�r�e�s�e�n�t� �t�o� �g�e�t� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �P� �i�s� �p�r�e�s�e�n�t� �(�i�n� �t�h�e� � � � �c�o�n�v�e�r�s�i�o�n� �s�p�e�c�i�f�i�c�a�t�i�o�n�)� �a�n�d� �i�s� �z�e�r�o� �o�r� �a�t� �l�e�a�s�t� �a�s� �l�a�r�g�e� �a�s� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� � � � �(�5�.�2�.�4�.�2�.�2�)� �o�f� �t�h�e� �d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e�,� �t�h�e� �c�o�n�v�e�r�s�i�o�n� �i�s� �a�s� �i�f� �t�h�e� � � � �p�r�e�c�i�s�i�o�n� �w�e�r�e� �m�i�s�s�i�n�g�.� �I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �P� �i�s� �p�r�e�s�e�n�t� �(�a�n�d� �n�o�n�z�e�r�o�)� � � � �a�n�d� �l�e�s�s� �t�h�a�n� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� �o�f� �t�h�e� �d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� �t�y�p�e� �&  .� � � � ��� FR-217 %�� 7.23.6.1 and 7.31.2.1 �� Make %B optional �� GB-218 J�� 7.23.6.1, 7.23.6.2, 7.24.1.3, 7<� �.29.3.5, 7.31.2.1, 7.31.2.2 2� Similar to the above comment on 7.23.5.2 fopen the undefined behaviour with an invalid conversion specification would be better stated as being an implementation defined behaviour because the implementation can choose how to handle the invalid specification, and its not the same problem arising from a mismatch between the type indicated in the format specification and the type of the object supplied as a function argument, which is UB. (Note that unsupported %wN and %wfN are defined as errors rather than as undefined behavior.) * � � � �I�n� �e�a�c�h� �a�p�p�r�o�p�r�i�a�t�e� �p�l�a�c�e� �(�d�e�p�e�n�d�i�n�g� �o�n� �w�h�e�t�h�e�r� �t�h�e� �c�o�m�m�i�t�t�e�e� � � � �c�o�n�s�i�d�e�r�s� �t�h�i�s� �a�p�p�r�o�p�r�i�a�t�e� �f�o�r� �a�l�l� �t�h�e� �p�l�a�c�e�s� �d�e�s�c�r�i�b�i�n�g� �w�a�y�s� �f�o�r�m�a�t� �s�t�r�i�n�g�s� � � � �c�a�n� �b�e� �i�n�v�a�l�i�d�)�,� �c�h�a�n�g�e� � u�n�d�e�f�i�n�e�d� �t�o� � i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� .� �T�h�i�s� �d�o�e�s� � � � �n�o�t� �a�p�p�l�y� �t�o� �c�a�s�e�s� �w�h�e�r�e� �a� �f�o�r�m�a�t� �a�r�g�u�m�e�n�t� �h�a�s� �a� �b�a�d� �t�y�p�e� �o�r� �v�a�l�u�e�.� � � � ��� GB-219 "�� 7.23.6.1, 7.31.2.1 Å� � � � �T�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �%�n� �w�r�o�n�g�l�y� �r�e�f�e�r�s� �t�o� �p�l�u�r�a�l� � l�e�n�g�t�h� �m�o�d�i�f�i�e�r�s� ,� � � � �w�h�e�n� �a� �s�i�n�g�l�e� �c�o�n�v�e�r�s�i�o�n� �s�p�e�c�i�f�i�c�a�t�i�o�n� �h�a�s� �o�n�l�y� �a� �s�i�n�g�l�e� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r� � � � �(�w�h�i�c�h� �m�a�y� �c�o�n�s�i�s�t� �o�f� �m�u�l�t�i�p�l�e� �c�h�a�r�a�c�t�e�r�s�)�.� � � � �¨� � � � �C�h�a�n�g�e� �(�f�o�r� �b�o�t�h� �f�p�r�i�n�t�f� �a�n�d� �f�w�p�r�i�n�t�f�)� � b�y� �t�h�e� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r�s� � � � �t�o� � b�y� �t�h�e� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r� .� �C�h�a�n�g�e� � n�o� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r�s� �a�r�e� �t�o� � n�o� �l�e�n�g�t�h� � � � �m�o�d�i�f�i�e�r� �i�s� .� � � � ��� GB-220 •�� The description of %a and %A output for decimal floating types is confusing because it inconsistently uses p for two different precisions. Ð � � � �T�h�e� �f�o�l�l�o�w�i�n�g� �f�i�x� �(�f�o�r� �b�o�t�h� �f�p�r�i�n�t�f� �a�n�d� �f�w�p�r�i�n�t�f�)� �s�h�o�u�l�d� �b�e� � � � �c�h�e�c�k�e�d� �c�a�r�e�f�u�l�l�y� �b�y� �t�h�e� �C� �f�l�o�a�t�i�n�g�-�p�o�i�n�t� �g�r�o�u�p�.� �I�t� �i�s� �w�r�i�t�t�e�n� �o�n� �t�h�e� �b�a�s�i�s� � � � �t�h�a�t� �t�h�e� �f�o�r�m�a�t�t�i�n�g� �p�r�e�c�i�s�i�o�n� �i�s� �i�n�t�e�n�d�e�d� �t�o� �b�e� �u�p�p�e�r�c�a�s�e� �P� �w�h�i�l�e� �t�h�e� � � � �p�r�e�c�i�s�i�o�n� �o�f� �t�h�e� �t�y�p�e� �i�s� �i�n�t�e�n�d�e�d� �t�o� �b�e� �l�o�w�e�r�c�a�s�e� �p�.� � � � �I�n� �t�h�e� �p�a�r�t� �o�f� �t�h�e� �d�e�s�c�r�i�p�t�i�o�n� �s�t�a�r�t�i�n�g� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� ,� � � � �c�h�a�n�g�e� �t�h�a�t� �t�o� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �P� �(�P� �i�n� �i�t�a�l�i�c�s�)�.� �L�a�t�e�r� �i�n� �t�h�a�t� �s�e�n�t�e�n�c�e�,� � � � �i�n� � a�s� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� �(�5�.�2�.�4�.�2�.�2�)� �s�h�o�u�l�d� �h�a�v�e� �p� �p�u�t� �i�n� �i�t�a�l�i�c�s� �b�u�t� �r�e�m�a�i�n� � � � �l�o�w�e�r�c�a�s�e�.� �I�n� �t�h�e� �f�o�l�l�o�w�i�n�g� �s�e�n�t�e�n�c�e�,� �a�l�s�o� �s�t�a�r�t�i�n�g� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �p� ,� � � � �a�l�s�o� �c�h�a�n�g�e� �t�h�a�t� �t�o� � I�f� �t�h�e� �p�r�e�c�i�s�i�o�n� �P� �(�P� �i�n� �i�t�a�l�i�c�s�)�;� �t�h�e� �s�e�c�o�n�d� �r�e�f�e�r�e�n�c�e� � � � �t�o� �p� �i�n� �t�h�a�t� �s�e�n�t�e�n�c�e� �s�h�o�u�l�d� �r�e�m�a�i�n� �a�s� �a� �l�o�w�e�r�c�a�s�e�,� �i�t�a�l�i�c� �p�.� � � � ��� GB-221 b�� The formatting of references to conversion specifiers and their output is inconsistent. — � � � �I�n� �7�.�2�3�.�6�.�1� �p�a�r�a�g�r�a�p�h� �6�,� � #� �f�l�a�g�,� �d�o� �n�o�t� �u�s�e� �b�o�l�d� �f�o�r� � b� �a�n�d� � � � � 0�b� .� �I�n� �p�a�r�a�g�r�a�p�h� �7�,� �e�a�c�h� �i�n�t�e�g�e�r� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r�,� �d�o� �n�o�t� �u�s�e� �b�o�l�d� �f�o�r� � n� .� � � � �I�n� �p�a�r�a�g�r�a�p�h� �8�,� �c�o�n�t�e�n�t� �o�f� �t�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �u�n�s�i�g�n�e�d� �i�n�t�e�g�e�r� �s�p�e�c�i�f�i�e�r�s�,� � � � �u�s�e� �f�i�x�e�d�-�w�i�f�t�h� �t�y�p�e� �f�o�r� � b� .� �I�n� �p�a�r�a�g�r�a�p�h� �1�3�,� �d�o� �n�o�t� �u�s�e� �b�o�l�d� �f�o�r� � e� .� �I�n� � � � �p�a�r�a�g�r�a�p�h� �1�4�,� �d�o� �n�o�t� �u�s�e� �b�o�l�d� �f�o�r� � 0�B� .� �L�i�k�e�w�i�s�e� �i�n� �t�h�e� �s�a�m�e� �p�a�r�a�g�r�a�p�h�s� �i�n� � � � �7�.�3�1�.�2�.�1� �(�f�w�p�r�i�n�t�f�)�.� � � � ��� GB-222 "�� 7.23.6.2, 7.31.2.2 o� � � � �I�n� �t�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �%�l�c�,� �t�h�e�r�e� �i�s� �n�o� �s�p�a�c�e� �b�e�f�o�r�e� �t�h�e� �s�e�n�t�e�n�c�e� � � � � N�o� �n�u�l�l� �w�i�d�e� �c�h�a�r�a�c�t�e�r� �i�s� �a�d�d�e�d�.� .� � � � �7�� Add such a space (for both fscanf and fwscanf). �� GB-223 ^� � � � �T�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �t�h�e� � l� �l�e�n�g�t�h� �m�o�d�i�f�i�e�r� �i�s� �m�i�s�s�i�n�g� �t�h�e� � b� � � � �c�o�n�v�e�r�s�i�o�n� �s�p�e�c�i�f�i�e�r�.� � � � �Ì� � � � �I�n� �p�a�r�a�g�r�a�p�h� �1�1� �(�f�o�r� �b�o�t�h� �f�s�c�a�n�f� �a�n�d� �f�w�s�c�a�n�f�)�,� �a�d�d� � b� �t�o� �t�h�e� � � � �s�t�a�r�t� �o�f� �t�h�e� �l�i�s�t� �o�f� �c�o�n�v�e�r�s�i�o�n� �s�p�e�c�i�f�i�e�r�s� �t�o� �w�h�i�c�h� � l� �r�e�s�u�l�t�s� �i�n� �a�n� � � � �a�r�g�u�m�e�n�t� �o�f� �t�y�p�e� �p�o�i�n�t�e�r� �t�o� �l�o�n�g� �i�n�t� �o�r� �u�n�s�i�g�n�e�d� �l�o�n�g� �i�n�t�.� � � � ��� GB-224 "�� 7.23.7.2, 7.31.3.2  � � � �T�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �f�g�e�t�s� �i�s� �u�n�c�l�e�a�r� �a�b�o�u�t� �t�h�e� �s�e�m�a�n�t�i�c�s� �w�h�e�n� �n� �i�s� � � � �z�e�r�o� �o�r� �n�e�g�a�t�i�v�e�,� �w�h�e�n� � r�e�a�d�s� �a�t� �m�o�s�t� �o�n�e� �l�e�s�s� �t�h�a�n� �t�h�e� �n�u�m�b�e�r� �o�f� �c�h�a�r�a�c�t�e�r�s� � � � �s�p�e�c�i�f�i�e�d� �b�y� �n� �w�o�u�l�d� �m�e�a�n� �r�e�a�d�i�n�g� �a� �n�e�g�a�t�i�v�e� �n�u�m�b�e�r� �o�f� �c�h�a�r�a�c�t�e�r�s�.� �T�h�e� �s�a�m�e� � � � �i�s�s�u�e� �a�p�p�l�i�e�s� �t�o� �f�g�e�t�w�s�.� � � � � � � � �I�f� �u�n�d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r� �i�s� �i�n�t�e�n�d�e�d�,� �a�d�d� � I�f� �n� �i�s� �n�e�g�a�t�i�v�e� �o�r� �z�e�r�o�,� � � � �t�h�e� �b�e�h�a�v�i�o�r� �i�s� �u�n�d�e�f�i�n�e�d�.� �t�o� �t�h�e� �e�n�d� �o�f� �7�.�2�3�.�7�.�2� �p�a�r�a�g�r�a�p�h� �2� �a�n�d� �7�.�3�1�.�3�.�2� � � � �p�a�r�a�g�r�a�p�h� �2�.� �I�f� �s�o�m�e� �d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r� �i�s� �i�n�t�e�n�d�e�d�,� �a�p�p�r�o�p�r�i�a�t�e� �w�o�r�d�i�n�g� �w�o�u�l�d� � � � �n�e�e�d� �t�o� �b�e� �a�d�d�e�d� �d�e�p�e�n�d�i�n�g� �o�n� �w�h�a�t� �e�x�a�c�t�l�y� �t�h�a�t� �b�e�h�a�v�i�o�r� �s�h�o�u�l�d� �b�e� �(�w�h�e�t�h�e�r� � � � �a�n�y� �c�h�a�r�a�c�t�e�r�s�,� �e�v�e�n� �a� �n�u�l�l� �c�h�a�r�a�c�t�e�r�,� �s�h�o�u�l�d� �b�e� �w�r�i�t�t�e�n�,� �a�n�d� �w�h�a�t� �t�h�e� �r�e�t�u�r�n� � � � �v�a�l�u�e� �s�h�o�u�l�d� �b�e�)�.� � � � ��� GB-225 �� 7.23.9.1 �� The early page break at the end of the fgetpos subclause seems inconsistent with the lack of page breaks after other functions here. �� Remove that page break. �� GB-226 �� 7.23.9.4 �� The return value -1L appears to be intended as a C token (as shown by the suffix), so should be in a fixed-width font. +� � � � �C�h�a�n�g�e� � -�1�L� �t�o� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � ��� GB-227 �� 7.24 2� � � � �T�h�e� �r�e�f�e�r�e�n�c�e� �t�o� � f�i�v�e� �t�y�p�e�s� �i�s� �o�u�t�d�a�t�e�d�.� � � � �+� � � � �C�h�a�n�g�e� � f�i�v�e� �t�y�p�e�s� �t�o� � s�i�x� �t�y�p�e�s� .� � � � ��� FR-228 5�� 7.24.1, 7.31.4.1, K.3.5.3 and K.3.9.1 ^�� There are semantic changes and inconsistencies for strtol, scanf and similar functions �� GB-229 �� 7.24.1.3 8� The description of strfromf as being equivalent to a call to snprintf is unclear about whether the equivalence includes the default argument promotions that occur at the call site when a float argument is passed in variable arguments. In particular, if the default argument promotions are part of the equivalence, that would <� i�m�p�l�y� �a� �c�o�n�v�e�r�t�F�o�r�m�a�t� � � � �o�p�e�r�a�t�i�o�n� �(�s�o� �c�o�n�v�e�r�t�i�n�g� �s�i�g�n�a�l�i�n�g� �N�a�N�s� �t�o� �q�u�i�e�t� �w�i�t�h� � i�n�v�a�l�i�d� �r�a�i�s�e�d�,� �a�n�d� � � � �p�o�s�s�i�b�l�e� �o�t�h�e�r� �e�f�f�e�c�t� �o�n� �N�a�N� �p�a�y�l�o�a�d�s�,� �f�o�r� �e�x�a�m�p�l�e�,� �t�h�a�t� �c�o�u�l�d� �b�e� �r�e�l�e�v�a�n�t� � � � �w�h�e�n� �t�h�e� �s�n�p�r�i�n�t�f� �o�u�t�p�u�t� �f�o�r� �N�a�N� �u�s�e�s� �a�n� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� � � � �n�-�c�h�a�r�-�s�e�q�u�e�n�c�e�)�.� �W�h�e�r�e�a�s� �i�f� �t�h�a�t� s� �n�o�t� �p�a�r�t� �o�f� �t�h�e� �e�q�u�i�v�a�l�e�n�c�e�,� �i�t� s� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� �w�h�e�t�h�e�r� �a� �c�o�n�v�e�r�t�F�o�r�m�a�t� �o�p�e�r�a�t�i�o�n� �i�s� �a�p�p�l�i�e�d� �i�n� � � � �a�r�g�u�m�e�n�t� �p�a�s�s�i�n�g�,� �a�n�d� �a�n�y� �s�u�c�h� �o�p�e�r�a�t�i�o�n� �w�o�u�l�d� �b�e� �c�o�n�v�e�r�s�i�o�n� �t�o� �t�h�e� �s�a�m�e� � � � �f�o�r�m�a�t�.� � � � �]� � � � �A�f�t�e�r� � e�x�c�e�p�t� �t�h�a�t� ,� �i�n�s�e�r�t� � t�h�e� �d�e�f�a�u�l�t� �a�r�g�u�m�e�n�t� �p�r�o�m�o�t�i�o�n�s� �a�r�e� � � � �n�o�t� �a�p�p�l�i�e�d� �a�n�d� .� � � � ��� GB-230 $�� 7.24.1.5, 7.31.4.1.2 � � � � �W�h�e�r�e� �t�h�e� �R�e�t�u�r�n�s� �p�a�r�a�g�r�a�p�h�s� �f�o�r� �s�t�r�t�o�d� �a�n�d� �w�c�s�t�o�d� �s�a�y� � I�f� �n�o� � � � �c�o�n�v�e�r�s�i�o�n� �c�o�u�l�d� �b�e� �p�e�r�f�o�r�m�e�d�,� �z�e�r�o� �i�s� �r�e�t�u�r�n�e�d�.� ,� �t�h�i�s� �d�o�e�s�n� t� �s�p�e�c�i�f�y� �t�h�e� � � � �s�i�g�n�.� � � � �T� � � � �C�h�a�n�g�e� � z�e�r�o� �t�o� � p�o�s�i�t�i�v�e� �o�r� �u�n�s�i�g�n�e�d� �z�e�r�o� ,� �f�o�r� �b�o�t�h� �s�t�r�t�o�d� �a�n�d� � � � �w�c�s�t�o�d�.� � � � ��� GB-231 ÷�� Paragraph 4 of 7.24.1.5 appears as two paragraphs (when it was previously one) but only the first is given a paragraph number. Likewise paragraph 10 has three paragraphs. The same applies to wcstod (7.31.4.1.2) paragraphs 3 and 9. @�� Add paragraph numbers to all the paragraphs in question. �� GB-232 '�� 7.24.1.7, 7.31.4.1.4 2� AG Reference Bug 700 (https://austingroupbugs.net/view.php?id=700) ======= Title: strtol cannot return LONG_MIN with two's complement long The description of strtol, strtoll, strtoul, and strtoull states:     If the subject sequence begins with a minus sign, the value resulting from the conversion is negated (in the return type). The parenthetical phrase "(in the return type)" was added in C99 in response to DR #006 http://www.open-std.org/jtc1/sc22/wg14/docs/rr/dr_006.html This clarified the behavior of strtoul but it broke strtol, because with two's complement signed long, it is not possible to produce the value LONG_MIN by negating a positive value "in the return type". Likewise for the equivalent wcsto* functions. H� Change the text to:     If the subject sequence begins with a minus sign, the value resulting from the conversion is negated; for functions whose return type is an unsigned integer type this negation is performed in the return type. Make the same change for wcstol, wcstoll, wcstoul, and wcstoull. �� GB-233 $�� 7.24.1.7, 7.31.4.1.4 � � � � �I�n� �t�h�e� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �b�a�s�e� �2� �f�o�r� �s�t�r�t�o�l� �a�n�d� �w�c�s�t�o�l�,� � 0�b� �a�n�d� � 0�B� � � � �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �b�o�l�d�,� �s�i�n�c�e� � 0�x� �a�n�d� � 0�X� �a�r�e�n� t�.� � � � �J� � � � �F�o�r� �b�o�t�h� �s�t�r�t�o�l� �a�n�d� �w�c�s�t�o�l�,� �c�h�a�n�g�e� � 0�b� �a�n�d� � 0�B� �o�u�t� �o�f� �b�o�l�d� �t�y�p�e�.� � � � ��� GB-234 �� 7.24.2.1 �� Whilst the intent of the paragraph is fair, it would seem to be a Note (nay warning) rather than Recommend Practice. �� Change to a Note. �� GB-235 �� 7.24.3, 7.24.3.1 c � � � �T�h�e� �g�e�n�e�r�a�l� �d�e�s�c�r�i�p�t�i�o�n� �o�f� �m�e�m�o�r�y� �m�a�n�a�g�e�m�e�n�t� �f�u�n�c�t�i�o�n�s� �i�n� �7�.�2�4�.�3� � � � �p�a�r�a�g�r�a�p�h� �1� �i�m�p�l�i�e�s� �t�h�a�t� �t�h�e� �r�e�s�u�l�t� �o�f� �a�l�i�g�n�e�d�_�a�l�l�o�c� �i�s� �s�u�i�t�a�b�l�y� �a�l�i�g�n�e�d� �f�o�r� � � � � a�n�y� �t�y�p�e� �o�f� �o�b�j�e�c�t� �w�i�t�h� �a� �f�u�n�d�a�m�e�n�t�a�l� �a�l�i�g�n�m�e�n�t� �r�e�q�u�i�r�e�m�e�n�t� �a�n�d� �s�i�z�e� �l�e�s�s� � � � �t�h�a�n� �o�r� �e�q�u�a�l� �t�o� �t�h�e� �s�i�z�e� �r�e�q�u�e�s�t�e�d� ,� �w�h�i�l�e� �t�h�e� �s�p�e�c�i�f�i�c� �w�o�r�d�i�n�g� �i�n� �7�.�2�4�.�3�.�1� � � � �p�a�r�a�g�r�a�p�h� �2� �r�e�f�e�r�s� �t�o� �a�l�i�g�n�m�e�n�t� �s�p�e�c�i�f�i�e�d� �b�y� �a� �f�u�n�c�t�i�o�n� �a�r�g�u�m�e�n�t�.� �T�h�e�s�e� �a�r�e� � � � �c�o�n�s�i�s�t�e�n�t� �w�i�t�h� �e�a�c�h� �o�t�h�e�r�,� �b�u�t� �i�t� s� �n�o�t� �c�l�e�a�r� �i�f� �t�h�e� �c�o�n�s�e�q�u�e�n�c�e� �(�t�h�e� � � � �a�l�i�g�n�m�e�n�t� �m�u�s�t� �b�e� �s�u�f�f�i�c�i�e�n�t� �f�o�r� �w�h�i�c�h�e�v�e�r� �i�s� �g�r�e�a�t�e�r� �o�f� �m�a�x�_�a�l�i�g�n�_�t� �(�s�u�b�j�e�c�t� � � � �t�o� �o�b�j�e�c�t� �s�i�z�e�)� �a�n�d� �t�h�a�t� �p�a�s�s�e�d� �a�s� �a�n� �a�r�g�u�m�e�n�t�)� �i�s� �a�s� �i�n�t�e�n�d�e�d�.� � � � �M � � � �F�i�r�s�t�,� �i�t� s� �n�e�c�e�s�s�a�r�y� �t�o� �d�e�c�i�d�e� �w�h�e�t�h�e�r� �i�t� �s�h�o�u�l�d� �b�e� �p�o�s�s�i�b�l�e� �f�o�r� � � � �a�l�i�g�n�e�d�_�a�l�l�o�c� �t�o� �r�e�t�u�r�n� �a� �p�o�i�n�t�e�r� �t�h�a�t� �i�s� �l�e�s�s�-�a�l�i�g�n�e�d� �t�h�a�n� �m�a�l�l�o�c� �w�o�u�l�d� �b�e� � � � �r�e�q�u�i�r�e�d� �t�o� �r�e�t�u�r�n� �f�o�r� �t�h�e� �s�a�m�e� �s�i�z�e�,� �o�r� �w�h�e�t�h�e�r� �t�h�e� �c�o�n�s�e�q�u�e�n�c�e� �o�f� �t�h�e� � � � �e�x�i�s�t�i�n�g� �w�o�r�d�i�n�g� �i�s� �a�s� �d�e�s�i�r�e�d�.� � � � �I�n� �t�h�e� �f�i�r�s�t� �c�a�s�e� �(�a�l�i�g�n�e�d�_�a�l�l�o�c� �s�h�o�u�l�d� �b�e� �a�b�l�e� �t�o� �r�e�t�u�r�n� �a� � � � �l�e�s�s�-�a�l�i�g�n�e�d� �p�o�i�n�t�e�r�)�,� �c�h�a�n�g�e� �7�.�2�4�.�3� �p�a�r�a�g�r�a�p�h� �1�:� � T�h�e� �p�o�i�n�t�e�r� �r�e�t�u�r�n�e�d� � � � �s�h�o�u�l�d� �c�h�a�n�g�e� �t�o� � T�h�e� �p�o�i�n�t�e�r� �r�e�t�u�r�n�e�d� �b�y� �c�a�l�l�o�c�,� �m�a�l�l�o�c�,� �a�n�d� �r�e�a�l�l�o�c� .� � � � �I�n� �t�h�e� �s�e�c�o�n�d� �c�a�s�e� �(�a�l�i�g�n�e�d�_�a�l�l�o�c� �s�h�o�u�l�d� �b�e� �r�e�q�u�i�r�e�d� �t�o� �s�a�t�i�s�f�y� � � � �t�h�e� �s�a�m�e� �a�l�i�g�n�m�e�n�t� �r�e�q�u�i�r�e�m�e�n�t�s� �a�s� �m�a�l�l�o�c�,� �i�n� �a�d�d�i�t�i�o�n� �t�o� �i�t�s� �o�w�n�)�,� �a� � � � �f�o�o�t�n�o�t�e� �i�n� �7�.�2�4�.�3�.�1� �p�a�r�a�g�r�a�p�h� �2� �w�o�u�l�d� �b�e� �a�p�p�r�o�p�r�i�a�t�e�:� �a�f�t�e�r� � w�h�o�s�e� �a�l�i�g�n�m�e�n�t� � � � �i�s� �s�p�e�c�i�f�i�e�d� �b�y� �a�l�i�g�n�m�e�n�t�,� ,� �a�d�d� �a� �f�o�o�t�n�o�t�e� � T�h�e� �a�l�i�g�n�m�e�n�t� �r�e�q�u�i�r�e�m�e�n�t�s� �f�r�o�m� � � � �7�.�2�4�.�3� �a�l�s�o� �a�p�p�l�y� �e�v�e�n� �i�f� �a�l�i�g�n�m�e�n�t� �&�l�t�;� �a�l�i�g�n�o�f�(�m�a�x�_�a�l�i�g�n�_�t�)�.� .� � � � ��� GB-236 �� 7.24.6.1 �� footnote 368 �� GB-237 �� 7.24.6.3 g� � � � �I�n� � a� �s�u�b�s�e�q�u�e�n�t� �c�a�l�l� �t�o� �t�h�e� �s�t�r�e�r�r�o�r� �f�u�n�c�t�i�o�n� ,� � s�t�r�e�r�r�o�r� �s�h�o�u�l�d� � � � �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� � � � �J� � � � �C�h�a�n�g�e� � s�t�r�e�r�r�o�r� �i�n� �t�h�a�t� �p�h�r�a�s�e� �t�o� �a� �f�i�x�e�d�-�w�i�d�t�h� �(�a�n�d� �b�o�l�d�)� �f�o�n�t�.� � � � ��� GB-238 �� 7.24.7 €� AG Reference Bug 708 (https://austingroupbugs.net/view.php?id=708) ======= Title: mblen, mbtowc, and wctomb data races As per https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm#dr_498 it seems that in Oct 2018 the committee agreed in principle with the goal of N2281, and solicited a new paper from the author. Hopefully a new paper has been submitted and will lead to a satisfactory outcome.  However, if that is not the case then the Austin Group strongly recommends that the fallback position should not be the status quo, but to align with POSIX. The current situation is that the C standard requires mblen, mbtowc, and wctomb to avoid data races, but POSIX says that they need not be thread-safe.  POSIX currently s<� �till refers to C99, so this will not become a problem until the next POSIX revision, which will refer to C17, is approved. (It is in the late stages of development.) Since DRs for C17 are not being accepted, in order not to force POSIX implementations to change, the next POSIX revision will need to state that it does not defer to C17 regarding thread-safety of these functions.  Hopefully the revision after next will be able to return to deferring to the C standard, but this will depend on whether, and under what conditions, the relevant future C standard still requires them to avoid data races. If wording cannot be agreed for C23 that specifies the precise conditions under which these functions avoid data races, then the standard should simply change to match POSIX and state that they need not avoid data races. Š�� Append to 7.24.7 para 1:     These functions are not required to avoid data races with other calls to the same function. �� NEN/NL8-239 �� 7.29.1 "�� Paragraph 4 Paragraph 5 Ÿ� Previously, N2878 was held up because it needed approval from the Austin Group. During the meeting the paper was postponed and corrections were asked for, F.T. stated that the Austin Group approves the changes and direction. This paper is a tiny fix that is about as close to editorial as possible, changes the paper to match existing practice, and allows for more implementation flexibility. Î � � � �A�d�d� �t�h�e� �w�o�r�d�i�n�g� �o�f� �N�2�8�7�8� �(�o�r� �i�t�s� �s�u�c�c�e�s�s�o�r� �r�e�v�i�s�i�o�n�)� �t�o� �t�h�e� �C� � � � �S�t�a�n�d�a�r�d�.� �P�a�r�a�g�r�a�p�h� �4� �s�h�o�u�l�d� �h�a�v�e� �t�h�e� �f�o�l�l�o�w�i�n�g� �t�e�x�t� �a�d�d�e�d�:� � � � � � � � � � � � � �n�s�e�c�_�t� � � � � � � � �w�h�i�c�h� �i�s� �a�n� �i�m�p�l�e�m�e�n�t�a�t�i�o�n�-�d�e�f�i�n�e�d� �i�n�t�e�g�e�r� �t�y�p�e� � � � �c�a�p�a�b�l�e� �o�f� �r�e�p�r�e�s�e�n�t�i�n�g� �t�h�e� �r�a�n�g�e� �[�0�,� �9�9�9�9�9�9�9�9�9�]�;� � � � � � � � � � � � � � �a�n�d� �p�a�r�a�g�r�a�p�h� �5� �s�h�o�u�l�d� � � � �h�a�v�e� �t�h�e� �f�o�l�l�o�w�i�n�g� �c�h�a�n�g�e� �d�o�n�e� �f�o�r� �t�h�e� �t�i�m�e�s�p�e�c� �s�t�r�u�c�t�u�r�e�:� � � � � � � � �l�o�n�g� �t�v�_�n�s�e�c�;� �/�/� �n�a�n�o�s�e�c�o�n�d�s� � �[�0�,� �9�9�9�9�9�9�9�9�9�]� � � � �n�s�e�c�_�t� �t�v�_�n�s�e�c�;� �/�/� �n�a�n�o�s�e�c�o�n�d�s� �-�-� �[�0�,� �9�9�9�9�9�9�9�9�9�]� � � � ��� GB-240 �� 7.29.2.3 æ� AG Reference Bug 1614 (https://austingroupbugs.net/view.php?id=1614) ======== Title: meaning of (time_t)-1 return from mktime The mktime description states, under "Returns":     The mktime function returns the specified calendar time encoded as a value of type time_t.  If the calendar time cannot be represented, the function returns the value (time_t)(-1). An application writer reading this is likely to infer from the way it is worded that when mktime returns (time_t)-1 it means that the calendar time to be returned was not representable. Indeed, searching open source applications for calls to mktime turns up many uses where a return of (time_t)-1 is assumed to indicate this.  For example, the Python time module turns an error return of (time_t)-1 from the C library mktime function into a PyExc_OverflowError exception.  A limited search also found no applications that treat a return of (time_t)-1 as possibly indicating some other kind of failure, although an extensive search might do so. However, this interpretation of the "Returns" text seems to be at odds with the committee's response in 1994 to DR #136, which says that mktime can return (time_t)-1 for broken-down times that refer to times in the "spring-forward gap" (see https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_136.html) One way to reconcile the two is to observe that, since local time and Daylight Saving Time are implementation-defined, an implementation could define them in such a way that times in the spring-forward gap are converted to a value that cannot be represented.  For example, it could say they are converted to UINT64_MAX if time_t is a signed 64-bit integer type.  Then the C standard would require mktime to return (time_t)-1 because UINT64_MAX can't be represented in that time_t type. If this was the committee's reasoning in 1994, then it would be helpful to have this confirmed.  Another possibility is that they simply overlooked the significance of the way the "Returns" clause is worded. Deciding what the standard currently requires is one thing, but there is also the (perhaps more important) matter of what C23 should require. The current state of applications is the result of a combination of factors: 1. Application writers interpreting the "Returns" text in the way described above. 2. Almost all implementations not returning (time_t)-1 for times in the spring-forward gap, with the consequence that, over the decades, applications have been mostly developed and run on such systems.  This is known because the original NIST-PCTS tested for this behavior (as stated in DR #136) and The Open Group test suite, which has been used to certify dozens of systems as POSIX conforming (since 2003) and (since 1990) as XPG3, XPG4, and UNIX conforming, also tests for it.  The list of certified systems includes Microsoft Windows (NT 3.5, 3.51 and 4.0 were certified POSIX conforming).  Running the example program from DR #136 on some non-certified systems identified that glibc and FreeBSD do not return (time_t)-1.  So far NetBSD is the only system that has been confirmed as returning (time_t)-1, but it can actually behave both ways: there is a NO_ERROR_IN_DST_GAP compile time option to control it (with the (time_t)-1 return as the default).  DR #136 says that Arthur David Olson's popular "tz" time zone software returned (time_t)-1 (in 1994) and this may have influenced the response to that DR, as it is known to have been adopted by many systems.  However, it is now evident that almost all (if not all) systems that adopted it modified it so that it does not return (time_t)-1. 3. Even when run on an implementation that does return (time_t)-1 for times in the spring-forward gap, occurrences of this condition are rare, and the occasional application misbehavior (by treating it the same as the "cannot be represented" case) may have gone unnoticed. Given that almost all implementations of mktime do not return (time_t)-1 for times in the spring-forward gap, and that applications which can handle a return of (time_t)-1 appropriately for any condition other than the calendar time to be returned being unrepresentable seem to be exceedingly rare, it would benefit application portability if C23 upholds the meaning of the (time_t)-1 return as being that the calendar time to be returned cannot be represented and disallows returning (time_t)-1 for other reasons. If mktime can return (time_t)-1 for other reasons, this creates a problem for applications if they want to to distinguish the different cases.  If (time_t)-1 is returned when tm_isdst is negative, they can try a second call with tm_isdst set to 0 (or 1) and assume that if this succeeds the original return of (time_t)-1 was caused by a DST transition, but this additional code is unnecessary on almost all systems, and it only handles that one additional case.  If (time_t)-1 is returned when tm_isdst is not negative, how are applications to distinguish the "cannot be represented" case from other cases that they might prefer to treat as non-fatal? If the source of the broken-down time was from a file or database, or user input, then perhaps it is not much of a problem if the return of (time_t)-1 is treated as a fatal error (with a misleading error message), but when mktime is used to perform manipulations of the struct t<� �m members, it is more of a problem.  DR #136 suggests that tm_isdst is left as 0 or 1 when doing such manipulations, and that may be true when the time adjustment is small, but when adding or subtracting any whole number of days, setting tm_isdst to -1 is a perfectly reasonable thing for an application to do. Not returning (time_t)-1 is simply better for applications.  The glibc source contains this comment about it:     The requested time probably falls within a spring-forward gap of size DT.  Follow the common practice in this case, which is to return a time that is DT away from the requested time, [...] In practice, this is more useful than returning -1. On a system which does not return (time_t)-1, if an application wants to detect whether the broken-down time is in a spring-forward gap, all it needs to do is look for appropriate changes to the struct tm fields after mktime returns.  (In the example from DR #136, tm_hour changes from 2 to either 1 or 3.) Finally, there is also a subtle problem with the "cannot be represented" wording.  It is not clear if it means cannot be represented in a time_t, or cannot be represented in the time_t encoding used for the return value.  Microsoft Windows, and perhaps some other systems, uses a time_t encoding that does not include negative values (even though its time_t is signed), and thus returns (time_t)-1 if the calculated calendar time is negative.  To ensure this is clearly allowed, the wording should be changed to "cannot be represented in the time_t encoding used for the return value". 5� Four options are given based on two independent decisions (what C17 requires and what C23 should require). The Austin Group has a strong preference for options 1 and 2 over options 3 and 4. Option 1 A return of (time_t)-1 means that the calendar time to be returned could not be represented.  Implementations can return (time_t)-1 for times in the spring-forward gap by defining local time and Daylight Saving Time in such a way that times in the spring-forward gap are converted to a value that cannot be represented, but for the sake of application portability this loophole should be closed in C23 by changing:     ... not restricted to the ranges indicated above. 389)  On successful completion, the values of the tm_wday and tm_yday components of the structure are set appropriately, and the other components are set to represent the specified calendar time, but with their values forced to the ranges indicated above; the final value of tm_mday is not set until tm_mon and tm_year are determined. to:     ... not restricted to the ranges indicated above.  If the local time to be used for the conversion is one that includes Daylight Saving Time adjustments, a positive or zero value for tm_isdst causes the mktime function to perform the conversion as if Daylight Saving Time, respectively, is or is not in effect for the specified time.  A negative value causes it to attempt to determine whether Daylight Saving Time is in effect for the specified time; if it determines that Daylight Saving Time is in effect it produces the same result as an equivalent call with a positive tm_isdst value, otherwise it produces the same result as an equivalent call with a tm_isdst value of zero. 389)  On successful completion, the components of the structure are set to the same values that would be returned by a call to the localtime function with the calculated calendar time as its argument. and changing footnote 389 to read:     If the broken-down time specifies a time that is either skipped over or repeated when a transition to or from Daylight Saving Time occurs, it is unspecified whether the mktime function produces the same result as an equivalent call with a positive tm_isdst value or as an equivalent call with a tm_isdst value of zero. Also, under "Returns" change:     If the calendar time cannot be represented to:     If the calendar time cannot be represented in the time_t encoding used for the return value Option 2 A return of (time_t)-1 can mean other things than that the calendar time to be returned could not be represented, because [insert explanation here], but for the sake of application portability C23 should disallow this by changing:     ... not restricted to the ranges indicated above. 389)  On successful completion, the values of the tm_wday and tm_yday components of the structure are set appropriately, and the other components are set to represent the specified calendar time, but with their values forced to the ranges indicated above; the final value of tm_mday is not set until tm_mon and tm_year are determined. to:     ... not restricted to the ranges indicated above.  If the local time to be used for the conversion is one that includes Daylight Saving Time adjustments, a positive or zero value for tm_isdst causes the mktime function to perform the conversion as if Daylight Saving Time, respectively, is or is not in effect for the specified time.  A negative value causes it to attempt to determine whether Daylight Saving Time is in effect for the specified time; if it determines that Daylight Saving Time is in effect it produces the same result as an equivalent call with a positive tm_isdst value, otherwise it produces the same result as an equivalent call with a tm_isdst value of zero. 389)  On successful completion, the components of the structure are set to the same values that would be returned by a call to the localtime function with the calculated calendar time as its argument. and changing footnote 389 to read:     If the broken-down time specifies a time that is either skipped over or repeated when a transition to or from Daylight Saving Time occurs, it is unspecified whether the mktime function produces the same result as an equivalent call with a positive tm_isdst value or as an equivalent call with a tm_isdst value of zero. Also, under "Returns" change:     If the calendar time cannot be represented to:     If the calendar time cannot be represented in the time_t encoding used for the return value Option 3 A return of (time_t)-1 means that the calendar time to be returned could not be represented.  Implementations can return (time_t)-1 for times in the spring-forward gap by defining local time and Daylight Saving Time in such a way that times in the spring-forward gap are converted to a value that cannot be represented, but they should not need to use this loophole to do so, and C23 should change:     If the calendar time cannot be represented, the function returns the value (time_t)(-1). to:     If the calendar time cannot be represented in the time_t encoding used for the return value, or if the function does not succeed for some other reason, the function returns the value (time_t)(-1). Option 4 A return of (time_t)-1 can mean other things than that the calendar time to be returned could not be represented, because [insert explanation here], and this should be clarified in C23 by changing:     If the calendar time cannot be represented, the function returns     the value (time_t)(-1). to:     If the calendar time cannot be represented in the time_t encoding used for the return value, or if the function does not succeed for some other reason, the function returns the value (time_t)(-1). �� FR-241 �� 7.29.3 :�� Misspecification of the time conversion functions �� GB-242 Y�� This paragraph does not properly reflect the removal of asctime_r and ctime_r. p� � � � �R�e�m�o�v�e� � a�s�c�t�i�m�e�,� �c�t�i�m�e�,� .� �C�h�a�n�g�e� � t�h�e� �f�o�l�l�o�w�i�n�g� �f�u�n�c�t�i�o�n�s� �<� t�o� � a�s�c�t�i�m�e�,� � � � �c�t�i�m�e�,� �g�m�t�i�m�e� �a�n�d� �l�o�c�a�l�t�i�m�e� .� � � � ��� GB-243 �� 7.29.3.2 B� � � � � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n�s� �(�p�l�u�r�a�l�)� �s�h�o�u�l�d� �b�e� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n� .� � � � �9� � � � �C�h�a�n�g�e� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n�s� �t�o� � a�s�c�t�i�m�e� �f�u�n�c�t�i�o�n� .� � � � ��� GB-244 �� 7.29.3.4 A� � � � � c�o�n�v�e�r�t�s� �s�h�o�u�l�d� �b�e� � c�o�n�v�e�r�t� �t�o� �a�g�r�e�e� �w�i�t�h� � f�u�n�c�t�i�o�n�s� .� � � � �'� � � � �C�h�a�n�g�e� � c�o�n�v�e�r�t�s� �t�o� � c�o�n�v�e�r�t� .� � � � ��� GB-245 �� 7.29.3.5 ä � � � �S�e�c�t�i�o�n� �7�.�2�9�.�3�.�5� �P�a�r�a� �3� � � � � � � � �A�G� �R�e�f�e�r�e�n�c�e� �B�u�g� �7�3�9� �(�h�t�t�p�s�:�/�/�a�u�s�t�i�n�g�r�o�u�p�b�u�g�s�.�n�e�t�/�v�i�e�w�.�p�h�p�?�i�d�=�7�3�9�)� � � � �=�=�=�=�=�=�=� � � � � � � � �T�i�t�l�e�:� �s�t�r�f�t�i�m�e� �%�F� �c�o�n�v�e�r�s�i�o�n� �c�l�a�i�m�s� �t�o� �p�r�o�v�i�d�e� �I�S�O� �8�6�0�1� �d�a�t�e� � � � �f�o�r�m�a�t� �b�u�t� �d�o�e�s� �s�o� �o�n�l�y� �f�o�r� �a� �l�i�m�i�t�e�d� �y�e�a�r� �r�a�n�g�e� � � � � � � � �T�h�e� �s�t�r�f�t�i�m�e� �%�F� �c�o�n�v�e�r�s�i�o�n� �i�s� �d�e�s�c�r�i�b�e�d� �a�s�:� � � � � � � � � � � � �%�F� �i�s� �e�q�u�i�v�a�l�e�n�t� � � � �t�o� �&�q�u�o�t�;�%�Y�-�%�m�-�%�d�&�q�u�o�t�;� �(�t�h�e� �I�S�O� �8�6�0�1� �d�a�t�e� �f�o�r�m�a�t�)� � � � � � � � �H�o�w�e�v�e�r�,� �i�f� �t�h�e� �y�e�a�r� �i�s� �b�e�t�w�e�e�n� �0� �a�n�d� �9�9�9� �t�h�i�s� �p�r�o�d�u�c�e�s� �a�t� �m�o�s�t� �a� � � � �t�h�r�e�e� �d�i�g�i�t� �y�e�a�r�,� �w�h�e�r�e�a�s� �I�S�O� �8�6�0�1� �s�p�e�c�i�f�i�e�s� �a� �m�i�n�i�m�u�m� �o�f� �f�o�u�r� �d�i�g�i�t�s� �f�o�r� � � � �y�e�a�r�s� �i�n� �t�h�a�t� �r�a�n�g�e�.� � � � � � � � �A�l�s�o�,� �i�f� �t�h�e� �y�e�a�r� �i�s� �o�u�t�s�i�d�e� �t�h�e� �r�a�n�g�e� �0� �t�o� �9�9�9�9�,� �a�c�c�o�r�d�i�n�g� �t�o� � � � �w�i�k�i�p�e�d�i�a� �&�q�u�o�t�;�T�o� �r�e�p�r�e�s�e�n�t� �y�e�a�r�s� �b�e�f�o�r�e� �0�0�0�0� �o�r� �a�f�t�e�r� �9�9�9�9�,� �[�I�S�O� �8�6�0�1�]� �a�l�s�o� � � � �p�e�r�m�i�t�s� �t�h�e� �e�x�p�a�n�s�i�o�n� �o�f� �t�h�e� �y�e�a�r� �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �b�u�t� �o�n�l�y� �b�y� �p�r�i�o�r� �a�g�r�e�e�m�e�n�t� � � � �b�e�t�w�e�e�n� �t�h�e� �s�e�n�d�e�r� �a�n�d� �t�h�e� �r�e�c�e�i�v�e�r�.� �A�n� �e�x�p�a�n�d�e�d� �y�e�a�r� �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �[�±�Y�Y�Y�Y�Y�]� � � � �m�u�s�t� �h�a�v�e� �a�n� �a�g�r�e�e�d�-�u�p�o�n� �n�u�m�b�e�r� �o�f� �e�x�t�r�a� �y�e�a�r� �d�i�g�i�t�s� �b�e�y�o�n�d� �t�h�e� �f�o�u�r�-�d�i�g�i�t� � � � �m�i�n�i�m�u�m�,� �a�n�d� �i�t� �m�u�s�t� �b�e� �p�r�e�f�i�x�e�d� �w�i�t�h� �a� �+� �o�r� �" �s�i�g�n�&�q�u�o�t�;�.� � � � �… � � � �T�h�e�r�e� �a�r�e� �t�h�r�e�e� �d�i�f�f�e�r�e�n�t� �s�o�l�u�t�i�o�n�s�,� �d�e�p�e�n�d�i�n�g� �o�n� �h�o�w� �m�u�c�h� � � � �e�q�u�i�v�a�l�e�n�c�e� �t�o� �I�S�O� �8�6�0�1� �i�s� �t�o� �b�e� �c�l�a�i�m�e�d�.� � � � � � � � �S�u�g�g�e�s�t�e�d� �r�e�s�o�l�u�t�i�o�n�:� � � � � � � � �O�p�t�i�o�n� �1� �-� �o�n�l�y� �c�l�a�i�m� �I�S�O� �8�6�0�1� �e�q�u�i�v�a�l�e�n�c�e� �f�o�r� �y�e�a�r�s� �1�0�0�0� �t�o� �9�9�9�9� � � � � � � � �C�h�a�n�g�e� �t�h�e� �%�F� �d�e�s�c�r�i�p�t�i�o�n� �t�o�:� � � � � � � � � � � � �%�F� �i�s� �e�q�u�i�v�a�l�e�n�t� � � � �t�o� �&�q�u�o�t�;�%�Y�-�%�m�-�%�d�&�q�u�o�t�;� �(�t�h�e� �I�S�O� �8�6�0�1� �d�a�t�e� �f�o�r�m�a�t�,� �w�h�e�n� �t�h�e� �y�e�a�r� �i�s� �b�e�t�w�e�e�n� � � � �1�0�0�0� �a�n�d� �9�9�9�9� �i�n�c�l�u�s�i�v�e�)� � � � � � � � �O�p�t�i�o�n� �2� �-� �o�n�l�y� �c�l�a�i�m� �I�S�O� �8�6�0�1� �e�q�u�i�v�a�l�e�n�c�e� �f�o�r� �y�e�a�r�s� �0� �t�o� �9�9�9�9� � � � � � � � �C�h�a�n�g�e� �t�h�e� �%�F� �d�e�s�c�r�i�p�t�i�o�n� �t�o�:� � � � � � � � � � � � �%�F� �i�s� �e�q�u�i�v�a�l�e�n�t� � � � �t�o� �&�q�u�o�t�;�%�Y�-�%�m�-�%�d�&�q�u�o�t�;�,� �e�x�c�e�p�t� �t�h�a�t� �t�h�e� �s�t�o�r�e�d� �y�e�a�r� �i�s� �f�i�l�l�e�d� � � � � � � � �a�s� �n�e�e�d�e�d� �w�i�t�h� � � � �l�e�a�d�i�n�g� �z�e�r�o�s� �s�o� �t�h�a�t� �i�f� �t�h�e� �y�e�a�r� �i�s� �b�e�t�w�e�e�n� �0� �a�n�d� �9�9�9� �i�n�c�l�u�s�i�v�e�,� �f�o�u�r� �d�i�g�i�t�s� � � � �a�r�e� �s�t�o�r�e�d�.� � �(�T�h�i�s� �p�r�o�v�i�d�e�s� �t�h�e� �I�S�O� � � � �8�6�0�1� �d�a�t�e� �f�o�r�m�a�t� �w�h�e�n� �t�h�e� �y�e�a�r� �i�s� �b�e�t�w�e�e�n� �0� �a�n�d� �9�9�9�9� �i�n�c�l�u�s�i�v�e�.�)� � � � � � � � �O�p�t�i�o�n� �3� �-� �f�u�l�l� �I�S�O� �8�6�0�1� �e�q�u�i�v�a�l�e�n�c�e� � � � � � � � � � � � �S�i�n�c�e� �&�q�u�o�t�;�A�n� � � � �e�x�p�a�n�d�e�d� �y�e�a�r� �r�e�p�r�e�s�e�n�t�a�t�i�o�n� �[�±�Y�Y�Y�Y�Y�]� �m�u�s�t� �h�a�v�e� �a�n� �a�g�r�e�e�d�-�u�p�o�n� �n�u�m�b�e�r� �o�f� � � � �e�x�t�r�a� �y�e�a�r� �d�i�g�i�t�s� �b�e�y�o�n�d� �t�h�e� �f�o�u�r�-�d�i�g�i�t� �m�i�n�i�m�u�m�&�q�u�o�t�;�,� �t�h�e�r�e� �n�e�e�d�s� �t�o� �b�e� �a� � � � �w�a�y� �f�o�r� �t�h�a�t� �a�g�r�e�e�d�-�u�p�o�n� �n�u�m�b�e�r� �t�o� �b�e� �u�s�e�d� �i�n� �t�h�e� �s�t�r�f�t�i�m�e� �f�o�r�m�a�t� � � � �s�t�r�i�n�g�.� � �T�h�i�s� �w�o�u�l�d� �r�e�q�u�i�r�e� �a�d�d�i�n�g� � � � �f�i�e�l�d� �w�i�d�t�h�s�:� �t�h�e� �w�o�r�d�i�n�g� �c�o�u�l�d� �b�e� �a�d�a�p�t�e�d� �f�r�o�m� �P�O�S�I�X�.�1�-�2�0�1�7�.� � �T�h�e� �r�e�q�u�i�r�e�m�e�n�t� �t�h�a�t� �t�h�e� �y�e�a�r� �m�u�s�t� �b�e� � � � �p�r�e�f�i�x�e�d� �w�i�t�h� �a� �+� �o�r� �" �s�i�g�n� �c�o�u�l�d� �b�e� �h�a�n�d�l�e�d� �e�i�t�h�e�r� �b�y� �a�d�d�i�n�g� �t�h�e� �+� �f�l�a�g� �f�r�o�m� � � � �P�O�S�I�X�.�1�-�2�0�1�7� �o�r� �b�y� �s�t�a�t�i�n�g� �t�h�e� �n�e�e�d� �f�o�r� �a� �+� �s�i�g�n� �f�o�r� �y�e�a�r�s� �&�g�t�;� �9�9�9�9� �i�n� �t�h�e� � � � �d�e�s�c�r�i�p�t�i�o�n� �o�f� �%�F�.� � � � ��� GB-246 "�� 7.30.1.2, 7.30.1.4 ¢� � � � �I�n� �p�a�r�a�g�r�a�p�h� �3� �o�f� �e�a�c�h� �o�f� �7�.�3�0�.�1�.�2� �a�n�d� �7�.�3�0�.�1�.�4�,� � p�o�i�n�t�e�d� �t�o� �b�y� �s� � � � �s�h�o�u�l�d� �h�a�v�e� � s� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�.� �(�F�o�r� �7�.�3�0�.�1�.�6�,� �c�3�2�r�t�o�m�b�,� �i�t� s� �a�l�r�e�a�d�y� � � � �O�K�.�)� � � � �[� � � � �C�h�a�n�g�e� � s� �t�o� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t� �i�n� �b�o�t�h� �t�h�o�s�e� �s�e�n�t�e�n�c�e�s� �(�c�8�r�t�o�m�b� � � � �a�n�d� �c�1�6�r�t�o�m�b�)�.� � � � ��� US 64 -247 �� 7.31.2.1 �� GB-248 �� 7.31.6.3.2 ]�� The formatting of the return values (size_t)(-2) and (size_t)(-1) is inconsistent. � Either use a fixed-width font for the whole of the first return value, or variable-width (with a minus sign, not a hyphen) for the operand of the cast in the second return value; a fixed-width font would probably be most appropriate in all such cases. In either case, it would be desirable to ensure consistency with the return values of all other functions with similar lists of return values, and individual return values (e.g. wcrtomb and mbsrtowcs show similar inconsistency; see also uchar.h functions). �� FR-249 #�� 7.33.6 and 7.33.14 1�� Add features to future library directions �� US 65 -250 �� A 4.2 Q�� Page 468: A.4.2: "n-wchar-sequence:" should be shifted left. �� US 66 -251 �� A 5.2 Q�� Page 469: A.5.2: "d-wchar-sequence:" should be shifted left. �� GB-252 �� A.2.2 ‘� � � � �A� �s�t�r�a�y� �s�t�r�i�n�g� � [�-�2�e�x�]� �a�p�p�e�a�r�s� �a�f�t�e�r� �t�h�e� �s�t�r�u�c�t�-�o�r�-�u�n�i�o�n� �s�y�n�t�a�x�.� � � � �A� �s�t�r�a�y� �s�t�r�i�n�g� � [�-�7�e�x�]� �a�p�p�e�a�r�s� �a�f�t�e�r� �t�h�e� �f�u�n�c�t�i�o�n�-�s�p�e�c�i�f�i�e�r� �s�y�n�t�a�x�.� � � � ��� Remove those strings. �� GB-253 �� A.2.3 5� � � � �S�t�r�a�y� �s�t�r�i�n�g�s� � [�-�6�e�x�]� �a�p�p�e�a�r� �i�n� �f�o�u�r� �p�l�a�c�e�s�.� � � � ��� US 1 -254 �� Abstract Pg vi ~�� Page vi: "to from" in "Missing macros were added to from <float.h> and <limits.h>." j�� Please make any proposed change as necessary. for each of these issues (unless noted otherwise) �� GB-255 �� Annex B F� � � � �N�o�n�e� �o�f� �t�h�e� �s�u�b�c�l�a�u�s�e�s� �l�i�s�t� �t�h�e� � _�_�S�T�D�C�_�V�E�R�S�I�O�N�_�*�_�H�_�_� �m�a�c�r�o�s�.� � � � �<� Y�� Add those macros to the library summary for each header that has such a macro. �� FR-256 �� Annex B.29 3�� The type char8_t is missing in the list. �� Add it �� GB-257 �� Annex E F�� Since BOOL_WIDTH is an exact value, this should be noted here. G� � � � �A�d�d� �a� �c�o�m�m�e�n�t� � /�/� �e�x�a�c�t� �v�a�l�u�e� �t�o� �t�h�e� �d�e�f�i�n�i�t�i�o�n� �o�f� �B�O�O�L�_�W�I�D�T�H�.� � � � ��� FR-258 �� Annex M /�� missing mention of new interface timegm 3�� add to the same line as for timespec_getres �� GB-259 �� Annexes C, E, I �� In Annexes not divided into clauses, the page footer shows a clause number from the previous Annex (for example, B.31 on page 498 for Annex C). �� Fix the footers. �� GB-260 �� B.16 Z�� The stdatomic.h summary is missing ATOMIC_CHAR8_T_LOCK_FREE and atomic_char8_t. !�� Add those to the summary. �� GB-261 �� B.19 >�� The stddef.h summary is missing the unreachable macro. �� Add that to the summary. �� GB-262 �� B.22 @�� The stdlib.h summary is missing once_flag and call_once. �� GB-263 �� B.5 X�� The fenv.h summary is missing femode_t, FE_DFL_MODE and FE_TONEARESTFROMZERO. �� GB-264 �� B.9 8�� The limits.h summary is missing BITINT_MAXWIDTH. �� GB-265 �� Bibliography ˆ�� The entries for IEEE standards are inconsistent about use of a hyphen or an en dash to separate the standard number and date. Ê�� Make items 9, 10 and 11 consistent in whatever way is considered appropriate. (The standards themselves appear to use a hyphen, so indicating changing en dash to hyphen in items 9 and 10.) �� US 89 -266 G�� Page 672+: The footer on the Index is "Bibliography". j�� Please make any proposed change as necessary. for each of these issues (unless noted otherwise) �� GB-267 3�� F.10.1.1, F.10.1.8, F.10.3.11, F.10.5.3 Œ�� The return value +0 for acos(1), acospi(1), log(1), lgamma(1) and lgamma(2) is in a different font from other such return values. S� � � � �C�h�a�n�g�e� � +�0� �t�o� � $�+�0�$� �i�n� �t�h�e� �L�a�T�e�X� �s�o�u�r�c�e�,� �i�n� �e�a�c�h� �o�f� �t�h�o�s�e� �f�i�v�e� � � � �p�l�a�c�e�s�.� � � � ��� GB-268 �� F.10.3.7 � � � � �T�h�e� �e�x�a�m�p�l�e� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �o�f� �f�r�e�x�p� �i�s� �n�o�t� �v�a�l�i�d� �b�e�c�a�u�s�e� �i�t� �w�o�u�l�d� � � � �r�a�i�s�e� �s�p�u�r�i�o�u�s� � i�n�v�a�l�i�d� �e�x�c�e�p�t�i�o�n�s� �f�o�r� �i�n�f�i�n�i�t�i�e�s� �a�n�d� �q�u�i�e�t� �N�a�N�s�.� � � � �@� � � � �C�h�a�n�g�e� � v�a�l�u�e� �=�=� �0� �t�o� � v�a�l�u�e� �=�=� �0� �|�|� �!�i�s�f�i�n�i�t�e�(�v�a�l�u�e�)� .� � � � ��� GB-269 �� F.10.4.2 � Although not strictly required (it follows from the general semantics), consistency with the descriptions of other functions would indicate stating explicitly the values of compoundn with first argument a positive infinity and second nonzero. „� � � � �A�d�d� �t�w�o� �m�o�r�e� �b�u�l�l�e�t� �p�o�i�n�t�s�:� � c�o�m�p�o�u�n�d�n�(�+�",� �n�)� �r�e�t�u�r�n�s� �+�" �f�o�r� �n� � � � �&�g�t�;� �0�.� �a�n�d� � c�o�m�p�o�u�n�d�n�(�+�",� �n�)� �r�e�t�u�r�n�s� �+�0� �f�o�r� �n� �&�l�t�;� �0�.� .� � � � ��� US 68 -270 �� F.10.4.7 ¨�� Page 524: F.10.4.7 (powr): Add to extra "powr(+1, y)": returns a NaN and raises the "invalid" floating-point exception for infinite y. �� GB-271 :�� The second powr(+1, y) bullet point is incomplete. w� � � � �C�h�a�n�g�e� �t�h�a�t� �b�u�l�l�e�t� �p�o�i�n�t� �t�o� � p�o�w�r�(�+�1�,� �±�")� �r�e�t�u�r�n�s� �a� �N�a�N� �a�n�d� �r�a�i�s�e�s� � � � �t�h�e� � i�n�v�a�l�i�d� �f�l�o�a�t�i�n�g�-�p�o�i�n�t� �e�x�c�e�p�t�i�o�n�.� .� � � � ��� US 69 -272 �� F.10.6.8 L�� Page 527: F.10.6.8 (roundeven): Paragraph 1 is on the wrong line. �� GB-273 c�� There is excess white space at the top of this paragraph before the bullet points start. �� Remove that white space. �� US 70 -274 �� F.10.7.1 x�� Page 528: F.10.7.1 (fmod): "returns x for x finite x." -> "returns x for x finite." �� US 71 -275 �� F.10.8.1 Š�� Page 528: F.10.8.1 (copysign): "specified in the Appendix to IEC 60559." -> "specified in IEC 60559." :�� Either do the change or delete the entire line. �� GB-276 �� F.10.8.7 �� footnote 455 ¸� The second sentence in the footnote seems incorrect in that context; that expression seems like a valid implementation even in the FE_SNANS_ALWAYS_SIGNAL case. That incorrect sentence was in the initial integration of TS 18661-1, and appears to be a misapplication of the footnote that N2314 said was to be added to C11 footnote 374 (on the fmax sample implementation; footnote 456 in the CD, i.e. the next footnote). D�� Move this sentence to the end of the next footnote, on fmax. �� GB-277 _� � � � �T�h�e� �e�x�p�r�e�s�s�i�o�n� � *�x� �*� �1�e�0� �s�h�o�u�l�d� �b�e� �i�n� �a� �f�i�x�e�d�-�w�i�d�t�h� �f�o�n�t�,� �a�s� �a� �C� � � � �s�o�u�r�c�e� �e�x�p�r�e�s�s�i�o�n�.� � � � �*�� Change it into a fixed-width font. �� US 67 -278 �� F.3 G�� Page 508: F.3#8: "854" -> "854-1987". �� GB-279 �� F.8.4, F.8.5 ® � � � �W�h�a�t� �e�v�a�l�u�a�t�i�o�n� �r�u�l�e�s� �a�p�p�l�y� �t�o� �i�n�i�t�i�a�l�i�z�e�r�s� �f�o�r� �o�b�j�e�c�t�s� �w�i�t�h� � � � �a�u�t�o�m�a�t�i�c� �s�t�o�r�a�g�e� �d�u�r�a�t�i�o�n� �d�e�c�l�a�r�e�d� �w�i�t�h� �t�h�e� �c�o�n�s�t�e�x�p�r� �s�t�o�r�a�g�e�-�c�l�a�s�s� � � � �s�p�e�c�i�f�i�e�r�?� �A�r�e� �t�h�e� �s�a�m�e� �r�u�l�e�s� �a�p�p�l�i�e�d� �a�s� �f�o�r� �s�t�a�t�i�c� �a�n�d� �t�h�r�e�a�d� �s�t�o�r�a�g�e� � � � �d�u�r�a�t�i�o�n� �(�s�o� �a�l�l�o�w�i�n�g� �s�u�c�h� �a�n� �i�n�i�t�i�a�l�i�z�e�r� �t�h�a�t� �m�i�g�h�t� �r�a�i�s�e� �e�x�c�e�p�t�i�o�n�s� �i�f� � � � �e�v�a�l�u�a�t�e�d� �a�t� �e�x�e�c�u�t�i�o�n� �t�i�m�e�,� �e�.�g�.� � c�o�n�s�t�e�x�p�r� �d�o�u�b�l�e� �x� �=� �(�d�o�u�b�l�e�)�(�1�.�0� �/� � � � �3�.�0�)�;� ?� �O�r� �a�r�e� �e�x�e�c�u�t�i�o�n�-�t�i�m�e� �e�v�a�l�u�a�t�i�o�n� �r�u�l�e�s� �a�p�p�l�i�e�d�,� �r�e�s�u�l�t�i�n�g� �i�n� �a� � � � �c�o�n�s�t�r�a�i�n�t� �v�i�o�l�a�t�i�o�n� �b�e�c�a�u�s�e� �(�d�o�u�b�l�e�)�(�1�.�0� �/� �3�.�0�)� �i�s� �n�o�t� �c�o�n�s�i�d�e�r�e�d� �t�o� � � � �e�v�a�l�u�a�t�e� �t�o� �a� �c�o�n�s�t�a�n�t�?� �A�n�d� �d�o�e�s� �t�h�i�s� �d�i�f�f�e�r� �d�e�p�e�n�d�i�n�g� �o�n� �w�h�e�t�h�e�r� �t�h�e� � � � �F�E�N�V�_�A�C�C�E�S�S� �p�r�a�g�m�a� �i�s� �i�n� �e�f�f�e�c�t�,� �t�h�e� �F�E�N�V�_�R�O�U�N�D� �o�r� �F�E�N�V�_�D�E�C�_�R�O�U�N�D� �p�r�a�g�m�a� �i�s� � � � �i�n� �e�f�f�e�c�t�,� �o�r� �b�o�t�h�?� � � � �-� Make some suitable change (both to normative text, if any such initializers are to be accepted that would raise exceptions at execution time, and adding examples, in any case) to clarify the handling of such initializers, following any recommendations from the C floating-point group. �� US 72 -280 �� G.6.1.1 L�� Page 539: G.6.1.1 (cacos): Replace "pi" with pi symbol. �� GB-281 6� � � � �I�n� �t�h�e� �s�i�x�t�h� �b�u�l�l�e�t� �p�o�i�n�t�,� � p�i� �s�h�o�u�l�d� �b�e� � À .� � � � �� � � � �C�h�a�n�g�e� � p�i� �t�o� � À .� � � � ��� GB-282 �� G.6.2.6 D� � � � �I�n� �t�h�e� �s�e�v�e�n�t�h� �b�u�l�l�e�t� �p�o�i�n�t�,� � s�i�n� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �i�t�a�l�i�c�s�.� � � � �5�� Change it out of italics (use \sin in LaTeX). �� US 75 -283 �� H.11 K�� Page 556: H.11#6: Bullet list has two items too far to the left. �� US 76 -284 Y�� In the first instance of _DecimalN,<�  �t�h�e� � N� �i�s� � � � �n�o�t� �i�t�a�l�i�c�i�z�e�d� �p�e�r� �u�s�u�a�l� �s�t�y�l�e�.� � � � �@� � � � �I�n� �t�h�e� �f�i�r�s�t� �i�n�s�t�a�n�c�e� �o�f� �_�D�e�c�i�m�a�l�N� �i�t�a�l�i�c�i�z�e� � � � �t�h�e� � N� .� � � � ��� GB-285 �� H.11.2 )� � � � � s�u�b�l�a�u�s�e� �s�h�o�u�l�d� �b�e� � s�u�b�c�l�a�u�s�e� .� � � � �)� � � � �C�h�a�n�g�e� � s�u�b�l�a�u�s�e� �t�o� � s�u�b�c�l�a�u�s�e� .� � � � ��� GB-286 �� H.12.2 Õ�� Since there are no wide string analogs of the new functions being added (no wcstofN analogous to strtofN, for example), a footnote should be added to that effect, like that for the strfrom functions. ¼� � � � �A�d�d� �a� �f�o�o�t�n�o�t�e� � A�s� �w�i�t�h� �t�h�e� �s�t�r�f�r�o�m�d� �f�u�n�c�t�i�o�n�s�,� �t�h�e�r�e� �a�r�e� �n�o� �w�i�d�e� � � � �s�t�r�i�n�g� �a�n�a�l�o�g�s� �o�f� �t�h�e�s�e� �f�u�n�c�t�i�o�n�s�;� �s�e�e� �7�.�3�1�.�4�.�1�.�1�.� �(�A�l�t�e�r�n�a�t�i�v�e�l�y�,� �s�u�c�h� �w�i�d�e� � � � �s�t�r�i�n�g� �a�n�a�l�o�g�s� �c�o�u�l�d� �b�e� �a�d�d�e�d�.�)� � � � ��� GB-287 ø � � � �T�h�e� �s�e�m�a�n�t�i�c�s� �d�e�s�c�r�i�b�e�d� �i�n� �t�h�i�s� �p�a�r�a�g�r�a�p�h�,� �f�o�r� �s�t�r�t�o�d�N� �a�c�c�e�p�t�i�n�g� � � � �h�e�x�a�d�e�c�i�m�a�l� �f�l�o�a�t�i�n�g� �c�o�n�s�t�a�n�t�s�,� �a�r�e� �i�n�c�o�m�p�a�t�i�b�l�e� �w�i�t�h� �t�h�e� �b�a�s�e� �s�t�a�n�d�a�r�d�:� �a�n� � � � �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �f�o�l�l�o�w�i�n�g� �t�h�o�s�e� �s�e�m�a�n�t�i�c�s� �w�o�u�l�d� �n�o�t� �c�o�n�f�o�r�m� �t�o� �t�h�e� �b�a�s�e� � � � �s�t�a�n�d�a�r�d�,� �i�n� �t�h�a�t� �t�h�e�r�e� �a�r�e� �f�u�n�c�t�i�o�n� �i�n�p�u�t�s� �t�h�a�t� �h�a�v�e� �d�e�f�i�n�e�d� �b�e�h�a�v�i�o�r� �b�o�t�h� � � � �w�i�t�h� �t�h�e� �b�a�s�e� �s�t�a�n�d�a�r�d� �a�n�d� �w�i�t�h� �t�h�e� �A�n�n�e�x� �i�n� �e�f�f�e�c�t�,� �b�u�t� �w�h�e�r�e� �t�h�e� �r�e�s�u�l�t�s� � � � �r�e�q�u�i�r�e�d� �t�o� �b�e� �r�e�t�u�r�n�e�d� �a�r�e� �d�i�f�f�e�r�e�n�t� �i�n� �t�h�e� �t�w�o� �c�a�s�e�s�.� �T�h�i�s� �i�s� �c�o�n�t�r�a�r�y� �t�o� � � � �t�h�e� �n�o�r�m�a�l� �p�r�a�c�t�i�c�e�,� �w�h�e�r�e� �o�p�t�i�o�n�a�l� �A�n�n�e�x�e�s� �o�n�l�y� �d�e�f�i�n�e� �t�h�i�n�g�s� �t�h�a�t� �w�e�r�e� �u�n�d�e�f�i�n�e�d� � � � �o�r� �u�n�s�p�e�c�i�f�i�e�d� �b�e�h�a�v�i�o�r� �w�i�t�h�o�u�t� �t�h�e� �A�n�n�e�x� �o�r� �t�h�a�t� �i�n� �t�h�e� �a�b�s�e�n�c�e� �o�f� �t�h�e� �A�n�n�e�x� � � � �w�o�u�l�d� �b�e� �r�e�j�e�c�t�e�d� �a�s� �a� �s�y�n�t�a�x� �v�i�o�l�a�t�i�o�n�.� �T�h�e� �e�x�a�m�p�l�e� � 0�x�1�.�8�p�+�4� �g�i�v�e�n� �i�n� � � � �7�.�2�4�.�1�.�6� �i�l�l�u�s�t�r�a�t�e�s� �t�h�i�s� �i�s�s�u�e�:� �t�h�e� �s�e�m�a�n�t�i�c�s� �r�e�q�u�i�r�e�d� �b�y� �t�h�e� �n�o�r�m�a�t�i�v�e� �t�e�x�t� � � � �i�n� �7�.�2�4�.�1�.�6� �a�r�e� �a�s� �s�h�o�w�n� �f�o�r� �t�h�e� �e�x�a�m�p�l�e�,� �w�h�e�r�e�a�s� �H�.�1�2�.�2� �p�a�r�a�g�r�a�p�h� �3� �w�o�u�l�d� � � � �r�e�q�u�i�r�e� �i�t� �t�o� �b�e� �a�c�c�e�p�t�e�d� �i�n� �i�t�s� �e�n�t�i�r�e�t�y� �a�n�d� �c�o�n�v�e�r�t�e�d� �t�o� �t�h�e� �n�u�m�b�e�r� �2�4� � � � �(�q�u�a�n�t�u�m� �e�x�p�o�n�e�n�t� �u�n�c�l�e�a�r�,� �b�u�t� �s�h�o�u�l�d� �b�e� �0�,� �a�s� �p�e�r� �t�h�e� �p�r�e�v�i�o�u�s� �c�o�m�m�e�n�t�)�.� � � � �v� This might sensibly be addressed by requiring the support for hexadecimal floating constants unconditionally in strtodN, with the relevant text (including anything relating to quantum exponent, and an update to the Example) moved to 7.24.1.6. However this is addressed, the C floating-point group should propose appropriate wording for the exact changes. �� GB-288 j�� The quantum exponent resulting from conversion of hexadecimal numbers is not clearly specified. J� Specify a preferred quantum exponent of 0 if the hexadecimal number can be exactly represented in the decimal type and the least possible if not, as for conversions from non-decimal floating types, in order to meet IEC 60559 requirements; the C floating-point group should propose appropriate wording for this. �� US 77 -289 �� H.12.3.1 �� heading A� � � � �T�h�e�r�e� �i�s� �a� �s�p�a�c�e� �b�e�f�o�r�e� �t�h�e� � N� �i�n� �t�h�e� �f�u�n�c�t�i�o�n� � � � �n�a�m�e�.� � � � � �7� � � � �R�e�m�o�v�e� �t�h�e� �s�p�a�c�e� �b�e�t�w�e�e�n� � s�t�r�f�r�o�m�e�n�c�f� �a�n�d� � N� .� � � � ��� US 80 -290 �� H.12.4 �� paragraph 1 H� � � � �T�h�e� � N� �i�n� � f�o�r� �e�a�c�h� �N� �i�s� �n�o�t� �i�t�a�l�i�c�i�z�e�d� �p�e�r� � � � �u�s�u�a�l� �p�r�a�c�t�i�c�e�.� � � � �*� � � � �I�t�a�l�i�c�i�z�e� �t�h�e� � N� �i�n� � f�o�r� �e�a�c�h� �N� .� � � � ��� US 81 -291 �� H.13 � � � � �P�a�g�e� � � � �5�7�6�:� �H�.�1�3�:� �T�y�p�e�-�g�e�n�e�r�i�c� �m�a�c�r�o�s� �&�l�t�;�t�g�m�a�t�h�.�h�&�g�t�;�:� �l�a�s�t� �t�a�b�l�e�:� � f�m�u�l�(�d�c�,� �d�)� � � � �M�o�v�e� �f�i�r�s�t� �&�q�u�o�t�;�u�n�d�e�f�i�n�e�d�&�q�u�o�t�;� �d�o�w�n� �o�n�e� �l�i�n�e�.� � � � ��� GB-292 p� The example for f32xsqrt(n) should call f32xsqrtf64x: n is an int, which is mapped to double, there is no corresponding function whose parameters have type exactly double, so _FloatNx types are preferred, and _Float64x exists (as remarked for a subsequent example), and can represent all double values (since those are the same as _Float64 values). @� � � � �I�n� �t�h�a�t� �e�x�a�m�p�l�e�,� �c�h�a�n�g�e� � f�3�2�x�s�q�r�t�f�6�4� �t�o� � f�3�2�x�s�q�r�t�f�6�4�x� .� � � � ��� GB-293 ¢� � � � �T�h�e� �t�a�b�l�e� �o�f� �e�x�a�m�p�l�e�s� �f�o�r� � M�a�c�r�o�s� �t�h�a�t� �r�o�u�n�d� �t�h�e� �r�e�s�u�l�t� �t�o� �a� � � � �n�a�r�r�o�w�e�r� �t�y�p�e� �i�n�c�l�u�d�e�s� �a�n� �e�n�t�r�y� � u�n�d�e�f�i�n�e�d� �w�h�e�r�e� �t�h�e� �f�i�n�a�l� � d� �i�s� �i�n� �a� � � � �d�i�f�f�e�r�e�n�t� �f�o�n�t� � � � �A� � � � �C�h�a�n�g�e� �t�h�a�t� � d� �t�o� �t�h�e� �s�a�m�e� �f�o�n�t� �a�s� �t�h�e� �r�e�s�t� �o�f� �t�h�e� �w�o�r�d�.� � � � ��� GB-294 D� � � � �I�n� �t�h�e� �f�i�r�s�t� �t�a�b�l�e� �o�f� �e�x�a�m�p�l�e�,� � p�o�w�3�2�x� �s�h�o�u�l�d� �b�e� � p�o�w�f�3�2�x� .� � � � �%� � � � �C�h�a�n�g�e� � p�o�w�3�2�x� �t�o� � p�o�w�f�3�2�x� .� � � � ��� US 82 -295 �� paragraph 5 e� � � � �I�n� �t�h�e� �s�e�c�o�n�d� �l�e�v�e�l� �b�u�l�l�e�t� �b�e�g�i�n�n�i�n�g� � F�o�r� � � � �p�r�e�f�i�x� �f�:� ,� �t�h�e� �f�i�r�s�t� �l�i�n�e� �h�a�s� �a� �b�a�d� �l�i�n�e� �b�r�e�a�k�.� � � � �u� � � � �I�n� �t�h�e� �s�e�c�o�n�d� �l�e�v�e�l� �b�u�l�l�e�t� �b�e�g�i�n�n�i�n�g� � F�o�r� � � � �p�r�e�f�i�x� �f�:� ,� �f�i�x� �t�h�e� �b�a�d� �l�i�n�e� �b�r�e�a�k� �a�t� �t�h�e� �e�n�d� �o�f� �t�h�e� �f�i�r�s�t� �l�i�n�e�.� � � � ��� US 83 -296 ]�� In the text right after the program text box, the first line has a bad line break. m�� In the text right after the program text box, fix the bad line break at the end of the first line. �� US 84 -297 Z� � � � �p�a�r�a�g�r�a�p�h� �6�,� �t�a�b�l�e� �f�o�l�l�o�w�i�n�g� � M�a�c�r�o�s� �t�h�a�t� � � � �r�o�u�n�d� �t�h�e� �r�e�s�u�l�t� �t�o� �a� �n�a�r�r�o�w�e�r� �t�y�p�e�&  � � � �l� � � � �I�n� �t�h�e� �s�e�c�o�n�d� �c�o�l�u�m�n�,� � u�n�d�e�f�i�n�e�d� �s�h�o�u�l�d� �b�e� �i�n� � � � �t�h�e� �s�a�m�e� �r�o�w� �a�s� � f�m�u�l�(�d�c�,� �d�)� �i�n� �t�h�e� �f�i�r�s�t� �c�o�l�u�m�n�.� � � � �n� � � � �I�n� �t�h�e� �s�e�c�o�n�d� �c�o�l�u�m�n�,� �l�o�w�e�r� � u�n�d�e�f�i�n�e�d� �t�o� �b�e� � � � �i�n� �t�h�e� �s�a�m�e� �r�o�w� �a�s� � f�m�u�l�(�d�c�,� �d�)� �i�n� �t�h�e� �f�i�r�s�t� �c�o�l�u�m�n�.� � � � ��� GB-298 �� H.2, H.2.1 F�� The initial paragraphs in these subclauses should be numbered. Z�� Add paragraph numbers (adjusting numbers of subsequent paragraphs accordingly). �� GB-299 �� H.2.1 '� � � � � e�n�c�o�d�n�g� �s�h�o�u�l�d� �b�e� � e�n�c�o�d�i�n�g� .� � � � �'� � � � �C�h�a�n�g�e� � e�n�c�o�d�n�g� �t�o� � e�n�c�o�d�i�n�g� .� � � � ��� GB-300 �� H.2.1, H.2.3, H.3 � In the tables in H2.1., and the Example below (paragraph 1), and in H.2.3 paragraph 1, and in H.3 paragraph 4 and paragraph 7 (MIN_EXP, MIN_10_EXP, MAX_EXP, MAX_10_EXP, MAX, MIN, TRUE_MIN desc<� r�i�p�t�i�o�n�s�)�,� � m�a�x� �a�n�d� � � � � m�i�n� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n� �i�t�a�l�i�c�s�.� � � � �]�� Change them out of italics throughout the places listed (use LaTeX \max and \min). �� US 85 -301 �� H.2.2 &�� Bad line break in second line. 6�� Fix the bad line break in para 2, second line. �� GB-302 �� H.2.4 *� � � � � s�u�b�l�c�a�u�s�e� �s�h�o�u�l�d� �b�e� � s�u�b�c�l�a�u�s�e� .� � � � �*� � � � �C�h�a�n�g�e� � s�u�b�l�c�a�u�s�e� �t�o� � s�u�b�c�l�a�u�s�e� .� � � � ��� US 74 -303 �� H.3 Y�� Page 550: H.3: *_EPSILON: Add "normalized" before "value". �� US 73 -304 w�� Page 550: H.3: *_MAX_EXP: "maximum negative integer" -> "maximum positive integer" �� GB-305 �� Index Æ� � � � � _�D�E�C�I�M�A�L�_�D�I�G� ,� � _�H�_�_� ,� � _�r� �s�h�o�u�l�d� �n�o�t� �b�e� �i�n�d�e�x�e�d� �u�n�d�e�r� � � � � i�d�e�n�t�i�f�i�e�r� �p�r�e�f�i�x� �(�t�h�e�y� �a�r�e� �s�u�f�f�i�x�e�s� �n�o�t� �p�r�e�f�i�x�e�s�)�.� � _�_�_�N�o�r�e�t�u�r�n�_�_� �s�h�o�u�l�d� � � � �n�o�t� �b�e� �i�n�d�e�x�e�d� �u�n�d�e�r� � p�r�a�g�m�a� �(�i�t� s� �a�n� �a�t�t�r�i�b�u�t�e�)�.� � � � �D�� Relocate those index entries to more appropriate categories. �� GB-306 :� The index has many entries that are inappropriate, or inappropriately described, as identified for J.6.1 and J.6.2 above. For example, the entry for pp_param (local notation in an example, not a pragma), generic_*_type (not types, just local notation), frompfp (no such functions), and fragments of function and macro names (could be indexed if described appropriately as function or macro families, but not when described as functions or macros). Likewise for some uppercase variants such as ADDD, ADDF, XADDD, XADDF (macro name fragments). l�� Remove or change descriptions for all entries described as problematic for J.6.1 and J.6.2 above. �� US 93 -307 ã�� Page 711: The following are missing from index for "identifier suffix":  _DECIMAL_DIG  _DIG  _EPSILON  _MANT_DIG  _MAX_10_EXP  _MAX_EXP  _MIN_10_EXP  _MIN_EXP  _SNAN  _TRUE_MIN �� US 92 -308 A�� Page 601: The entry "_EXT__" should be removed. �� US 91 -309 x�� Page 693: There are 2 index entries for "IEC 60559".  I assume that they should be merged together. �� US 90 -310 É�� Pages 674 & 710: There are several suffix terms in the index that are listed as prefix terms:  _DECIMAL_DIG identifier prefix,  _H__ identifier prefix,  _r identifier prefix, �� GB-311 �� Introduction ¸ � � � �w�w�w�.�o�p�e�n�-�s�t�d�.�o�r�g� �n�o�w� �u�s�e�s� � � � �h�t�t�p�s� �s�o� �t�h�e� �l�i�n�k� �s�h�o�u�l�d� �b�e� �u�p�d�a�t�e�d� �a�c�c�o�r�d�i�n�g�l�y�.� �A�l�s�o�,� �t�h�e� �R�a�t�i�o�n�a�l�e� �a�n�d� �t�h�e� � � � �l�o�g� �o�f� �D�e�f�e�c�t� �R�e�p�o�r�t�s� �m�a�y� �n�o�t� �b�e� �t�h�e� �b�e�s�t� �e�x�a�m�p�l�e�s� �o�f� �a�d�d�i�t�i�o�n�a�l� �i�n�f�o�r�m�a�t�i�o�n� � � � �p�r�e�s�e�n�t� �t�h�e�r�e�,� �s�i�n�c�e� �t�h�e� �R�a�t�i�o�n�a�l�e� �h�a�s�n� t� �b�e�e�n� �u�p�d�a�t�e�d� �f�o�r� �C�1�1� �o�r� �l�a�t�e�r� � � � �s�t�a�n�d�a�r�d� �r�e�v�i�s�i�o�n�s� �a�n�d� �r�e�p�o�r�t�e�d� �i�s�s�u�e�s� �a�r�e� �n�o� �l�o�n�g�e�r� �r�e�f�e�r�r�e�d� �t�o� �a�s� �D�e�f�e�c�t� � � � �R�e�p�o�r�t�s� �b�e�c�a�u�s�e� �t�h�e�y� �d�o� �n�o�t� �g�e�n�e�r�a�l�l�y� �m�e�e�t� �c�u�r�r�e�n�t� �I�S�O� �r�e�q�u�i�r�e�m�e�n�t�s� �f�o�r� � � � �D�e�f�e�c�t� �R�e�p�o�r�t�s�.� � � � � �� Change http to https. Make other changes to the examples of additional information based on discussion of what might be the best examples to give. �� FR-312 �� p7 7� � � � �T�h�e�r�e� �i�s� �n�o� �r�e�l�a�t�e�d� � R�a�t�i�o�n�a�l�e� � � � �d�o�c�u�m�e�n�t� � � � � � � � �=�� remove reference to such a document from the text �� GB-313 �� J.1 4� � � � �I�t�e�m� �5�6� �h�a�s� �a� �s�t�r�a�y� � c� �b�e�f�o�r�e� � 7�.�3�1�.�6�.�4�.�1� .� � � � �$� � � � �R�e�p�l�a�c�e� �t�h�a�t� � c� �b�y� �a� �s�p�a�c�e�.� � � � ��� GB-314 �� J.2 V�� Item 54 does not reflect changes to the definition of constant expressions. g� � � � �C�h�a�n�g�e� � e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�s� �t�o� � n�a�m�e�d� �a�n�d� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� � � � �c�o�n�s�t�a�n�t�s� �o�f� �a�r�i�t�h�m�e�t�i�c� �t�y�p�e� .� � � � ��� GB-315 V�� Item 53 does not reflect changes to the definition of constant expressions. \� � � � �I�n�s�e�r�t� � a� �n�a�m�e�d� �c�o�n�s�t�a�n�t�,� �a� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� �c�o�n�s�t�a�n�t�,� �a�t� �t�h�e� � � � �s�t�a�r�t� �o�f� �t�h�e� �l�i�s�t�.� � � � ��� GB-316 V�� Item 52 does not reflect changes to the definition of constant expressions. Ê� � � � �C�h�a�n�g�e� � e�n�u�m�e�r�a�t�i�o�n� �c�o�n�s�t�a�n�t�s� �t�o� � n�a�m�e�d� �a�n�d� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� � � � �c�o�n�s�t�a�n�t�s� �o�f� �i�n�t�e�g�e�r� �t�y�p�e� .� �C�h�a�n�g�e� � f�l�o�a�t�i�n�g� �c�o�n�s�t�a�n�t�s� �t�o� � f�l�o�a�t�i�n�g�,� �n�a�m�e�d�,� � � � �a�n�d� �c�o�m�p�o�u�n�d� �l�i�t�e�r�a�l� �c�o�n�s�t�a�n�t�s� �o�f� �f�l�o�a�t�i�n�g� �t�y�p�e� .� � � � ��� GB-317 �� J.3.12 %� � � � �I�t�e�m� �4�3� �c�o�n�t�a�i�n�s� �a� �s�t�r�a�y� � )� .� � � � �� � � � �R�e�m�o�v�e� �t�h�a�t� � )� .� � � � ��� US 86 -318 �� J.6.1 Ý�� Pages 604, 606, 675, 686: What are "__suffix__" and "__prefix__" that only appear in J.6.1 Rule based identifiers and the index? (page 168 uses "prefix" and "suffix"). �� GB-319 � _EXT__, _Float,  FP_FAST_D, FP_FAST_F, stdc_, strfromencbind, strfromencdecd, strfromencf, strto, strtoencbind, strtoencdecd, strtoencf are fragments of identifiers or keywords (of no significance by themselves) and should not appear in this list. ,�� Remove those entries from this list. �� GB-320 h�� __alignas_is_defined and __alignof_is_defined were removed so should not appear in this list. O�� Remove __alignas_is_defined and __alignof_is_defined from this list. �� GB-321 �� J.6.1, J.6.2 ‘�� __pp_param__ and pp_param are an example in text, not identifiers with any special significance, and should not appear in these lists. :�� Remove __pp_param__ and pp_param from these lists. �� GB-322 �� J.6.2 š� � � � �T�h�e� �n�a�m�e�s� �r�e�s�e�r�v�e�d� �f�o�r� �c�o�m�p�l�e�x�.�h� �b�y� �7�.�3�3�.�1� �a�r�e� �o�n�l�y� �l�i�s�t�e�d� �i�n� � � � �t�h�e�i�r� � d�o�u�b�l�e� �f�o�r�m�s�,� �n�o�t� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� �f�l�o�a�t� �a�n�d� �l�o�n�g� �d�o�u�b�l�e� � � � �i�d�e�n�t�i�f�i�e�r�s�.� � � � �S� � � � �A�d�d� �t�h�e� �c�o�r�r�e�s�p�o�n�d�i�n�g� � f�l�o�a�t� �a�n�d� � l�o�n�g� �d�o�u�b�l�e� �i�d�e�n�t�i�f�i�e�r�s� �t�o� �t�h�e� � � � �l�i�s�t�.� � � � ��� GB-323 Ó�� generic_count_type, generic_return_type, generic_value type, QChar, QVoid and QWchar_t are notation used for some type-generic function declarations and have no special significance as identifiers. +�� Remove those entries from the list. �� GB-324 ƒ� � � � �T�h�e� �e�i�g�h�t� �e�n�t�r�i�e�s� �s�t�a�r�t�i�n�g� � f�r�o�m�p�f�p� �(�n�o�t�e� �t�h�e� �f�i�r�s�t� � p� )� �a�r�e� � � � �e�n�t�i�r�e�l�y� �s�p�u�r�i�o�u�s�;� �t�h�e�r�e� �a�r�e� �n�o� �s�u�c�h� �s�t�a�n�d�a�r�d� �i�d�e�n�t�i�f�i�e�r�s�.� � � � ��� GB-325 >� acosd, acoshd, acospid, addd, addf, asind, asinhd, asinpid, atan2d, atan2pid, atand, atanhd, atanpid, canonicalized, cbrtd, ceild, compoundnd, copysignd, cosd, coshd, cospid, DEC, DECN_, DECN, decodebin, decodebind, decodedec, decodedecd, decodef, divd, divf, encbind, encdecd, encf, encodebin, encodebind, encodedec, encodedecd, encodef, erfcd, erfd, <� �exp10d, exp10m1d, exp2d, exp2m1d, expd, expm1d, fabsd, fdimd, Float, floord, FLT, FLTN_, FLTN, fmad, fmaxd, fmaximumd, fmaximum_magd, fmaximum_mag_numd, fmaximum_numd, fmind, fminimumd, fminimum_magd, fminimum_mag_numd, fminimum_numd, fmodd, frexpd, fromfpd, fromfpxd, getpayloadd, HUGE_VAL_D, HUGE_VAL_F, hypotd, ilogbd, ldexpd, lgammad, llogbd, llquantexpd, llrintd, llroundd, log10d, log10p1d, log2d, log2p1d, logbd, logd, log1pd, lrintd, lroundd, modfd, muld, mulf, N, nand, nearbyintd, nextafterd, nextdownd, nextupd, powd, pownd, powrd, quantized, quantumd, remainderd, rintd, rootnd, roundd, roundevend, rsqrtd, samequantumd, scalblnd, scalbnd, sind, sinhd, sinpid, sqrtd, subd, subf, tand, tanhd, tgammad, truncd, ufromfpd, ufromfpxd, X_, xaddd, xaddf, xdivd, xdivf, xfmad, xfmaf, xmuld, xmulf, xsqrtd, xsqrtf, xsubd, xsubf are fragments of identifiers (of no significance by themselves) and should not appear in this list. m�� Remove those entries from the list (without affecting their formatting elsewhere in the document). �� IE-326 �� K.3.5.2.1  � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� � � � �1�.�3�:� � � � �T�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� � � � �s�u�p�p�o�r�t�s� �t�h�e� �c�o�n�c�e�p�t�s�,� �f�i�l�e�s� �o�p�e�n�e�d� �f�o�r� �w�r�i�t�i�n�g� �s�h�a�l�l� �b�e� �o�p�e�n�e�d� �w�i�t�h� � � � �e�x�c�l�u�s�i�v�e� �(�a�l�s�o� �k�n�o�w�n� �a�s� �n�o�n�-�s�h�a�r�e�d�)� �a�c�c�e�s�s�.� �I�f� �t�h�e� �f�i�l�e� �i�s� �b�e�i�n�g� �c�r�e�a�t�e�d�,� � � � �a�n�d� �t�h�e� �f�i�r�s�t� �2� �c�h�a�r�a�c�t�e�r� �o�f� �t�h�e� �m�o�d�e� �s�t�r�i�n�g� �i�s� �n�o�t� � u� �,� �t�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� � � � �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� �s�u�p�p�o�r�t�s� �i�t�,� �t�h�e� �f�i�l�e� �s�h�a�l�l� �h�a�v�e� �a� �f�i�l�e� �p�e�r�m�i�s�s�i�o�n� �t�h�a�t� � � � �p�r�e�v�e�n�t�s� �o�t�h�e�r� �u�s�e�r�s� �o�n� �t�h�e� �s�y�s�t�e�m� �f�r�o�m� �a�c�c�e�s�s�i�n�g� �t�h�e� �f�i�l�e�.� �I�f� �t�h�e� �f�i�l�e� �i�s� � � � �b�e�i�n�g� �c�r�e�a�t�e�d� �a�n�d� �f�i�r�s�t� �c�h�a�r�a�c�t�e�r� �o�f� �t�h�e� �m�o�d�e� �s�t�r�i�n�g� �i�s� � u� �,� �t�h�e�n� �b�y� �t�h�e� � � � �t�i�m�e� �t�h�e� �f�i�l�e� �h�a�s� �b�e�e�n� �c�l�o�s�e�d�,� �i�t� �s�h�a�l�l� �h�a�v�e� �t�h�e� �s�y�s�t�e�m� �d�e�f�a�u�l�t� �f�i�l�e� �a�c�c�e�s�s� � � � �p�e�r�m�i�s�s�i�o�n�s�.� � � � ��� US 87 -327 — � � � �F�r�o�m� �N�3�0�5�9� �S�e�c�t�i�o�n� �1�.�3�:� � � � �T�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� � � � �s�u�p�p�o�r�t�s� �t�h�e� �c�o�n�c�e�p�t�s�,� �f�i�l�e�s� �o�p�e�n�e�d� �f�o�r� �w�r�i�t�i�n�g� �s�h�a�l�l� �b�e� �o�p�e�n�e�d� �w�i�t�h� � � � �e�x�c�l�u�s�i�v�e� �(�a�l�s�o� �k�n�o�w�n� �a�s� �n�o�n�-�s�h�a�r�e�d�)� �a�c�c�e�s�s�.� �I�f� �t�h�e� �f�i�l�e� �i�s� �b�e�i�n�g� �c�r�e�a�t�e�d�,� � � � �a�n�d� �t�h�e� �f�i�r�s�t� �2� �c�h�a�r�a�c�t�e�r� �o�f� �t�h�e� �m�o�d�e� �s�t�r�i�n�g� �i�s� �n�o�t� � u� �,� �t�o� �t�h�e� �e�x�t�e�n�t� �t�h�a�t� � � � �t�h�e� �u�n�d�e�r�l�y�i�n�g� �s�y�s�t�e�m� �s�u�p�p�o�r�t�s� �i�t�,� �t�h�e� �f�i�l�e� �s�h�a�l�l� �h�a�v�e� �a� �f�i�l�e� �p�e�r�m�i�s�s�i�o�n� �t�h�a�t� � � � �p�r�e�v�e�n�t�s� �o�t�h�e�r� �u�s�e�r�s� �o�n� �t�h�e� �s�y�s�t�e�m� �f�r�o�m� �a�c�c�e�s�s�i�n�g� �t�h�e� �f�i�l�e�.� �I�f� �t�h�e� �f�i�l�e� �i�s� � � � �b�e�i�n�g� �c�r�e�a�t�e�d� �a�n�d� �f�i�r�s�t� �c�h�a�r�a�c�t�e�r� �o�f� �t�h�e� �m�o�d�e� �s�t�r�i�n�g� �i�s� � u� �,� �t�h�e�n� �b�y� �t�h�e� � � � �t�i�m�e� �t�h�e� �f�i�l�e� �h�a�s� �b�e�e�n� �c�l�o�s�e�d�,� �i�t� �s�h�a�l�l� �h�a�v�e� �t�h�e� �s�y�s�t�e�m� �d�e�f�a�u�l�t� �f�i�l�e� �a�c�c�e�s�s� � � � �p�e�r�m�i�s�s�i�o�n�s�.� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� US 88 -328 �� K.3.9.2.2 Y�� Bad line break and inconsistent use of space in front of operator parentheses. R� � � � �R�e�m�o�v�e� �s�p�a�c�e� �a�f�t�e�r� � s�i�z�e�o�f� ,� �w�h�i�c�h� �s�h�o�u�l�d� �f�i�x� �t�h�e� �b�a�d� �l�i�n�e� �b�r�e�a�k� � � � �t�h�e�r�e�.� � � � ��� GB-329 �� L.3 _� � � � �I�n� �t�h�e� �p�e�n�u�l�t�i�m�a�t�e� �b�u�l�l�e�t� �p�o�i�n�t�,� � f�r�e�e� �a�n�d� � r�e�a�l�l�o�c� �s�h�o�u�l�d� �b�e� �i�n� � � � �f�i�x�e�d�-�w�i�d�t�h� �t�y�p�e�.� � � � �8� � � � �C�h�a�n�g�e� � f�r�e�e� �a�n�d� � r�e�a�l�l�o�c� �t�o� �f�i�x�e�d�-�w�i�d�t�h� �t�y�p�e�.� � � � ��� GB-330 �� M.1 0�� The ptrdiff_t entry has a wording issue. :� � � � �C�h�a�n�g�e� � o�f� �a�t� �l�e�a�s�t� �1�6� �t�o� � o�f� �w�i�d�t�h� �a�t� �l�e�a�s�t� �1�6� .� � � � ��� GB-331 3�� The stdbit.h entry has some wording issues. }� � � � �C�h�a�n�g�e� � i�m�p�l�e�m�e�n�t�a�t�i�o�n� s� �t�o� � i�m�p�l�e�m�e�n�t�a�t�i�o�n�s�  �(�m�o�v�i�n�g� �a�p�o�s�t�r�o�p�h�e� � � � �a�f�t�e�r� � s� )�.� �C�h�a�n�g�e� � e�f�f�i�c�i�e�n�c�y� �t�o� � e�f�f�i�c�i�e�n�t� .� � � � ��� GB-332 *�� The _BitInt entry is badly worded. Œ� � � � �C�h�a�n�g�e� � a�d�d�e�d� �t�h�e� �_�B�i�t�I�n�t� �t�h�e� �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e�s� �t�o� � a�d�d�e�d� � � � �b�i�t�-�p�r�e�c�i�s�e� �i�n�t�e�g�e�r� �t�y�p�e�s� �_�B�i�t�I�n�t�(�N�)� �a�n�d� �u�n�s�i�g�n�e�d� �_�B�i�t�I�n�t�(�N�)� .� � � � ��� NEN/NL9-333 �� n/a d � � � �N�3�0�3�1� �f�a�i�l�e�d� � � � �g�a�i�n� �c�o�n�s�e�n�s�u�s� �a�t� �t�h�e� �l�a�s�t� �W�G�1�4� �m�e�e�t�i�n�g� �n�o�t� �d�u�e� �t�o� �f�u�n�d�a�m�e�n�t�a�l� �d�i�s�a�g�r�e�e�m�e�n�t�s� � � � �a�b�o�u�t� �t�h�e� �n�e�c�e�s�s�i�t�y� �o�f� �t�h�e� �f�u�n�c�t�i�o�n�a�l�i�t�y� �b�e�i�n�g� �i�n�t�r�o�d�u�c�e�d� �i�n� �t�h�a�t� �p�a�p�e�r�,� �b�u�t� � � � �d�u�e� �t�o� �m�i�n�o�r� �d�e�t�a�i�l�s� �(�n�a�m�i�n�g� �o�f� �t�h�e� �f�u�n�c�t�i�o�n�a�l�i�t�y�,� �p�o�t�e�n�t�i�a�l� �a�b�o�u�t� �p�o�t�e�n�t�i�a�l� � � � �p�e�r�f�o�r�m�a�n�c�e�,� �a�n�d� �t�h�e� �n�u�a�n�c�e�s� �o�f� �i�n�i�t�i�a�l�i�z�i�n�g� �a�n�d� �h�a�n�d�l�i�n�g� �t�h�e� � m�b�s�t�a�t�e�_�t� � � � �o�b�j�e�c�t�)�.� �H�o�w�e�v�e�r�,� �t�h�e� �s�i�t�u�a�t�i�o�n� �a�s� �o�u�t�l�i�n�e�d� �i�n� �t�h�e� �m�o�t�i�v�a�t�i�o�n� �o�f� �t�h�a�t� �p�a�p�e�r�,� � � � �p�a�i�r�e�d� �w�i�t�h� �t�h�e� �u�b�i�q�u�i�t�y� �a�n�d� �c�e�n�t�r�a�l�i�t�y� �o�f� �C�,� �m�e�a�n�s� �t�h�a�t� �c�o�r�r�e�c�t�l�y� �p�r�o�c�e�s�s�i�n�g� � � � �t�e�x�t� �i�s� �f�r�a�g�i�l�e� �a�n�d� �c�o�m�p�l�e�x�.� � � � � � � � �E�s�p�e�c�i�a�l�l�y� �w�h�e�n� � � � �i�t� �c�o�m�e�s� �t�o� �h�u�m�a�n� �n�a�m�e�s�,� �t�h�i�s� �i�s� �f�u�n�d�a�m�e�n�t�a�l�l�y� �a�t� �o�d�d�s� �w�i�t�h� �l�e�g�i�s�l�a�t�i�o�n� �t�h�a�t� � � � �e�m�p�h�a�s�i�z�e�s� �t�h�e� �r�i�g�h�t� �o�f� �p�e�o�p�l�e� �t�o� �h�a�v�e� �t�h�e�i�r� �n�a�m�e� �r�e�p�r�e�s�e�n�t�e�d� �c�o�r�r�e�c�t�l�y� �(�e�.�g�.� � � � �G�D�P�R�;� �a�l�s�o� �c�o�n�f�i�r�m�e�d� �i�n� �c�o�u�r�t� �r�e�c�e�n�t�l�y�)�;� �E�U� �c�i�t�i�z�e�n�s� �w�i�t�h� �n�o�n�-�A�S�C�I�I� � � � �c�h�a�r�a�c�t�e�r�s� �i�n� �t�h�e�i�r� �b�i�r�t�h� �n�a�m�e�s� �a�r�e� �a�f�f�e�c�t�e�d� �b�y� �t�h�i�s� �i�n� �a� �v�a�r�i�e�t�y� �o�f� � � � �s�e�r�v�i�c�e�s�,� �f�r�o�m� �b�a�n�k�i�n�g� �t�o� �a�i�r�l�i�n�e� �t�i�c�k�e�t�s� �t�o� �o�n�l�i�n�e� �p�u�r�c�h�a�s�e�s�.� �I�n� �a�d�d�i�t�i�o�n� �t�o� � � � �t�h�e� �m�o�t�i�v�a�t�i�o�n� �o�u�t�l�i�n�e�d� �i�n� �N�3�0�3�1�,� �t�h�e� �i�m�m�e�n�s�e�l�y� �w�i�d�e�s�p�r�e�a�d� �o�c�c�u�r�r�e�n�c�e� �o�f� � � � �m�o�j�i�b�a�k�e� �u�p�o�n� �e�n�t�e�r�i�n�g� �n�o�n�-�A�S�C�I�I� �c�h�a�r�a�c�t�e�r�s�i�s� �t�e�s�t�a�m�e�n�t� �t�o� �t�h�e� �f�a�c�t� � � � �t�h�i�s� �i�s� �n�o�t� �m�e�r�e�l�y� �a� �p�r�o�b�l�e�m� �o�f� �i�n�a�d�e�q�u�a�t�e�l�y� �s�k�i�l�l�e�d� �p�r�o�g�r�a�m�m�e�r�s� �a�n�d� � � � �p�r�o�g�r�a�m�m�e�r�s�,� �b�u�t� �a� �f�u�n�d�a�m�e�n�t�a�l� �s�h�o�r�t�c�o�m�i�n�g� �o�f� �t�h�e� �c�u�r�r�e�n�t� �s�t�a�n�d�a�r�d�i�z�a�t�i�o�n�.� � � � � � � � �W�e� �a�l�s�o� �f�u�n�d�a�m�e�n�t�a�l�l�y� �b�e�l�i�e�v�e� �t�h�e� �f�u�n�c�t�i�o�n�a�l�i�t�y� �w�o�u�l�d� �h�a�v�e� �m�a�d�e� �i�t� � � � �i�n�t�o� �C�2�3� �a�t� �t�h�e� �p�r�e�v�i�o�u�s� �m�e�e�t�i�n�g� �i�f� �t�h�e� �a�u�t�h�o�r� �h�a�d� �m�o�r�e� �t�i�m�e� �t�o� �a�d�d�r�e�s�s� �t�h�e� � � � �w�o�r�d�i�n�g� �n�e�e�d�s� �a�t� �a�n� �e�a�r�l�i�e�r� �d�a�t�e� �(�t�h�e� �c�h�a�n�g�e�s�<�þ� requested came in some 2 days before the author was meant to tweak). We do not blame anyone for this (everyone is busy), but a fresh look after the comments were addressed in post may help. ë� � � � �C�o�n�s�i�d�e�r� �t�a�k�i�n�g� �a� �p�o�l�l� �t�o� �a�d�o�p�t� �N�3�0�3�1� �(�o�r� �a� �s�u�i�t�a�b�l�y� �m�o�d�i�f�i�e�d� �v�e�r�s�i�o�n� � � � �o�r� �s�u�c�c�e�s�s�o�r� �r�e�v�i�s�i�o�n�)� �f�o�r� �C�2�3�.� �P�a�r�t�i�c�u�l�a�r�l�y�,� �t�h�e� �f�u�n�c�t�i�o�n�a�l�i�t�y� �a�s� �i�t� �r�e�l�a�t�e�s� � � � �t�o� �&�l�t�;�s�t�d�m�c�h�a�r�.�h�&�g�t�;� �h�e�a�d�e�r� �a�n�d� �i�t� s� �e�n�c�o�d�i�n�g� �t�r�a�n�s�l�a�t�i�o�n� �f�u�n�c�t�i�o�n�a�l�i�t�y�.� � � � ��� FR-334 �� overall ;�� There are mis-classifications of identifiers !�� see accompanying document �� FR-335 0�� Diverging policies for version numbering (�� see accompanying document �� FR-336 �� Colors for code snippets �� US 2 -337 �� Pg vii m�� Page vii: "heads" in "The wording for freestanding heads for <string.h>" �� GB-338 �� throughout Ò�� The formatting of footnote references is inconsistent throughout the draft; sometimes the footnote number appears before punctuation, sometimes after, sometimes preceded by a space, sometimes not. ³�� Change to follow usual practice consistently: no space before the footnote number, and, if adjacent to punctuation, coming after rather than before that punctuation. ��MB/NC��Line num ��Clause/Sub ��Par/Fig/Tab��Type��Comments��Proposed ��Secretariat]��This is NOT the official copy of the comments. This spreadsheet is for ease of manipulation. ��WG 14/N 3086ÿ�ª �9.�� ���þM��Ñ��P��0��cW�� ��öb��¥��k��Â��%t��±��w��ž��ë}��w��X„��ä��†‰����õŽ��]���ӗ��; ��à©��H��ƒ¬��ë��ýº��A ��y¿��½��Ä��V��”É��Ø��Ò��=��ZÞ��z��·å��×��eë��…��‰ñ��…��ú�� ��8�4��‘�i���f�> ���Ù��´.�Œ��>�Ì��ÞT�o��,a�½��k�£��þp�l��w�‹��z�| ��^†�Ì��’—�Ü��<Ÿ�†��×£�!��’¨�Ü��°�'���n¼�” ��àÁ���ÿÈ�%��åÏ� �� Ý� ��¤à�±��æ�ª��×è�ä��Áò�ª��‹÷�t��û� ���þ��F�/��á�¦���¶�{ ��?� ��A��� %�e��Ñ'�–��ñ*�¶��Ö4�w��57�Ö��U@�ö��1E�Ò��¼H�]��>R�»��Þ^�[��Œh� ��ˆw�á��v‚�Ï��Œ�é��›�÷ ��«¬�à��²À�Ã��•Ð�¦��úØ�ç�� å�ö��<í�)��ßï�Ì��tù�=��«��t��(�ñ�� 8�Ž��5S�“��Äh�"��êl�H��mo�Ë��Kr�Ž���?t�‚��Mv���Ìw���¦{�é ��·€�ú��’ƒ�Õ��»‡�þ��ˆ�Ë��J’�i���&ž�E ��Ú¢�ù��¨�¬��׬�ö��²°�Ñ��›³�–��h·�c�� ½� ��µÂ�°��Ç�z�� Ê�›��|Î�w��³Û�Š ��ã�t��ó�Ð���Iö�ü��¼ø�o��c�c������������������–™ –��������������PK�����!�éÞ¿ÿ��������[Content_Types].xml¬‘ËNÃ0E÷Hüƒå-Jœ²@%é‚ÇŽÇ¢|Àș$ÉØ²§Uû÷LÒTB¨ l,Ù3÷ž;ãr½µÃ˜œ§J¯òB+$ëG]¥ß7OÙ­V‰ M ŠÔ¯À›™ÝõN ‘›¸DJ¥›++2„a,/ó”$ðnÄEŒ<ŠñÊPà#г•ÕJe}%Æ4 P‚cP{g4¢!A}­2ØÊ•w<&Jꁐ‰žVM ƒT5BNe› tˆY3€y†ü¨OŽU€– ^4ƒŠù V¶®®àÍLˆ©²%¹®ùËä2áÁª™SŒŤÕn­qe§Ðo�LÍã:N»S-ô�CðÔÚRÖYënT[¹ÎÈþœ×Ý®Ô+5_Ò¿6gs£ÕjÕ™-V©ٟµ9üFe½¶½êà ÈâësøZk»Ý^wðdñësøî•ÆzÍÅPÄhr0‡Öív3ídÄÙ /|à• >CA6Ù¥§ñD-ʵ?ࢠ� dXÑ©iJF8„,nãx (ÖàM‚KoìP(ç†ô\H†‚¦ª¼Ÿb¨ˆ™¾WÏ¿}õü)zõüÉÉÃg'8yôèäá÷V—#x'ã²à˯?ùýËÑoO¿zùø3?^–ñ?÷ÑO?~êBÍ,zñù“_ž=yñÅÇ¿~óØßxP†÷iL$ºMŽÐ>Á7CŒk9ˆóIô#L nêŽŠàí)f>\‹¸äÝÐ<|À듎­½HLõÌ|3Šà.ç¬Å…—€›z®ÃýI2öO.&eÜ>Ƈ¾¹Û8qBۙ¤Ð5ó¤t¸oGÄ1sáDá1IˆBú? ÄãÝ}J^wi(¸ä#…îSÔÂÔKIŸœDš Ý 1ÄeêóBíp³{µ8óy½C]$fãû„94^Ç…cŸÊ>ŽY™ð[XE>#{S–q© ÒcÂ8ê ‰”>™;ü-ý&†~å û.›Æ.R(zàÓy s^Fîðƒv„ãԇíÑ$*cߓ¢íqåƒïr·Bô3Ä' Ã}'Üg7‚»tì˜4Kýf"<±¼N¸“¿½)abº ´t§SÇ4y]Ûfú¶ámÛnÛ°ˆùŠçÆ©f½÷/lÑ;x’쨊ù%êm‡~Û¡ƒÿ|‡^TËߗg­º´ÞØ½¶ÙyÇ 7Þ#ÊXOM¹%ÍÞ[Â4젖3‡NRÄÒ~êJ† ÜX`#ƒWPõ"œÂ¾½h%c™©K”r çE3ìÕ­ñ°÷Wö´Y×çÛ9$V»|h‡×ôp~Ü(Ô«ÆæL›O´¦,;ÙڕL)øö&“UµQKÏV5¦™¦èÌV¸¬)6çr ¼p  6agƒ`?,¯Ã±_O çÌÈPónc”‡ÅDᯠQæµu$ÂCbCä —Ø¬šØå)4çŸvÏæÈùØ,XÒÎ6¤ÅâüY’ä\ÁŒd<]M,)×KÐQ3hÔWë qÚ Fp҅Ÿq A“z/ˆÙ®‹B%l֞Y‹¦Hg7üYU…Ë‹ã”q*¤ÚÁ2²14¯²P±DÏdí_­×t²]Œžf²œk"ÿ˜j7´d4"¡*»4¢¹³Y'äED/¡›ˆ} áNµ?C*á´~€Û5ͶyåöÖ¬Ó”ï´ ÎŽc–F8ë–úv&¯8 7ý¤°Á<•Ìß¼¶çÎø‹r¥œÆÿ3Wôr�7kC.wFºRš*âЅ҈†]ë¾é-pC ¯|¸b6ÿ r¨ÿ·5gu˜²†ƒ Ú§c$(,'*„ìA[2Ùw†²j¶ôX•,Sd2ªd®L­ÙrHX_÷Àu݃Aª›n’µƒ;îsVAƒ±Þ£”ëÍédÅÒikàïÞ¸Øb§Ní%tþæü&«ûlõ³òF<_#ˎè³]R-¯ gñk4²©ÞЄeàÒZk;֜ǫõÜ8ˆâ¼Ç0XìgR¸BúXÿ¨™ý^¡Ô>߇ފàóƒåAV_Ò] 2H7Hûk�û;h“I«²Ôf;ÍZ¾X_ðFµ˜÷ÙÚ²eâ}N²‹M”;S‹Ivưõ[H5Döt‰ÂÐ(?‡˜À˜]åoQ|ð�½·þf¿NÉžL¤{Âd׀§ÙO&í‚k³NŸa4’%ûd„èð8?Lز_Hò-²Ak1h…àšïÐà fx-jWËBxõláBÂÌ -»6j>ð},kÜúhxÛd­×º¸r¦Xòg([Âx?eޓϲ”Ùƒâkõ”©ã×S–1äÍ'|áŽ^=Óaѱ™nRvë���ÿÿ�PK�����!� ѐŸ¶�����'���theme/theme/_rels/themeManager.xml.rels„M Â0„÷‚wooÓº‘&݈ЭÔ„ä5 6?$Qìí ®,.‡a¾™i»—Éc2Þ1hª:é•qšÁm¸ìŽ@RN‰Ù;d°`‚Žo7íg‘K(M&$R(.1˜r'J“œÐŠTù€®8£Vä"£¦AÈ»ÐH÷u} ñ›|Å$½b{Õ�–Pšÿ³ý8‰g/]þQAsم(¢ÆÌà#›ªLÊ[ººÄß���ÿÿ�PK-������!�éÞ¿ÿ����������������������[Content_Types].xmlPK-������!�¥Ö§çÀ���6�� �������������0��_rels/.relsPK-������!�ky–ƒ���Š������������������theme/theme/themeManager.xmlPK-������!�0ˆk��Þ���������������Ö��theme/theme/theme1.xmlPK-������!� ѐŸ¶�����'������������� ��theme/theme/_rels/themeManager.xml.relsPK������]�� ����›�›�������������Œ�Œ�������������� ��� ���ZOÍÉ���� <���������U�� �t�ú.�‚A� T�’f�y�¢‹�*ž�²°�:Ã�|Ï� ��� ��d����������ü©ñÒMbP?_���*����+����‚���€����������%���@��Á������ƒ����„����&��ffffffæ?'��ffffffæ?(��������è?)��������è?¡�"��@��������333333Ó?333333Ó?¿œ&�œ��������������������������<3��������U�� �������U���� �������� �@����€>����� �@����€>����� �@���������� �@���������� �@���������� �@���������� �@���������� �@������� ��� �@������� ��� �@������� ��� �@������� ��� �@������� ��� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@���������� �@������ý� �����>����ý� ����>�ÿ��ý� ����>�÷��ý� ���>�ø��ý� ���>�ù��ý� ���>�ú��ý� ���>�û��ý� ���>�ü��ý� ���>�ý��ý� ���>�þ��ý� ���������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� ��������ý� �������ý� �������ý� ���� ���ý� ���� ���ý� ���� ���ý� ���� ���ý� �������ý� �������ý� ����� ���ý� �������ý� �������ý� �������ý� ���� ���ý� �������ý� �������ý� �������ý� �������ý� ��������ý� �������ý� �������ý� �������ý� ���� ���ý� �������ý� �������ý� �������ý� �������ý� ��������ý� �������ý� �������ý� �������ý� ���� ���ý� �������ý� �������ý� �������ý� �������ý� ��������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� �������ý� � �������ý� � ������ý� � ��� ���ý� � ���!���ý� � ��� ���ý� � ���"���ý� � ���#���ý� � ������ý� � ������ý� � ����$���ý� � ������ý� � ���%���ý� � ������ý� � ��� ���ý� � ���&���ý� � ���'���ý� � ������ý� � ������ý� � ����(���ý� � ������ý� � ���)���ý� � ������ý� � ��� ���ý� � ���*���ý� � ���+���ý� � ������ý� � ������ý� � ����,���ý� � ������ý� � ���)���ý� � ���-���ý� � ��� ���ý� � ���.���ý� � ���/���ý� � ������ý� � ������ý� � ����0���ý� � ������ý� � ���)���ý� � ���-���ý� � ������ý� � ���1���ý� � ���2���ý� � ������ý� � ������ý� �����3���ý� �������ý� ����4���ý� �������ý� ���� ���ý� ����5���ý� ����6���ý� �������ý� �������ý� �����7���ý� �������ý� ����8���ý� ����9���ý� �������ý� ����:���ý� ����;���ý� �������ý� �������ý� �����<���ý� �������ý� ����=���ý� ����>���ý� �������ý� ����?���ý� ����@���ý� �������ý� �������ý� �����A���ý� �������ý� ����=���ý� ����B���ý� ���� ���ý� ����C���ý� ����D���ý� �������ý� �������ý� �����E���ý� �������ý� ����=���ý� ����F���ý� ���� ���ý� ����G���ý� ����H���ý� �������ý� �������ý� �����I���ý� �������ý� ����=���ý� ����J���ý� ���� ���ý� ����K���ý� ����L���ý� �������ý� �������ý� �����M���ý� �������ý� ����=���ý� ����N���ý� �������ý� ����O���ý� ����P���ý� �������ý� �������ý� �����Q���ý� �������ý� ����R���ý� ����S���ý� ���� ���ý� ����T���ý� ����U���ý� �������ý� �������ý� �����V���ý� �������ý� ����R���ý� ����W���ý� ���� ���ý� ����X���ý� ����Y���ý� �������ý� �������ý� �����Z���ý� �������ý� ����R���ý� ����[���ý� ���� ���ý� ����\���ý� ����]���ý� �������ý� �������ý� �����^���ý� �������ý� ����R���ý� ����[���ý� ���� ���ý� ����_���ý� ����`���ý� �������ý� �������ý� �����a���ý� �������ý� ����R���ý� ����[���ý� ���� ���ý� ����b���ý� ����c���ý� �������ý� �������ý� �����d���ý� �������ý� ����e���ý� ���� ���ý� �������ý� ����f���ý� ����g���ý� �������ý� �������ý� �����h���ý� �������ý� ����i���ý� �������ý� ���� ���ý� ����j���ý� ����k���ý� �������ý� �������ý� �����l���ý� �������ý� ����m���ý� ����n���ý� ���� ���ý� ����o���ý� ����p���ý� �������ý� �������ý� �����q���ý� �������ý� ����m���ý� ����r���ý� ���� ���ý� ����s���ý� ����t���ý� �������ý� �������ý� �����u���ý� �������ý� ����v���ý� �������ý� ���� ���ý� ����w���ý� ����x���ý� �������ý� �������ý� �����y���ý� �������ý� ����z���ý� ����-���ý� ���� ���ý� ����{���ý� ����|���ý� �������ý� �������×�B�>��X�p�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�� ��� �@�������!��� �@�������"��� �@�������#��� �@�������$��� �@�������%��� �@�������&��� �@�������'��� �@�������(��� �@�������)��� �@�������*��� �@�������+��� �@�������,��� �@�������-��� �@�������.��� �@�������/��� �@�������0��� �@�������1��� �@�������2��� �@�������3��� �@�������4��� �@�������5��� �@�������6��� �@�������7��� �@�������8��� �@�������9��� �@�������:��� �@�������;��� �@�������<��� �@�������=��� �@�������>��� �@�������?��� �@������ý� � ����}���ý� � ������ý� � ���~���ý� � ��� ���ý� � ��� ���ý� � ������ý� � ���€���ý� � ������ý� � ������ý� �!�������ý� �!������ý� �!���‚���ý� �!���-���ý� �!������ý� �!���ƒ���ý� �!���„���ý� �!���…���ý� �!������ý� �"����†���ý� �"������ý� �"���‡���ý� �"������ý� �"������ý� �"���ˆ���ý� �"���‰���ý� �"������ý� �"������ý� �#����Š���ý� �#������ý� �#���‹���ý� �#���-���ý� �#��� ���ý� �#���Œ���ý� �#������ý� �#������ý� �#������ý� �$����Ž���ý� �$������ý� �$������ý� �$������ý� �$������ý� �$���‘���ý� �$���’���ý� �$������ý� �$������ý� �%����“���ý� �%������ý� �%���”���ý� �%���•���ý� �%������ý� �%���–���ý� �%���—���ý� �%������ý� �%������ý� �&����˜���ý� �&������ý� �&���™���ý� �&���š���ý� �&������ý� �&���›���ý� �&���œ���ý� �&������ý� �&������ý� �'�������ý� �'������ý� �'���™���ý� �'������ý� �'������ý� �'���ž���ý� �'���Ÿ���ý� �'������ý� �'������ý� �(���� ���ý� �(���¡���ý� �(���¢���ý� �(���¡���ý� �(������ý� �(���£���ý� �(���¤���ý� �(������ý� �(������ý� �)����¥���ý� �)������ý� �)���¦���ý� �)������ý� �)������ý� �)���§���ý� �)���¨���ý� �)������ý� �)������ý� �*����©���ý� �*������ý� �*���¦���ý� �*������ý� �*������ý� �*���ª���ý� �*���«���ý� �*������ý� �*������ý� �+����¬���ý� �+������ý� �+���¦���ý� �+������ý� �+������ý� �+���­���ý� �+���®���ý� �+������ý� �+������ý� �,����¯���ý� �,������ý� �,���¦���ý� �,������ý� �,������ý� �,���°���ý� �,���±���ý� �,������ý� �,������ý� �-����²���ý� �-������ý� �-���¦���ý� �-���³���ý� �-��� ���ý� �-���´���ý� �-���µ���ý� �-������ý� �-������ý� �.����¶���ý� �.������ý� �.���·���ý� �.���¸���ý� �.������ý� �.���¹���ý� �.���œ���ý� �.������ý� �.������ý� �/����º���ý� �/������ý� �/���»���ý� �/���¼���ý� �/������ý� �/���½���ý� �/���¾���ý� �/������ý� �/������ý� �0����¿���ý� �0������ý� �0���À���ý� �0������ý� �0��� ���ý� �0���Á���ý� �0���Â���ý� �0������ý� �0������ý� �1����Ã���ý� �1������ý� �1���Ä���ý� �1���Å���ý� �1��� ���ý� �1���Æ���ý� �1���Ç���ý� �1������ý� �1������ý� �2����È���ý� �2������ý� �2���É���ý� �2���Ê���ý� �2��� ���ý� �2���Ë���ý� �2���Ì���ý� �2������ý� �2������ý� �3����Í���ý� �3���¡���ý� �3���É���ý� �3���Î���ý� �3������ý� �3���Ï���ý� �3���Ð���ý� �3������ý� �3������ý� �4����Ñ���ý� �4������ý� �4���É���ý� �4���Î���ý� �4������ý� �4���Ò���ý� �4���Ó���ý� �4������ý� �4������ý� �5����Ô���ý� �5������ý� �5���É���ý� �5���Î���ý� �5������ý� �5���Õ���ý� �5���Ö���ý� �5������ý� �5������ý� �6����×���ý� �6������ý� �6���É���ý� �6���Î���ý� �6������ý� �6���Ø���ý� �6���Ù���ý� �6������ý� �6������ý� �7����Ú���ý� �7������ý� �7���Û���ý� �7���-���ý� �7��� ���ý� �7���Ü���ý� �7���Ý���ý� �7������ý� �7������ý� �8����Þ���ý� �8������ý� �8���ß���ý� �8���à���ý� �8��� ���ý� �8���á���ý� �8���â���ý� �8������ý� �8������ý� �9����ã���ý� �9������ý� �9���ä���ý� �9���å���ý� �9��� ���ý� �9���æ���ý� �9���ç���ý� �9������ý� �9������ý� �:����è���ý� �:������ý� �:���é���ý� �:���ê���ý� �:������ý� �:���ë���ý� �:���ì���ý� �:������ý� �:������ý� �;����í���ý� �;������ý� �;���é���ý� �;���î���ý� �;��� ���ý� �;���ï���ý� �;���ð���ý� �;������ý� �;������ý� �<����ñ���ý� �<������ý� �<���é���ý� �<������ý� �<������ý� �<���ò���ý� �<���ó���ý� �<������ý� �<������ý� �=����ô���ý� �=������ý� �=���õ���ý� �=���-���ý� �=��� ���ý� �=���ö���ý� �=���÷���ý� �=������ý� �=������ý� �>����ø���ý� �>������ý� �>���õ���ý� �>���ù���ý� �>��� ���ý� �>���ú���ý� �>���û���ý� �>������ý� �>������ý� �?����ü���ý� �?������ý� �?���õ���ý� �?���•���ý� �?������ý� �?���ý���ý� �?���þ���ý� �?������ý� �?������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��@��� �@�������A��� �@�������B��� �@�������C��� �@�������D��� �@�������E��� �@�������F��� �@�������G��� �@�������H��� �@�������I��� �@�������J��� �@�������K��� �@�������L��� �@�������M��� �@�������N��� �@�������O��� �@�������P��� �@�������Q��� �@�������R��� �@�������S��� �@�������T��� �@�������U��� �@�������V��� �@�������W��� �@�������X��� �@�������Y��� �@�������Z��� �@�������[��� �@�������\��� �@�������]��� �@�������^��� �@�������_��� �@������ý� �@����ÿ���ý� �@������ý� �@���õ���ý� �@���•���ý� �@������ý� �@������ý� �@�����ý� �@������ý� �@������ý� �A������ý� �A������ý� �A�����ý� �A������ý� �A��� ���ý� �A�����ý� �A�����ý� �A������ý� �A������ý� �B������ý� �B������ý� �B�����ý� �B������ý� �B������ý� �B�����ý� �B��� ��ý� �B������ý� �B������ý� �C���� ��ý� �C������ý� �C��� ��ý� �C������ý� �C������ý� �C��� ��ý� �C��� ��ý� �C������ý� �C������ý� �D������ý� �D������ý� �D�����ý� �D�����ý� �D������ý� �D�����ý� �D�����ý� �D������ý� �D������ý� �E������ý� �E������ý� �E�����ý� �E�����ý� �E������ý� �E�����ý� �E�����ý� �E������ý� �E������ý� �F������ý� �F������ý� �F�����ý� �F�����ý� �F������ý� �F�����ý� �F�����ý� �F������ý� �F������ý� �G������ý� �G������ý� �G�����ý� �G������ý� �G������ý� �G�����ý� �G�����ý� �G������ý� �G������ý� �H������ý� �H������ý� �H��� ��ý� �H���¼���ý� �H��� ���ý� �H���!��ý� �H���"��ý� �H������ý� �H������ý� �I����#��ý� �I������ý� �I���$��ý� �I���%��ý� �I������ý� �I���&��ý� �I���'��ý� �I������ý� �I������ý� �J����(��ý� �J������ý� �J���$��ý� �J���)��ý� �J��� ���ý� �J���*��ý� �J���+��ý� �J������ý� �J������ý� �K����,��ý� �K������ý� �K���-��ý� �K���.��ý� �K������ý� �K���/��ý� �K���œ���ý� �K������ý� �K������ý� �L����0��ý� �L������ý� �L���1��ý� �L���2��ý� �L��� ���ý� �L���3��ý� �L���4��ý� �L������ý� �L������ý� �M����5��ý� �M������ý� �M���1��ý� �M���6��ý� �M������ý� �M���7��ý� �M���8��ý� �M������ý� �M������ý� �N����9��ý� �N������ý� �N���:��ý� �N��� ���ý� �N������ý� �N���;��ý� �N������ý� �N������ý� �N������ý� �O����<��ý� �O������ý� �O���:��ý� �O���2��ý� �O��� ���ý� �O���=��ý� �O���>��ý� �O������ý� �O������ý� �P����?��ý� �P������ý� �P���@��ý� �P���r���ý� �P��� ���ý� �P���A��ý� �P���B��ý� �P������ý� �P������ý� �Q����C��ý� �Q������ý� �Q���@��ý� �Q��� ���ý� �Q������ý� �Q���D��ý� �Q���E��ý� �Q������ý� �Q������ý� �R����F��ý� �R������ý� �R���@��ý� �R��� ���ý� �R������ý� �R���G��ý� �R���H��ý� �R������ý� �R������ý� �S����I��ý� �S������ý� �S���@��ý� �S��� ���ý� �S������ý� �S���J��ý� �S������ý� �S������ý� �S������ý� �T����K��ý� �T������ý� �T���L��ý� �T���M��ý� �T��� ���ý� �T���N��ý� �T���O��ý� �T������ý� �T������ý� �U����P��ý� �U������ý� �U���L��ý� �U���Q��ý� �U������ý� �U���R��ý� �U���S��ý� �U������ý� �U������ý� �V����T��ý� �V������ý� �V���U��ý� �V������ý� �V������ý� �V���V��ý� �V���W��ý� �V������ý� �V������ý� �W����X��ý� �W������ý� �W���Y��ý� �W���Z��ý� �W������ý� �W���[��ý� �W���\��ý� �W������ý� �W������ý� �X����]��ý� �X������ý� �X���^��ý� �X������ý� �X��� ���ý� �X���_��ý� �X���`��ý� �X������ý� �X������ý� �Y����a��ý� �Y������ý� �Y���b��ý� �Y������ý� �Y������ý� �Y���c��ý� �Y���d��ý� �Y������ý� �Y������ý� �Z����e��ý� �Z������ý� �Z���f��ý� �Z������ý� �Z��� ���ý� �Z���g��ý� �Z���h��ý� �Z������ý� �Z������ý� �[����i��ý� �[������ý� �[���j��ý� �[������ý� �[������ý� �[���k��ý� �[���l��ý� �[������ý� �[������ý� �\����m��ý� �\������ý� �\���n��ý� �\���o��ý� �\��� ���ý� �\���p��ý� �\���q��ý� �\������ý� �\������ý� �]����r��ý� �]������ý� �]���n��ý� �]������ý� �]��� ���ý� �]���s��ý� �]���t��ý� �]������ý� �]������ý� �^����u��ý� �^������ý� �^���n��ý� �^���-���ý� �^��� ���ý� �^���v��ý� �^���w��ý� �^������ý� �^������ý� �_����x��ý� �_������ý� �_���n��ý� �_���)��ý� �_��� ���ý� �_���y��ý� �_���z��ý� �_������ý� �_������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��`��� �@�������a��� �@�������b��� �@�������c��� �@�������d��� �@�������e��� �@�������f��� �@�������g��� �@�������h��� �@�������i��� �@�������j��� �@�������k��� �@�������l��� �@�������m��� �@�������n��� �@�������o��� �@�������p��� �@�������q��� �@�������r��� �@�������s��� �@�������t��� �@�������u��� �@�������v��� �@�������w��� �@�������x��� �@�������y��� �@�������z��� �@�������{��� �@�������|��� �@�������}��� �@�������~��� �@���������� �@������ý� �`����{��ý� �`������ý� �`���n��ý� �`���|��ý� �`��� ���ý� �`���}��ý� �`���~��ý� �`������ý� �`������ý� �a������ý� �a������ý� �a���€��ý� �a���-���ý� �a��� ���ý� �a�����ý� �a���‚��ý� �a������ý� �a������ý� �b����ƒ��ý� �b������ý� �b���€��ý� �b���)��ý� �b��� ���ý� �b���„��ý� �b���…��ý� �b������ý� �b������ý� �c����†��ý� �c������ý� �c���‡��ý� �c���B���ý� �c��� ���ý� �c���ˆ��ý� �c���‰��ý� �c������ý� �c������ý� �d����Š��ý� �d������ý� �d���‹��ý� �d���!���ý� �d������ý� �d���Œ��ý� �d�����ý� �d������ý� �d������ý� �e����Ž��ý� �e������ý� �e���‹��ý� �e���!���ý� �e��� ���ý� �e�����ý� �e�����ý� �e������ý� �e������ý� �f����‘��ý� �f������ý� �f���‹��ý� �f���>���ý� �f������ý� �f���’��ý� �f���“��ý� �f������ý� �f������ý� �g����”��ý� �g������ý� �g���‹��ý� �g���•��ý� �g��� ���ý� �g���–��ý� �g���—��ý� �g������ý� �g������ý� �h����˜��ý� �h������ý� �h���‹��ý� �h���-���ý� �h��� ���ý� �h���™��ý� �h���š��ý� �h������ý� �h������ý� �i����›��ý� �i������ý� �i���‹��ý� �i��� ���ý� �i������ý� �i���œ��ý� �i�����ý� �i������ý� �i������ý� �j����ž��ý� �j������ý� �j���‹��ý� �j��� ���ý� �j��� ���ý� �j���Ÿ��ý� �j��� ��ý� �j������ý� �j������ý� �k����¡��ý� �k������ý� �k���‹��ý� �k���¼���ý� �k������ý� �k���¢��ý� �k���£��ý� �k������ý� �k������ý� �l����¤��ý� �l������ý� �l���¥��ý� �l���¦��ý� �l������ý� �l���§��ý� �l���¨��ý� �l������ý� �l������ý� �m����©��ý� �m������ý� �m���ª��ý� �m���«��ý� �m������ý� �m���¬��ý� �m���œ���ý� �m������ý� �m������ý� �n����­��ý� �n������ý� �n���®��ý� �n���¯��ý� �n��� ���ý� �n���°��ý� �n���±��ý� �n������ý� �n������ý� �o����²��ý� �o������ý� �o���®��ý� �o���³��ý� �o��� ���ý� �o���´��ý� �o���µ��ý� �o������ý� �o������ý� �p����¶��ý� �p������ý� �p���®��ý� �p���·��ý� �p��� ���ý� �p���¸��ý� �p���¹��ý� �p������ý� �p������ý� �q����º��ý� �q������ý� �q���®��ý� �q���»��ý� �q��� ���ý� �q���¼��ý� �q���½��ý� �q������ý� �q������ý� �r����¾��ý� �r������ý� �r���¿��ý� �r���³���ý� �r��� ���ý� �r���À��ý� �r���Á��ý� �r������ý� �r������ý� �s����Â��ý� �s������ý� �s���Ã��ý� �s���Ä��ý� �s��� ���ý� �s���Å��ý� �s���Æ��ý� �s������ý� �s������ý� �t����Ç��ý� �t������ý� �t���È��ý� �t������ý� �t������ý� �t���É��ý� �t���Ê��ý� �t������ý� �t������ý� �u����Ë��ý� �u������ý� �u���È��ý� �u���Ì��ý� �u��� ���ý� �u���Í��ý� �u���Î��ý� �u������ý� �u������ý� �v����Ï��ý� �v������ý� �v���Ð��ý� �v���Ñ��ý� �v��� ���ý� �v���Ò��ý� �v���Ó��ý� �v������ý� �v������ý� �w����Ô��ý� �w������ý� �w���Õ��ý� �w������ý� �w������ý� �w���Ö��ý� �w���×��ý� �w������ý� �w������ý� �x����Ø��ý� �x������ý� �x���Ù��ý� �x���n���ý� �x������ý� �x���Ú��ý� �x���Û��ý� �x������ý� �x������ý� �y����Ü��ý� �y������ý� �y���Ù��ý� �y���Ý��ý� �y��� ���ý� �y���Þ��ý� �y���ß��ý� �y������ý� �y������ý� �z����à��ý� �z������ý� �z���á��ý� �z���â��ý� �z��� ���ý� �z���ã��ý� �z���ä��ý� �z������ý� �z������ý� �{����å��ý� �{������ý� �{���æ��ý� �{������ý� �{���ç��ý� �{���è��ý� �{���é��ý� �{������ý� �{������ý� �|����ê��ý� �|������ý� �|���æ��ý� �|���Ì��ý� �|������ý� �|���ë��ý� �|���ì��ý� �|������ý� �|������ý� �}����í��ý� �}������ý� �}���æ��ý� �}���Ì��ý� �}������ý� �}���î��ý� �}���ï��ý� �}������ý� �}������ý� �~����ð��ý� �~������ý� �~���ñ��ý� �~��� ���ý� �~��� ���ý� �~���ò��ý� �~���ó��ý� �~������ý� �~������ý� �����ô��ý� �������ý� ����õ��ý� ����-���ý� �������ý� ����ö��ý� ����÷��ý� �������ý� �������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��€��� �@���������� �@�������‚��� �@�������ƒ��� �@�������„��� �@�������…��� �@�������†��� �@�������‡��� �@�������ˆ��� �@�������‰��� �@�������Š��� �@�������‹��� �@�������Œ��� �@���������� �@�������Ž��� �@���������� �@���������� �@�������‘��� �@�������’��� �@�������“��� �@�������”��� �@�������•��� �@�������–��� �@�������—��� �@�������˜��� �@�������™��� �@�������š��� �@�������›��� �@�������œ��� �@���������� �@�������ž��� �@�������Ÿ��� �@������ý� �€����ø��ý� �€������ý� �€���ù��ý� �€���ú��ý� �€������ý� �€���û��ý� �€���ü��ý� �€������ý� �€������ý� �����ý��ý� �������ý� ����ù��ý� �������ý� �������ý� ����þ��ý� ����ÿ��ý� �������ý� �������ý� �‚�������ý� �‚������ý� �‚�����ý� �‚������ý� �‚��� ���ý� �‚�����ý� �‚�����ý� �‚������ý� �‚������ý� �ƒ������ý� �ƒ������ý� �ƒ�����ý� �ƒ���W���ý� �ƒ��� ���ý� �ƒ�����ý� �ƒ�����ý� �ƒ������ý� �ƒ������ý� �„������ý� �„������ý� �„��� ��ý� �„������ý� �„������ý� �„��� ��ý� �„���œ���ý� �„������ý� �„������ý� �…���� ��ý� �…������ý� �…��� ��ý� �…������ý� �…������ý� �…��� ��ý� �…���œ���ý� �…������ý� �…������ý� �†������ý� �†������ý� �†�����ý� �†���S���ý� �†��� ���ý� �†�����ý� �†�����ý� �†������ý� �†������ý� �‡������ý� �‡������ý� �‡�����ý� �‡���>���ý� �‡��� ���ý� �‡�����ý� �‡�����ý� �‡������ý� �‡������ý� �ˆ������ý� �ˆ������ý� �ˆ�����ý� �ˆ�����ý� �ˆ��� ���ý� �ˆ�����ý� �ˆ�����ý� �ˆ������ý� �ˆ������ý� �‰������ý� �‰������ý� �‰�����ý� �‰���W���ý� �‰��� ���ý� �‰�����ý� �‰�����ý� �‰������ý� �‰������ý� �Š������ý� �Š������ý� �Š�����ý� �Š���å���ý� �Š��� ���ý� �Š�����ý� �Š��� ��ý� �Š������ý� �Š������ý� �‹����!��ý� �‹������ý� �‹�����ý� �‹���å���ý� �‹��� ���ý� �‹���"��ý� �‹���#��ý� �‹������ý� �‹������ý� �Œ����$��ý� �Œ������ý� �Œ���%��ý� �Œ���å���ý� �Œ��� ���ý� �Œ���"��ý� �Œ���#��ý� �Œ������ý� �Œ������ý� �����&��ý� �������ý� ����'��ý� ����W���ý� ���� ���ý� ����(��ý� ����)��ý� �������ý� �������ý� �Ž����*��ý� �Ž������ý� �Ž���'��ý� �Ž���³���ý� �Ž��� ���ý� �Ž���+��ý� �Ž���,��ý� �Ž������ý� �Ž������ý� �����-��ý� �������ý� ����.��ý� ����-���ý� ���� ���ý� ����/��ý� ����0��ý� �������ý� �������ý� �����1��ý� �������ý� ����2��ý� �������ý� ����ç��ý� ����3��ý� ����4��ý� �������ý� �������ý� �‘����5��ý� �‘������ý� �‘���2��ý� �‘������ý� �‘��� ���ý� �‘���6��ý� �‘���7��ý� �‘������ý� �‘������ý� �’����8��ý� �’������ý� �’���9��ý� �’������ý� �’��� ���ý� �’���:��ý� �’���;��ý� �’������ý� �’������ý� �“����<��ý� �“������ý� �“���=��ý� �“������ý� �“��� ���ý� �“���>��ý� �“���?��ý� �“������ý� �“������ý� �”����@��ý� �”������ý� �”���A��ý� �”������ý� �”��� ���ý� �”���B��ý� �”���C��ý� �”������ý� �”������ý� �•����D��ý� �•������ý� �•���E��ý� �•���F��ý� �•��� ���ý� �•���G��ý� �•���H��ý� �•������ý� �•������ý� �–����I��ý� �–������ý� �–���J��ý� �–������ý� �–������ý� �–���K��ý� �–���L��ý� �–������ý� �–������ý� �—����M��ý� �—������ý� �—���N��ý� �—���J���ý� �—������ý� �—���O��ý� �—���P��ý� �—������ý� �—������ý� �˜����Q��ý� �˜������ý� �˜���R��ý� �˜������ý� �˜��� ���ý� �˜���S��ý� �˜���T��ý� �˜������ý� �˜������ý� �™����U��ý� �™������ý� �™���V��ý� �™������ý� �™��� ���ý� �™���W��ý� �™���X��ý� �™������ý� �™������ý� �š����Y��ý� �š������ý� �š���Z��ý� �š������ý� �š������ý� �š���[��ý� �š���\��ý� �š������ý� �š������ý� �›����]��ý� �›������ý� �›���^��ý� �›������ý� �›������ý� �›���_��ý� �›���`��ý� �›������ý� �›������ý� �œ����a��ý� �œ������ý� �œ���b��ý� �œ���c��ý� �œ��� ���ý� �œ���d��ý� �œ���e��ý� �œ������ý� �œ������ý� �����f��ý� �������ý� ����g��ý� �������ý� �������ý� ����h��ý� ����i��ý� �������ý� �������ý� �ž����j��ý� �ž������ý� �ž���g��ý� �ž���r���ý� �ž��� ���ý� �ž���k��ý� �ž���l��ý� �ž������ý� �ž������ý� �Ÿ����m��ý� �Ÿ������ý� �Ÿ���n��ý� �Ÿ������ý� �Ÿ������ý� �Ÿ���o��ý� �Ÿ���p��ý� �Ÿ������ý� �Ÿ������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�� ��� �@�������¡��� �@�������¢��� �@�������£��� �@�������¤��� �@�������¥��� �@�������¦��� �@�������§��� �@�������¨��� �@�������©��� �@�������ª��� �@�������«��� �@�������¬��� �@�������­��� �@�������®��� �@�������¯��� �@�������°��� �@�������±��� �@�������²��� �@�������³��� �@�������´��� �@�������µ��� �@�������¶��� �@�������·��� �@�������¸��� �@�������¹��� �@�������º��� �@�������»��� �@�������¼��� �@�������½��� �@�������¾��� �@�������¿��� �@������ý� � ����q��ý� � ������ý� � ���r��ý� � ���s��ý� � ������ý� � ���t��ý� � ���œ���ý� � ������ý� � ������ý� �¡����u��ý� �¡������ý� �¡���r��ý� �¡���v��ý� �¡������ý� �¡���w��ý� �¡���œ���ý� �¡������ý� �¡������ý� �¢����x��ý� �¢������ý� �¢���y��ý� �¢���z��ý� �¢��� ���ý� �¢���{��ý� �¢���|��ý� �¢������ý� �¢������ý� �£����}��ý� �£������ý� �£���~��ý� �£�����ý� �£��� ���ý� �£���€��ý� �£�����ý� �£������ý� �£������ý� �¤����‚��ý� �¤������ý� �¤���ƒ��ý� �¤���³���ý� �¤��� ���ý� �¤���„��ý� �¤���…��ý� �¤������ý� �¤������ý� �¥����†��ý� �¥������ý� �¥���‡��ý� �¥���ˆ��ý� �¥������ý� �¥���‰��ý� �¥���Š��ý� �¥������ý� �¥������ý� �¦����‹��ý� �¦������ý� �¦���Œ��ý� �¦��� ���ý� �¦������ý� �¦�����ý� �¦���Ž��ý� �¦������ý� �¦������ý� �§������ý� �§������ý� �§�����ý� �§������ý� �§��� ���ý� �§���‘��ý� �§���’��ý� �§������ý� �§������ý� �¨����“��ý� �¨������ý� �¨���”��ý� �¨������ý� �¨������ý� �¨���•��ý� �¨���i��ý� �¨������ý� �¨������ý� �©����–��ý� �©������ý� �©���—��ý� �©������ý� �©��� ���ý� �©���˜��ý� �©���i��ý� �©������ý� �©������ý� �ª����™��ý� �ª������ý� �ª���š��ý� �ª������ý� �ª��� ���ý� �ª���›��ý� �ª���œ��ý� �ª������ý� �ª������ý� �«������ý� �«������ý� �«���ž��ý� �«������ý� �«��� ���ý� �«���Ÿ��ý� �«��� ��ý� �«������ý� �«������ý� �¬����¡��ý� �¬������ý� �¬���¢��ý� �¬������ý� �¬������ý� �¬���£��ý� �¬���i��ý� �¬������ý� �¬������ý� �­����¤��ý� �­������ý� �­���¥��ý� �­���¦��ý� �­��� ���ý� �­���§��ý� �­���¨��ý� �­������ý� �­������ý� �®����©��ý� �®������ý� �®���ª��ý� �®������ý� �®��� ���ý� �®���«��ý� �®���i��ý� �®������ý� �®������ý� �¯����¬��ý� �¯������ý� �¯���­��ý� �¯������ý� �¯������ý� �¯���®��ý� �¯���¯��ý� �¯������ý� �¯������ý� �°����°��ý� �°������ý� �°���±��ý� �°������ý� �°��� ���ý� �°���²��ý� �°���i��ý� �°������ý� �°������ý� �±����³��ý� �±������ý� �±���±��ý� �±������ý� �±��� ���ý� �±���´��ý� �±���µ��ý� �±������ý� �±������ý� �²����¶��ý� �²������ý� �²���·��ý� �²���¸��ý� �²��� ���ý� �²���¹��ý� �²���º��ý� �²������ý� �²������ý� �³����»��ý� �³������ý� �³���¼��ý� �³���½��ý� �³��� ���ý� �³���¾��ý� �³���¿��ý� �³������ý� �³������ý� �´����À��ý� �´������ý� �´���Á��ý� �´���Â��ý� �´��� ���ý� �´���Ã��ý� �´���Ä��ý� �´������ý� �´������ý� �µ����Å��ý� �µ������ý� �µ���Æ��ý� �µ������ý� �µ��� ���ý� �µ���Ç��ý� �µ���È��ý� �µ������ý� �µ������ý� �¶����É��ý� �¶������ý� �¶���Ê��ý� �¶���Â��ý� �¶��� ���ý� �¶���Ë��ý� �¶���Ì��ý� �¶������ý� �¶������ý� �·����Í��ý� �·������ý� �·���Î��ý� �·������ý� �·��� ���ý� �·���Ï��ý� �·���i��ý� �·������ý� �·������ý� �¸����Ð��ý� �¸������ý� �¸���Î��ý� �¸���½��ý� �¸��� ���ý� �¸���Ñ��ý� �¸���Ò��ý� �¸������ý� �¸������ý� �¹����Ó��ý� �¹������ý� �¹���Î��ý� �¹���Â��ý� �¹��� ���ý� �¹���Ô��ý� �¹���Õ��ý� �¹������ý� �¹������ý� �º����Ö��ý� �º������ý� �º���×��ý� �º���½��ý� �º��� ���ý� �º���Ø��ý� �º���Ù��ý� �º������ý� �º������ý� �»����Ú��ý� �»������ý� �»���×��ý� �»���Â��ý� �»��� ���ý� �»���Û��ý� �»���Ü��ý� �»������ý� �»������ý� �¼����Ý��ý� �¼������ý� �¼���×��ý� �¼���Þ��ý� �¼��� ���ý� �¼���Ø��ý� �¼���Ù��ý� �¼������ý� �¼������ý� �½����ß��ý� �½������ý� �½���à��ý� �½������ý� �½������ý� �½���á��ý� �½���i��ý� �½������ý� �½������ý� �¾����â��ý� �¾������ý� �¾���à��ý� �¾���ú��ý� �¾������ý� �¾���ã��ý� �¾���ä��ý� �¾������ý� �¾������ý� �¿����å��ý� �¿������ý� �¿���æ��ý� �¿������ý� �¿������ý� �¿���ç��ý� �¿���i��ý� �¿������ý� �¿������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��À��� �@�������Á��� �@�������Â��� �@�������Ã��� �@�������Ä��� �@�������Å��� �@�������Æ��� �@�������Ç��� �@�������È��� �@�������É��� �@�������Ê��� �@�������Ë��� �@�������Ì��� �@�������Í��� �@�������Î��� �@�������Ï��� �@�������Ð��� �@�������Ñ��� �@�������Ò��� �@�������Ó��� �@�������Ô��� �@�������Õ��� �@�������Ö��� �@�������×��� �@�������Ø��� �@�������Ù��� �@�������Ú��� �@�������Û��� �@�������Ü��� �@�������Ý��� �@�������Þ��� �@�������ß��� �@������ý� �À����è��ý� �À������ý� �À���é��ý� �À��� ���ý� �À������ý� �À���ê��ý� �À���ë��ý� �À������ý� �À������ý� �Á����ì��ý� �Á������ý� �Á���é��ý� �Á��� ���ý� �Á������ý� �Á���í��ý� �Á���î��ý� �Á������ý� �Á������ý� �Â����ï��ý� �Â������ý� �Â���ð��ý� �Â���ñ��ý� �Â������ý� �Â���ò��ý� �Â���œ���ý� �Â������ý� �Â������ý� �Ã����ó��ý� �Ã���¡���ý� �Ã���ð��ý� �Ã���ô��ý� �Ã������ý� �Ã���õ��ý� �Ã���ö��ý� �Ã������ý� �Ã������ý� �Ä����÷��ý� �Ä������ý� �Ä���ø��ý� �Ä������ý� �Ä��� ���ý� �Ä���ù��ý� �Ä���ú��ý� �Ä������ý� �Ä������ý� �Å����û��ý� �Å������ý� �Å���ü��ý� �Å������ý� �Å������ý� �Å���ý��ý� �Å���þ��ý� �Å������ý� �Å������ý� �Æ����ÿ��ý� �Æ������ý� �Æ������ý� �Æ������ý� �Æ������ý� �Æ�����ý� �Æ�����ý� �Æ������ý� �Æ������ý� �Ç������ý� �Ç������ý� �Ç������ý� �Ç������ý� �Ç������ý� �Ç�����ý� �Ç�����ý� �Ç������ý� �Ç������ý� �È������ý� �È������ý� �È������ý� �È��� ���ý� �È��� ���ý� �È�����ý� �È�����ý� �È������ý� �È������ý� �É���� ��ý� �É������ý� �É��� ��ý� �É������ý� �É��� ���ý� �É��� ��ý� �É��� ��ý� �É������ý� �É������ý� �Ê���� ��ý� �Ê���¡���ý� �Ê��� ��ý� �Ê���¡���ý� �Ê������ý� �Ê�����ý� �Ê�����ý� �Ê������ý� �Ê������ý� �Ë������ý� �Ë���¡���ý� �Ë��� ��ý� �Ë���¡���ý� �Ë������ý� �Ë�����ý� �Ë�����ý� �Ë������ý� �Ë������ý� �Ì������ý� �Ì���¡���ý� �Ì��� ��ý� �Ì���¡���ý� �Ì������ý� �Ì�����ý� �Ì�����ý� �Ì������ý� �Ì������ý� �Í������ý� �Í������ý� �Í�����ý� �Í������ý� �Í������ý� �Í�����ý� �Í�����ý� �Í������ý� �Í������ý� �Î������ý� �Î���¡���ý� �Î�����ý� �Î�����ý� �Î������ý� �Î�����ý� �Î�����ý� �Î������ý� �Î������ý� �Ï������ý� �Ï������ý� �Ï��� ��ý� �Ï������ý� �Ï��� ���ý� �Ï���!��ý� �Ï���"��ý� �Ï������ý� �Ï������ý� �Ð����#��ý� �Ð������ý� �Ð���$��ý� �Ð������ý� �Ð������ý� �Ð���%��ý� �Ð���&��ý� �Ð������ý� �Ð������ý� �Ñ����'��ý� �Ñ������ý� �Ñ���(��ý� �Ñ���)��ý� �Ñ��� ���ý� �Ñ���*��ý� �Ñ���+��ý� �Ñ������ý� �Ñ������ý� �Ò����,��ý� �Ò������ý� �Ò���-��ý� �Ò������ý� �Ò��� ���ý� �Ò���.��ý� �Ò���/��ý� �Ò������ý� �Ò������ý� �Ó����0��ý� �Ó������ý� �Ó���1��ý� �Ó���2��ý� �Ó������ý� �Ó���3��ý� �Ó���4��ý� �Ó������ý� �Ó������ý� �Ô����5��ý� �Ô������ý� �Ô���6��ý� �Ô���-���ý� �Ô������ý� �Ô���7��ý� �Ô���8��ý� �Ô������ý� �Ô������ý� �Õ����9��ý� �Õ������ý� �Õ���6��ý� �Õ��� ���ý� �Õ������ý� �Õ���:��ý� �Õ���;��ý� �Õ������ý� �Õ������ý� �Ö����<��ý� �Ö������ý� �Ö���6��ý� �Ö��� ���ý� �Ö������ý� �Ö���=��ý� �Ö���>��ý� �Ö������ý� �Ö������ý� �×����?��ý� �×������ý� �×���6��ý� �×���2��ý� �×������ý� �×���@��ý� �×���A��ý� �×������ý� �×������ý� �Ø����B��ý� �Ø������ý� �Ø���6��ý� �Ø���2��ý� �Ø������ý� �Ø���C��ý� �Ø���D��ý� �Ø������ý� �Ø������ý� �Ù����E��ý� �Ù������ý� �Ù���F��ý� �Ù���G��ý� �Ù��� ���ý� �Ù���H��ý� �Ù���I��ý� �Ù������ý� �Ù������ý� �Ú����J��ý� �Ú������ý� �Ú���F��ý� �Ú���K��ý� �Ú��� ���ý� �Ú���L��ý� �Ú���M��ý� �Ú������ý� �Ú������ý� �Û����N��ý� �Û������ý� �Û���O��ý� �Û������ý� �Û������ý� �Û���P��ý� �Û���œ���ý� �Û������ý� �Û������ý� �Ü����Q��ý� �Ü������ý� �Ü���R��ý� �Ü������ý� �Ü������ý� �Ü���S��ý� �Ü���T��ý� �Ü������ý� �Ü������ý� �Ý����U��ý� �Ý������ý� �Ý���V��ý� �Ý������ý� �Ý��� ���ý� �Ý���W��ý� �Ý���X��ý� �Ý������ý� �Ý������ý� �Þ����Y��ý� �Þ������ý� �Þ���V��ý� �Þ������ý� �Þ��� ���ý� �Þ���Z��ý� �Þ���[��ý� �Þ������ý� �Þ������ý� �ß����\��ý� �ß������ý� �ß���V��ý� �ß������ý� �ß��� ���ý� �ß���]��ý� �ß���^��ý� �ß������ý� �ß������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��à��� �@�������á��� �@�������â��� �@�������ã��� �@�������ä��� �@�������å��� �@�������æ��� �@�������ç��� �@�������è��� �@�������é��� �@�������ê��� �@�������ë��� �@�������ì��� �@�������í��� �@�������î��� �@�������ï��� �@�������ð��� �@�������ñ��� �@�������ò��� �@�������ó��� �@�������ô��� �@�������õ��� �@�������ö��� �@�������÷��� �@�������ø��� �@�������ù��� �@�������ú��� �@�������û��� �@�������ü��� �@�������ý��� �@�������þ��� �@�������ÿ��� �@������ý� �à����_��ý� �à������ý� �à���`��ý� �à������ý� �à��� ���ý� �à���a��ý� �à���b��ý� �à������ý� �à������ý� �á����c��ý� �á������ý� �á���`��ý� �á������ý� �á��� ���ý� �á���d��ý� �á���e��ý� �á������ý� �á������ý� �â����f��ý� �â������ý� �â���g��ý� �â������ý� �â������ý� �â���h��ý� �â���i��ý� �â������ý� �â������ý� �ã����j��ý� �ã������ý� �ã���k��ý� �ã���-���ý� �ã��� ���ý� �ã���l��ý� �ã���m��ý� �ã������ý� �ã������ý� �ä����n��ý� �ä������ý� �ä���o��ý� �ä���-���ý� �ä��� ���ý� �ä���p��ý� �ä���q��ý� �ä������ý� �ä������ý� �å����r��ý� �å������ý� �å���s��ý� �å������ý� �å��� ���ý� �å���t��ý� �å���u��ý� �å������ý� �å������ý� �æ����v��ý� �æ������ý� �æ���w��ý� �æ������ý� �æ������ý� �æ���x��ý� �æ���œ���ý� �æ������ý� �æ������ý� �ç����y��ý� �ç������ý� �ç���z��ý� �ç������ý� �ç������ý� �ç���{��ý� �ç���|��ý� �ç������ý� �ç������ý� �è����}��ý� �è������ý� �è���~��ý� �è������ý� �è������ý� �è�����ý� �è���€��ý� �è������ý� �è������ý� �é������ý� �é������ý� �é���~��ý� �é������ý� �é��� ���ý� �é���‚��ý� �é���ƒ��ý� �é������ý� �é������ý� �ê����„��ý� �ê������ý� �ê���…��ý� �ê������ý� �ê������ý� �ê���†��ý� �ê���‡��ý� �ê������ý� �ê������ý� �ë����ˆ��ý� �ë������ý� �ë���‰��ý� �ë������ý� �ë��� ���ý� �ë���Š��ý� �ë���‹��ý� �ë������ý� �ë������ý� �ì����Œ��ý� �ì������ý� �ì�����ý� �ì���)��ý� �ì��� ���ý� �ì���Ž��ý� �ì�����ý� �ì������ý� �ì������ý� �í������ý� �í������ý� �í���‘��ý� �í������ý� �í������ý� �í���’��ý� �í���“��ý� �í������ý� �í������ý� �î����”��ý� �î������ý� �î���•��ý� �î���–��ý� �î��� ���ý� �î���{��ý� �î���|��ý� �î������ý� �î������ý� �ï����—��ý� �ï������ý� �ï���˜��ý� �ï���)��ý� �ï��� ���ý� �ï���™��ý� �ï���š��ý� �ï������ý� �ï������ý� �ð����›��ý� �ð������ý� �ð���œ��ý� �ð������ý� �ð������ý� �ð�����ý� �ð���ž��ý� �ð������ý� �ð������ý� �ñ����Ÿ��ý� �ñ���¡���ý� �ñ��� ��ý� �ñ���¡��ý� �ñ������ý� �ñ���¢��ý� �ñ���£��ý� �ñ������ý� �ñ������ý� �ò����¤��ý� �ò������ý� �ò���¥��ý� �ò���-���ý� �ò������ý� �ò���¦��ý� �ò���§��ý� �ò������ý� �ò������ý� �ó����¨��ý� �ó������ý� �ó���©��ý� �ó������ý� �ó������ý� �ó���ª��ý� �ó���œ���ý� �ó������ý� �ó������ý� �ô����«��ý� �ô������ý� �ô���©��ý� �ô������ý� �ô��� ���ý� �ô���¬��ý� �ô���­��ý� �ô������ý� �ô������ý� �õ����®��ý� �õ������ý� �õ���¯��ý� �õ���)��ý� �õ��� ���ý� �õ���°��ý� �õ���±��ý� �õ������ý� �õ������ý� �ö����²��ý� �ö������ý� �ö���³��ý� �ö������ý� �ö��� ���ý� �ö���´��ý� �ö���µ��ý� �ö������ý� �ö������ý� �÷����¶��ý� �÷������ý� �÷���·��ý� �÷���-���ý� �÷������ý� �÷���¸��ý� �÷���¹��ý� �÷������ý� �÷������ý� �ø����º��ý� �ø������ý� �ø���»��ý� �ø������ý� �ø��� ���ý� �ø���¼��ý� �ø���½��ý� �ø������ý� �ø������ý� �ù����¾��ý� �ù������ý� �ù���¿��ý� �ù���K��ý� �ù��� ���ý� �ù���L��ý� �ù���M��ý� �ù������ý� �ù������ý� �ú����À��ý� �ú������ý� �ú���Á��ý� �ú���)��ý� �ú��� ���ý� �ú���Â��ý� �ú���Ã��ý� �ú������ý� �ú������ý� �û����Ä��ý� �û������ý� �û���Å��ý� �û������ý� �û������ý� �û���Æ��ý� �û���œ���ý� �û������ý� �û������ý� �ü����Ç��ý� �ü������ý� �ü���È��ý� �ü������ý� �ü��� ���ý� �ü���É��ý� �ü���i��ý� �ü������ý� �ü������ý� �ý����Ê��ý� �ý������ý� �ý���Ë��ý� �ý������ý� �ý��� ���ý� �ý���Ì��ý� �ý���i��ý� �ý������ý� �ý������ý� �þ����Í��ý� �þ������ý� �þ���Î��ý� �þ������ý� �þ��� ���ý� �þ���Ï��ý� �þ���Ð��ý� �þ������ý� �þ������ý� �ÿ����Ñ��ý� �ÿ������ý� �ÿ���Ò��ý� �ÿ������ý� �ÿ��� ���ý� �ÿ���Ó��ý� �ÿ���Ð��ý� �ÿ������ý� �ÿ������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~����� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@������� �� �@������� �� �@������� �� �@������� �� �@������� �� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@��������� �@������ý� �����Ô��ý� �������ý� ����Õ��ý� �������ý� ���� ���ý� ����Ö��ý� ����×��ý� �������ý� �������ý� ����Ø��ý� ������ý� ���Ù��ý� ������ý� ��� ���ý� ���Ú��ý� ���Û��ý� ������ý� ������ý� ����Ü��ý� ������ý� ���Ý��ý� ������ý� ������ý� ���Þ��ý� ���ß��ý� ������ý� ������ý� ����à��ý� ������ý� ���á��ý� ������ý� ��� ���ý� ���â��ý� ���ã��ý� ������ý� ������ý� ����ä��ý� ������ý� ���å��ý� ������ý� ��� ���ý� ���æ��ý� ���ç��ý� ������ý� ������ý� ����è��ý� ������ý� ���é��ý� ������ý� ��� ���ý� ���ê��ý� ���ë��ý� ������ý� ������ý� ����ì��ý� ������ý� ���í��ý� ������ý� ��� ���ý� ���î��ý� ���ï��ý� ������ý� ������ý� ����ð��ý� ������ý� ���ñ��ý� ������ý� ��� ���ý� ���ò��ý� ���ó��ý� ������ý� ������ý� ����ô��ý� ������ý� ���õ��ý� ������ý� ��� ���ý� ���ö��ý� ���ï��ý� ������ý� ������ý� � ���÷��ý� � �����ý� � ��ø��ý� � �����ý� � �� ���ý� � ��ù��ý� � ��ï��ý� � �����ý� � �����ý� � ���ú��ý� � �����ý� � ��û��ý� � �����ý� � �� ���ý� � ��ü��ý� � ��ó��ý� � �����ý� � �����ý� � ���ý��ý� � �����ý� � ��þ��ý� � �����ý� � �� ���ý� � ��ÿ��ý� � �����ý� � �����ý� � �����ý� � �����ý� � �����ý� � ��þ��ý� � �����ý� � �� ���ý� � ����ý� � ����ý� � �����ý� � �����ý� � �����ý� � �����ý� � ����ý� � �����ý� � �� ���ý� � ����ý� � ����ý� � �����ý� � �����ý� ������ý� ������ý� ��� ��ý� ���)��ý� ������ý� ��� ��ý� ��� ��ý� ������ý� ������ý� ���� ��ý� ������ý� ��� ��ý� ������ý� ��� ���ý� �����ý� �����ý� ������ý� ������ý� ������ý� ������ý� �����ý� ������ý� ������ý� �����ý� ���i��ý� ������ý� ������ý� ������ý� ������ý� �����ý� ������ý� ��� ���ý� �����ý� �����ý� ������ý� ������ý� ������ý� ������ý� �����ý� ������ý� ��� ���ý� �����ý� ���i��ý� ������ý� ������ý� ������ý� ������ý� �����ý� ������ý� ��� ���ý� �����ý� �����ý� ������ý� ������ý� ������ý� ������ý� �����ý� ������ý� ��� ���ý� �����ý� ���i��ý� ������ý� ������ý� ������ý� ������ý� ��� ��ý� ������ý� ��� ���ý� ���!��ý� ���"��ý� ������ý� ������ý� ����#��ý� ������ý� ���$��ý� ���%��ý� ��� ���ý� ���&��ý� ���'��ý� ������ý� ������ý� ����(��ý� ������ý� ���$��ý� ���%��ý� ��� ���ý� ���)��ý� ���*��ý� ������ý� ������ý� ����+��ý� ������ý� ���,��ý� ������ý� ��� ���ý� ���-��ý� ���i��ý� ������ý� ������ý� ����.��ý� ������ý� ���/��ý� ������ý� ������ý� ���0��ý� ���1��ý� ������ý� ������ý� ����2��ý� ������ý� ���3��ý� ������ý� ��� ���ý� ���4��ý� ���i��ý� ������ý� ������ý� ����5��ý� ������ý� ���3��ý� ������ý� ��� ���ý� ���6��ý� ���7��ý� ������ý� ������ý� ����8��ý� ������ý� ���9��ý� ������ý� ��� ���ý� ���:��ý� ���;��ý� ������ý� ������ý� ����<��ý� ������ý� ���=��ý� ������ý� ��� ���ý� ���>��ý� ���i��ý� ������ý� ������ý� ����?��ý� ������ý� ���=��ý� ���G��ý� ��� ���ý� ���@��ý� ���A��ý� ������ý� ������ý� ����B��ý� ������ý� ���C��ý� ������ý� ��� ���ý� ���D��ý� ���E��ý� ������ý� ������×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�� �� �@�������!�� �@�������"�� �@�������#�� �@�������$�� �@�������%�� �@�������&�� �@�������'�� �@�������(�� �@�������)�� �@�������*�� �@�������+�� �@�������,�� �@�������-�� �@�������.�� �@�������/�� �@�������0�� �@�������1�� �@�������2�� �@�������3�� �@�������4�� �@�������5�� �@�������6�� �@�������7�� �@�������8�� �@�������9�� �@�������:�� �@�������;�� �@�������<�� �@�������=�� �@�������>�� �@�������?�� �@������ý� � ���F��ý� � �����ý� � ��G��ý� � �����ý� � �� ���ý� � ��H��ý� � ��I��ý� � �����ý� � �����ý� �!���J��ý� �!�����ý� �!��G��ý� �!��-���ý� �!�����ý� �!��K��ý� �!��L��ý� �!�����ý� �!�����ý� �"���M��ý� �"�����ý� �"��G��ý� �"��-���ý� �"�����ý� �"��N��ý� �"��O��ý� �"�����ý� �"�����ý� �#���P��ý� �#�����ý� �#��Q��ý� �#��R��ý� �#�� ���ý� �#��S��ý� �#��T��ý� �#�����ý� �#�����ý� �$���U��ý� �$�����ý� �$��V��ý� �$��W��ý� �$�� ���ý� �$��X��ý� �$��Y��ý� �$�����ý� �$�����ý� �%���Z��ý� �%�����ý� �%��[��ý� �%�����ý� �%�� ���ý� �%��\��ý� �%��i��ý� �%�����ý� �%�����ý� �&���]��ý� �&�����ý� �&��[��ý� �&��2��ý� �&�� ���ý� �&��^��ý� �&��_��ý� �&�����ý� �&�����ý� �'���`��ý� �'�����ý� �'��[��ý� �'��2��ý� �'�� ���ý� �'��a��ý� �'��b��ý� �'�����ý� �'�����ý� �(���c��ý� �(�����ý� �(��[��ý� �(��2��ý� �(�� ���ý� �(��d��ý� �(��e��ý� �(�����ý� �(�����ý� �)���f��ý� �)�����ý� �)��[��ý� �)��g��ý� �)�� ���ý� �)��h��ý� �)��i��ý� �)�����ý� �)�����ý� �*���j��ý� �*�����ý� �*��[��ý� �*��G��ý� �*�� ���ý� �*��k��ý� �*��l��ý� �*�����ý� �*�����ý� �+���m��ý� �+�����ý� �+��[��ý� �+��n��ý� �+�� ���ý� �+��o��ý� �+��p��ý� �+�����ý� �+�����ý� �,���q��ý� �,�����ý� �,��r��ý� �,�����ý� �,�� ���ý� �,��s��ý� �,��t��ý� �,�����ý� �,�����ý� �-���u��ý� �-�����ý� �-��v��ý� �-�����ý� �-�� ���ý� �-��w��ý� �-��x��ý� �-�����ý� �-�����ý� �.���y��ý� �.�����ý� �.��z��ý� �.�����ý� �.�� ���ý� �.��{��ý� �.��|��ý� �.�����ý� �.�����ý� �/���}��ý� �/�����ý� �/��~��ý� �/��½��ý� �/�� ���ý� �/����ý� �/��€��ý� �/�����ý� �/�����ý� �0�����ý� �0�����ý� �0��‚��ý� �0�� ���ý� �0�� ���ý� �0��ƒ��ý� �0��„��ý� �0�����ý� �0�����ý� �1���…��ý� �1�����ý� �1��†��ý� �1�����ý� �1�� ���ý� �1��‡��ý� �1��i��ý� �1�����ý� �1�����ý� �2���ˆ��ý� �2�����ý� �2��†��ý� �2�����ý� �2�����ý� �2��‰��ý� �2��i��ý� �2�����ý� �2�����ý� �3���Š��ý� �3�����ý� �3��‹��ý� �3�����ý� �3�� ���ý� �3��Œ��ý� �3����ý� �3�����ý� �3�����ý� �4���Ž��ý� �4�����ý� �4��‹��ý� �4�����ý� �4�� ���ý� �4����ý� �4����ý� �4�����ý� �4�����ý� �5���‘��ý� �5�����ý� �5��‹��ý� �5�����ý� �5�� ���ý� �5��’��ý� �5����ý� �5�����ý� �5�����ý� �6���“��ý� �6�����ý� �6��‹��ý� �6�����ý� �6�� ���ý� �6��”��ý� �6����ý� �6�����ý� �6�����ý� �7���•��ý� �7�����ý� �7��‹��ý� �7�����ý� �7�� ���ý� �7��–��ý� �7����ý� �7�����ý� �7�����ý� �8���—��ý� �8�����ý� �8��‹��ý� �8�����ý� �8�� ���ý� �8��˜��ý� �8����ý� �8�����ý� �8�����ý� �9���™��ý� �9�����ý� �9��š��ý� �9��¼���ý� �9�� ���ý� �9��›��ý� �9��œ��ý� �9�����ý� �9�����ý� �:�����ý� �:�����ý� �:��š��ý� �:��ž��ý� �:�� ���ý� �:��Ÿ��ý� �:�� ��ý� �:�����ý� �:�����ý� �;���¡��ý� �;�����ý� �;��¢��ý� �;�����ý� �;�� ���ý� �;��£��ý� �;��¤��ý� �;�����ý� �;�����ý� �<���¥��ý� �<�����ý� �<��¦��ý� �<�����ý� �<�� ���ý� �<��§��ý� �<��¨��ý� �<�����ý� �<�����ý� �=���©��ý� �=�����ý� �=��¦��ý� �=�����ý� �=�� ���ý� �=��ª��ý� �=��«��ý� �=�����ý� �=�����ý� �>���¬��ý� �>�����ý� �>��¦��ý� �>�����ý� �>�� ���ý� �>��­��ý� �>��®��ý� �>�����ý� �>�����ý� �?���¯��ý� �?�����ý� �?��°��ý� �?�����ý� �?�� ���ý� �?��±��ý� �?��²��ý� �?�����ý� �?�����×�D�@��l~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��@�� �@�������A�� �@�������B�� �@�������C�� �@�������D�� �@�������E�� �@�������F�� �@�������G�� �@�������H�� �@�������I�� �@�������J�� �@�������K�� �@�������L�� �@�������M�� �@�������N�� �@�������O�� �@�������P�� �@�������Q�� �@�������R�� �@�������S�� �@�������T�� �@������ý� �@���³��ý� �@�����ý� �@��´��ý� �@�����ý� �@�� ���ý� �@��µ��ý� �@����ý� �@�����ý� �@�����ý� �A���¶��ý� �A�����ý� �A��´��ý� �A�����ý� �A�� ���ý� �A��·��ý� �A��¸��ý� �A�����ý� �A�����ý� �B���¹��ý� �B�����ý� �B��´��ý� �B�����ý� �B�� ���ý� �B��º��ý� �B��»��ý� �B�����ý� �B�����ý� �C���¼��ý� �C�����ý� �C��½��ý� �C�����ý� �C�� ���ý� �C��¾��ý� �C��¿��ý� �C�����ý� �C�����ý� �D���À��ý� �D�����ý� �D��Á��ý� �D�����ý� �D�� ���ý� �D��Â��ý� �D��Ã��ý� �D�����ý� �D�����ý� �E���Ä��ý� �E�����ý� �E��Á��ý� �E�����ý� �E�� ���ý� �E��Å��ý� �E��Æ��ý� �E�����ý� �E�����ý� �F���Ç��ý� �F�����ý� �F��Á��ý� �F�����ý� �F�� ���ý� �F��È��ý� �F��Æ��ý� �F�����ý� �F�����ý� �G���É��ý� �G�����ý� �G��Á��ý� �G�����ý� �G�� ���ý� �G��Ê��ý� �G��Ë��ý� �G�����ý� �G�����ý� �H���Ì��ý� �H�����ý� �H��Í��ý� �H��¼���ý� �H�����ý� �H��@��ý� �H��Î��ý� �H�����ý� �H�����ý� �I���Ï��ý� �I�����ý� �I��Í��ý� �I��¼���ý� �I�����ý� �I��C��ý� �I��Ð��ý� �I�����ý� �I�����ý� �J���Ñ��ý� �J�����ý� �J��Ò��ý� �J��Þ��ý� �J�� ���ý� �J��Ó��ý� �J��Ô��ý� �J�����ý� �J�����ý� �K���Õ��ý� �K�����ý� �K��Ö��ý� �K�����ý� �K�� ���ý� �K��×��ý� �K��Ø��ý� �K�����ý� �K�����ý� �L���Ù��ý� �L�����ý� �L��Ú��ý� �L�����ý� �L�� ���ý� �L��Û��ý� �L��Ü��ý� �L�����ý� �L�����ý� �M���Ý��ý� �M�����ý� �M��Ú��ý� �M�����ý� �M�� ���ý� �M��Þ��ý� �M��ß��ý� �M�����ý� �M�����ý� �N���à��ý� �N�����ý� �N��Ú��ý� �N�����ý� �N�� ���ý� �N��á��ý� �N��â��ý� �N�����ý� �N�����ý� �O���ã��ý� �O��¡���ý� �O��ä��ý� �O��¡���ý� �O�����ý� �O��å��ý� �O��æ��ý� �O�����ý� �O�����ý� �P���ç��ý� �P�����ý� �P��è��ý� �P�����ý� �P�� ���ý� �P��é��ý� �P��ê��ý� �P�����ý� �P�����ý� �Q���ë��ý� �Q�����ý� �Q��è��ý� �Q�����ý� �Q�����ý� �Q��ì��ý� �Q��í��ý� �Q�����ý� �Q�����ý� �R���î��ý� �R�����ý� �R��è��ý� �R�����ý� �R�� ���ý� �R��ï��ý� �R��í��ý� �R�����ý� �R�����ý� �S���ð��ý� �S�����ý� �S��ñ��ý� �S�����ý� �S�� ���ý� �S��ò��ý� �S��×��ý� �S�����ý� �S�����ý� �T���ó��ý� �T�����ý� �T��ô��ý� �T�����ý� �T�� ���ý� �T��õ��ý� �T��ö��ý� �T�����ý� �T�����×�.�ú ��~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�>�¾����@�����������‹�‹�������������A� �����������������������������������g�g�����������ÿÿÿÿD��g�g���������������hh�����������������������%����'�-����&�&���/�J����.�.���L�l����K�K���n�ƒ����m�m���†�Ÿ����„�…���¢�Á���� �¡���Ã�Ú����Â�Â���Ü�å����Û�Û���ç�ò����æ�æ���ô�ú����ó�ó���ü����û�û��������O�����ST���PR����� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������þÿ�� ��������������������à…ŸòùOh«‘�+'³Ù0���œ���������8������@������X��� ���|��� ���ˆ������”������'��������David Keaton����������Microsoft Macintosh Excel���@���€üĀî-Ù@����XT/Ù�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������þÿ�� ��������������������ÕÍ՜.“—�+,ù®0���°���������H������P��� ���X������`������h������p��� ���x��� ���Œ������'�������� ������� ������� ������� ���������������Sheet 1� �������� ���Worksheets���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��� ��� ��� ��� ��������������������������������������������������������� ���!���"���#���$���%���&���'���(���)���*���+���,���-���.���/���0���1���2���3���4���5���6���7���8���9���:���;���<���=���>���?���@���A���B���C���D���E���F���G���H���I���J���K���L���M���N���O���P���Q���R���S���T���U���V���W���X���Y���Z���[���\���]���^���_���`���a���b���c���d���e���f���g���h���i���j���k���l���m���n���o���p���q���r���s���t���u���v���w���x���y���z���{���|���}���~������€������‚���ƒ���„���…���†���‡���ˆ���‰���Š���‹���Œ������Ž���������‘���’���“���”���•���–���—���˜���™���š���›���œ������ž���Ÿ��� ���¡���¢���£���¤���¥���¦���§���¨���©���ª���«���¬���­���®���¯���°���±���²���³���´���µ���¶���·���¸���¹���º���»���¼���½���¾���¿���À���Á���Â���Ã���Ä���Å���Æ���Ç���È���É���Ê���Ë���Ì���Í���Î���Ï���Ð���Ñ���Ò���Ó���Ô���Õ���Ö���×���Ø���Ù���Ú���Û���Ü���Ý���Þ���ß���à���á���â���ã���ä���å���æ���ç���è���é���ê���ë���ì���í���î���ï���ð���ñ���ò���ó���ô���õ���ö���÷���ø���ù���ú���û���ü���ý���þ���ÿ���������������������� �� �� �� �� �������������������������������������� ��!��"��#��$��%��&��'��(��)��*��+��,��-��.��/��0��1��2��3��4��5��6��7��8��9��:��;��<��=��>��?��@��A��B��C��D��E��F��G��H��I��J��K��L��M��N��O��P��Q��R��S��T��U��V��W��X��Y��Z��[��\��]��^��_��`��a��b��c��d��e��f��g��h��i��j��k��l��m��n��o��p��q��r��s��t��u��v��w��x��y��z��{��|��}��~����€����‚��ƒ��„��…��†��‡��ˆ��‰��Š��‹��Œ����Ž������‘��’��“��”��•��–��—��˜��™��š��›��œ����ž��Ÿ�� ��¡��¢��£��¤��¥��¦��§��¨��©��ª��«��¬��­��®��¯��°��±��²��³��´��µ��¶��·��¸��¹��º��»��¼��½��¾��¿��À��Á��Â��Ã��Ä��Å��Æ��Ç��È��É��Ê��Ë��Ì��Í��Î��Ï��Ð��Ñ��Ò��Ó��Ô��Õ��Ö��×��Ø��Ù��Ú��Û��Ü��Ý��Þ��ß��à��á��â��ã��ä��å��æ��ç��è��é��ê��ë��ì��í��î��ï��ð��ñ��ò��ó��ô��õ��ö��÷��ø��ù��ú��û��ü��ý��þ��ÿ��������������������� �� �� �� �� �������������������������������������� ��!��"��#��$��%��&��'��(��)��*��+��,��-��.��/��0��1��2��3��4��5��6��7��8��9��:��;��<��=��>��?��@��A��B��C��D��E��F��G��H��I��J��K��L��M��N��O��P��Q��R��S��T��U��V��W��X��Y��Z��[��\��]��^��_��`��a��b��c��d��e��f��g��h��þÿÿÿj��k��l��m��n��o��p��þÿÿÿr��s��t��u��v��w��x��þÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿÿÿÿÿR�o�o�t� �E�n�t�r�y����������������������������������������������ÿÿÿÿÿÿÿÿ��� �����À������F��������������������þÿÿÿ��������W�o�r�k�b�o�o�k��������������������������������������������������ÿÿÿÿÿÿÿÿÿÿÿÿ����������������������������������������MÑ������S�u�m�m�a�r�y�I�n�f�o�r�m�a�t�i�o�n���������������������������(�������ÿÿÿÿ������������������������������������i����������D�o�c�u�m�e�n�t�S�u�m�m�a�r�y�I�n�f�o�r�m�a�t�i�o�n�����������8�ÿÿÿÿÿÿÿÿÿÿÿÿ������������������������������������q���������

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4