From d838b1caed65ced5372a52f7cd90274e104047e7 Mon Sep 17 00:00:00 2001
From: Packit mcpp �� Martin Minow �� DECUS cpp �� kmatsui�ʾ��� ��ˤ�����Ū�˽�ľ�����åץ�ץ����å��Ǥ���mcpp �Ȥ���̾���� Matsui cpp �Ȥ�����̣�Ǥ�������ϥ������������Τǡ��ƽ����ϤǻȤ��ˤϤ��ν����Ϥ˹�碌�ƥ������˼㴳���ѹ���ä�����ǥ���ѥ��뤷�� mcpp �μ¹ԥץ���������ɬ�פ�����ޤ���*1 ���Υޥ˥奢��Ǥϡ����Ǥ�����ν����Ϥ˰ܿ����줿�¹ԥץ������λ��ͤ��������Ƥ��ޤ�������˾ܺ٤��Τꤿ���͡����������鲿�餫�ν����Ϥ˰ܿ����Ƥߤ����ͤϡ��������� mcpp-porting.html �Ȥ����ɥ�����ȤȤ��Ƥ��������� ��: *1 mcpp V.2.6.3 ����ϡ�����ѥ��뤺�ߤβ����फ�ΥХ��ʥꡦ�ѥå������⼡�Υ����Ȥ�����褦�ˤ����� Linux, FreeBSD, Windows ����¿���ΣϣӤݡ��Ȥ��Ƥ��� portable �ʥץ�ץ����å��Ǥ��ꡢ���Υ������� Standard C (ANSI/ISO/JIS C) �ν����Ϥޤ��� Standard C++ �ν����ϤǤ�������Х���ѥ���Ǥ��빭�� portability ����äƤ��ޤ����饤�֥��ؿ��ϸ�ŵŪ�ʤ�Τ����ȤäƤ��ޤ��� Multi-byte character�ʴ����ˤν��������ܤ� EUC-JP, shift-JIS, ISO2022-JP������ GB-2312�����Ѥ� Big-5���ڹ�� KSC-5601 (KSX 1001) ���б����Ƥ��ꡢUTF-8 ��Ȥ��ޤ���Shift-JIS, ISO2022-JP, Big-5 �ξ�硢����ѥ������Τ�������ǧ�����ʤ������ϤǤϡ�mcpp ��������䤤�ޤ��� Standard C ����ư��⡼�ɤΤۤ��ˡ�K&R 1st. �Υ⡼�ɤ� "Reiser" model cpp �Υ⡼�ɤ⤢�ꡢ����ˤϼ��� post-Standard ���ͤΥ⡼�ɤޤǤ���ޤ���C++ �Υץ�ץ����å��Ȥ���ư���¹Ի����ץ����⤢��ޤ��� �ۤ��ˤ����Ĥ���ͭ�Ѥʳ�ĥ��ǽ����äƤ��ޤ����ޥ�����Ÿ�������� #if ����ɾ��������ȥ졼������ #pragma MCPP debug �⤢��ޤ����إå��ե������ "pre-preprocess" ���Ƥ������Ȥ�Ǥ��ޤ��� mcpp �η������Ƶ�С�®�٤�����٤����ȤǤ���GCC 3.*, 4.* / cc1 ����٤�ȣ��ܤ��飳�ܤλ��֤�������ޤ�����������Borland C 5.5 / cpp ��Ʊ�����餤��®�٤ǡ��إå��ե������ pre-preprocess �ε�ǽ��Ȥ��Ȥ⤦����®���ʤ�Τǡ��ä��٤��ۤ��ǤϤ���ޤ������ΤǤ��뤳�ȡ�portable �ʥ������Ǥ��뤳�ȡ����ʤ�����Ǥ�ư��뤳�����Τ���ˤϡ��������٤ν������֤Ϥ��ʤ��ȹͤ��Ƥ��ޤ��� �ʤ����ץ�ץ����å��� Standard C ����٤�ƥ��Ȥ��뤿��θ��ڥ��åȤǤ��� "Validation Suite for Standard C Preprocessing"�����β��⤪��Ӥ����Ȥäƥƥ��Ȥ����Ƽ�ץ�ץ����å��κ����� cpp-test.html �� mcpp �ȤȤ�˸������Ƥ��ޤ��������ȡ���Standard C ���פȾΤ����¸�Υץ�ץ����å��ˤ�����¿�������꤬���뤫���狼��ޤ��� mcpp �� V.2.3 �γ�ȯ������ǡ����ڥ��å� V.1.3 �ȤȤ�ˡ����������ʵ���(IPA) ��ʿ������ǯ�١�̤Ƨ���եȥ�������¤���ȡפ˿��� ͵���ץ��������ȥޥ͡�����ˤ�äƺ��졢2002/07 - 2003/02 �δ֤� IPA �λ�����ȿ����Уͤν����Τ�Ȥ˳�ȯ���ʤ���ޤ������Ѹ��ǥɥ�����Ȥ⤳�Υץ��������Ȥ���ǡ�ͭ�²�ҡ��ϥ�������������������������˻䤬�����ȥƥ�����������ä��ƤǤ������ä���ΤǤ���*2 ��: *1 �ø���ε��ʤȤ��Ƥ� ISO/IEC 9899:1990 (JIS X 3010-1993) ��Ĺ���Ȥ��Ƥ�������1999 ǯ�ˤ� ISO/IEC 9899:1999 �����줿�������Ǥ����Ԥ� C90����Ԥ� C99 �ȸƤ֡����Ԥ� ANSI X3.159-1989 ���ܹԤ�����ΤʤΤǡ����̤ˤ� ANSI C �ޤ��� C89 �ȸƤФ�뤳�Ȥ⤢�롣�ޤ���ISO/IEC 9899:1990 + Amendment 1995 �� C95 �ȸƤ֤��Ȥ����롣C++ �ε��ʤ� ISO/IEC 14882:1998 ����Ӥ������������ǤǤ��� ISO/IEC 14882:2003 �ǡ�����ξ�Ԥ��Ǥ� C++98 �ȸƤ֡� *2 ��̤Ƨ���եȥ�������¤���ȡ�(Exploratory Software Project) �γ��פϼ��ΤȤ������Τ뤳�Ȥ��Ǥ��롣 mcpp V.2.3 �ʹߤΥ���������ӥɥ�����Ȥȸ��ڥ��å� V.1.3 �ʹߤϼ��ΤȤ������֤��Ƥ������� 2006/04 �˼��ΤȤ����˰ܤä��� mcpp �θŤ��С������Ǥ��� cpp V.2.2 ����Ӹ��ڥ��å� V.1.2 �ϥ٥������ҤΥ����Ȥμ��ΤȤ����ˤ��롣dos/prog/c �Ȥ����ǥ��쥯�ȥ��������Ƥ��뤬��MS-DOS ���ѤǤϤʤ����������� UNIX, WIN32/MS-DOS �����б����Ƥ��롣
+http://www.vector.co.jp/soft/dos/prog/se081188.html �����Υ��������֥ե�������Υƥ����ȥե�����ϡ�Vector �Τ�Τ� Windows �˹�碌�ơ����ԥ����ɤ� [CR]+[LF]�������� shift-JIS �� encode ���Ƥ��롣SourceForge �Τ�Τ� V.2.5 �ޤǤ� UNIX �Ϥ˹�碌�Ʋ��ԥ����ɤ� [LF]�������� EUC-JP �Ǥ��롣V.2.6 ����� [CR]+[LF] / shift-JIS �� zip �Ǥ�[LF] / EUC-JP �� tar.gz �ǤΣ�����Υ��������֥ե�������֤��褦�ˤ����� ���Υޥ˥奢��Ϥ��ĤƤϥƥ����ȥե�����Ǥ�������V.2.6.2 ����� html �ե�������Ѥ��ޤ����� mcpp �ˤϡ��ɤν����ϡʥ���ѥ���ˤ������Ω����ñ�Ȥ�ư�� compiler-independent-build �ȡ�����ν����ϤΥץ�ץ����å��˼�ä����ä�ư������������ build (compiler-specific-build) �Ȥ�����ޤ������Ԥϥץ�ץ����������뤿��Τ�Τǡ����ν��Ϥ餫�Υ���ѥ����Ϳ���Ƥ�����������ѥ��뤵���Ȥϸ¤�ޤ���Ԥ�����ν����Ϥǥ���ѥ���ȥ�ޤǹԤ�����Τ�Τǡ�mcpp �ν��ϤϤ��Υ���ѥ���λ��ͤ˹�碌�Ƥ���ޤ���*1, *2 ���ԤǤϥ��ץ�������λ��ͤ� mcpp ��ѥ��뤷�������ϤΤ�����ˤ�����餺�ۤܰ���ǡ�OS �ˤ����㤬������������Ǥ�����ԤǤ϶��̤λ��ͤȤȤ�ˡ������ϤȤθߴ��Τ���λ��ͤ�¿�����ꡢ������ʬ�Ͻ����Ϥ��Ȥ˰ۤʤäƤ��ޤ���Compiler-independent �ǤΥ��ץ����Ͻ����������ǤǤ�ܻۤȤ��ޤ����������ϤΥ��ץ����Ȥξ��ͤ��뤿����̤Υ��ץ����ˤʤäƤ����Τ⤢��ޤ��� Compiler-independent �ǤǤ�����������ǤǤ⡢mcpp �ˤϤ����Ĥ���ư��⡼�ɤ����ꡢ���줾��ۤʤ�ץ�ץ��������ͤ�ư��ޤ����⡼�ɤˤϼ��Σ��Ĥ���ޤ��� �����Υ⡼�ɤ���ꤹ�륪�ץ����ϼ����̤�Ǥ���
+�⡼�ɤ���ꤷ�ʤ��� -@std ����ꤷ�����Ȥˤʤ�ޤ��� STD, COMPAT, POSTSTD ���碌�� Standard �⡼�ɡ�KR �� OLDPREP ���碌�� pre-Standard �⡼�ɤȸƤ֤��Ȥˤ��ޤ����ޤ���COMPAT �� STD �ȤۤȤ��Ʊ���ʤΤǡ��ä��Ǥ�ʤ��¤� STD �ˤ� COMPAT ��ޤᡢɬ�פʾ����� COMPAT �˸��ڤ��ޤ���*3 Standard �� pre-Standard �Υ⡼�ɤȤǤϡ��ޥ���Ÿ����ˡ�ΰ㤤��¿������ޤ���C90 �� pre-C90 �Ȥΰ㤤���Ȼפäƴְ㤤����ޤ��Ǥ��礭�ʰ㤤�ϡ��ؿ��ͥޥ����ʰ����դ��ޥ����ˤ�Ÿ���ǡ������˥ޥ������ޤޤ�Ƥ����硢Standard �⡼�� �Ǥϰ�������˴�����Ÿ�����Ƥ��鸵�ޥ������ִ��ꥹ����Υѥ������֤�������Τ��Ф��ơ�pre-Standard �Ǥ�Ÿ�������˥ѥ������ִ������ƥ���������Ÿ�����뤳�ȤǤ��� �����ˤ��� \ �ΰ�����⡼�ɤˤ�äưۤʤꡢStandard �⡼�� �Ǥ� trigraph �����θ塢tokenization ������ <backslash><newline> �� sequence �������ޤ�����pre-Standard �⡼�� �Ǥ�ʸ�����ƥ�����ˤ������ #define �Ԥˤ�����˸¤äƤ���������ޤ��� ������ tokenization�ʥȡ�����ʬ�䡢�ȡ�������ڤ�Ф��ˤ�⡼�ɤˤ�ä���̯�˰㤤�ޤ��� Digraph, #error, #pragma, _Pragma() operator �� Standard �⡼�� �Ǥʤ��ȻȤ��ޤ���-S <n> ���ץ�����strict-ansi �⡼�ɡˤ� -+ ���ץ�����C++ �ץ�ץ����å��Ȥ���ư���ˤ� Standard �⡼�� �Ǥ����Ȥ��ޤ���������ޥ��� __STDC__, __STDC_VERSION__ �� Standard �⡼�� �λ���������졢pre-Standard �λ����������ޤ��� Trigraph �� UCN (universal-character-name) �ϡ�STD �⡼�ɤǤ����Ȥ��ޤ��� ���ǥ�å������ν�����⡼�ɤˤ�äƾ�����äƤ��ޤ��� �ʾ�˽Ҥ٤����Ȱʳ��� K&R 1st. �� Standard C �Ȱۤʤ����Τʵ���Τʤ����Ȥ���ˤĤ��Ƥϡ�pre-Standard �⡼�� �Ǥ� C90 �ε���˽����ޤ��� OLDPREP �⡼�ɤ� KR �⡼�ɤȤΰ㤤������� POSTSTD, COMPAT �ƥ⡼�ɤ� STD �⡼�ɤȤΰ㤤�ϼ��Τ褦�ʤ�ΤǤ��� �ʤ������Τۤ� lang-asm �⡼�ɤȤ�����Τ⤢��ޤ���
+����ϥ�����֥饽������ C �Υ����ȡ��ǥ��쥯�ƥ��֡��ޥ������������줿��§Ū�ʥ��������������⡼�ɤǤ���
+POST_STD �Ϥ��Υ⡼�ɤˤʤ뤳�ȤϤǤ��ޤ�������ʳ��Υ⡼�ɤϰ���Υ��ץ�������ꤹ�뤳�ȤǤ��Υ⡼�ɤˤʤ�ޤ���
+���λ��ͤˤĤ��Ƥ� 2.5 �Ƥ��������� �����������Ȥ� mcpp �μ¹ԥץ������ˤϤ����Ĥ�λ��ͤ�����Τǡ��ޥ˥奢������դ����ɤ�Ǥ������������ξϤǤϤޤ� mcpp �ζ��̤Υ��ץ�����������������ư��⡼�ɤˤ�äưۤʤ륪�ץ�����Ҥ١���������ν����������Ǥ�����ƶ��̤Υ��ץ�����Ҥ١����Τ��Ȥǽ����������Ǥν����Ϥ��Ȥ˰ۤʤ륪�ץ����ܤ��ޤ��� ��: *1 ���Τۤ� subroutine-build �Ȥ�����Τ⤢�롣���餫��¾�Υᥤ��ץ�����फ�� mcpp �����֥롼����Ȥ��ƸƤӽФ�����ΤǤ��롣�����������λ��ͤ� mcpp ��ѥ��뤷����������ˤ�ä� compiler-specific-build �ޤ��� compiler-independent-build �Τɤ��餫��Ʊ���ˤʤ�Τǡ����Υޥ˥奢��Ǥ��äˤȤꤢ���ʤ���
+Subroutine-build �ˤĤ��Ƥ� mcpp-porting.html#3.12 �ȤΤ��ȡ� *2 SourceForge �Υ����Ȥ�����Х��ʥꡦ�ѥå������Ϥ��٤� compiler-independent-build �Ǥ��롣 *3 V.2.5 �ޤǤ� Standard �⡼�ɤ� pre-Standard �⡼�ɤȤǼ¹ԥץ�����ब�̤ˤʤäƤ�������V.2.6 ���飱�Ĥ����礵�줿�� *4 ����� GCC, Visual C++ ���μ��פʽ����ϤȤθߴ����Τ���Υ��ץ����Ǥ��롣'COMPAT' �� "compatible" �ΰ�̣�Ǥ��롣 �ʲ��ε��ܤǤϡ�<arg> �Ȥ�����ˡ�� arg ���桼�������Ϥ��٤�Ǥ�դΰ����Ǥ��뤳�Ȥ���[arg] �� arg ����ά��ǽ�ʰ����Ǥ��뤳�Ȥ��ޤ����ɤ���ˤ��Ƥ� <, >, [, ] ��ʸ�����Τ�Τ����Ϥ��ƤϤ����ޤ��� mcpp ��ư����ϼ��η��Ǥ�����������mcpp �Ȥ���̾���� mcpp �Υ��ȡ�����λ���ˤ�äƤ��̤�̾���ˤʤ�ޤ��� out_file�ʽ��ϥѥ��ˤ���ά���줿���ϡ�-o ���ץ�����ꤵ��ʤ��¤��ɸ����Ϥ˽��Ϥ��ޤ���in_file�����ϥѥ��ˤ��ά���줿����ɸ�����Ϥ������Ϥ��ޤ������ǥ�å������ϡ�-Q ���ץ�����ꤵ��ʤ��¤��ɸ�२�顼���Ϥ˽��Ϥ��ޤ��� ������ɬ�פȤ��륪�ץ����˰������ʤ����ϥ��顼�Ȥʤ�ޤ���-M ���ץ����������̡ˡ� ��ʸ���Ⱦ�ʸ���϶��̤���ޤ��� mcpp ��ư��⡼�ɤ�����Ϥˤ��ʤ����̤Υ��ץ����ϼ����̤�Ǥ��� -M* ���ץ����� makefile �Ѥΰ�¸�ط��Ԥ���Ϥ����ΤǤ���ʣ���Υ������ե����뤬�����硢���٤ƤΥ������ˤĤ��Ƥ����� -M* ���ץ������դ��Ƽ¹Ԥ��ơ����ν��Ϥ�ޡ�������ȡ�makefile ��ɬ�פʰ�¸�ط����ҹԤ��������ޤ��������Υ��ץ����� GCC �Τ�Τ˹�碌�Ƥ��ޤ����������㤤������ޤ���*1 ��: *1 GCC �Ȱ㤦�Τϼ������Ǥ��롣 mcpp �ˤϤ����Ĥ���ư��⡼�ɤ�����ޤ������λ��ͤ� 2.1 �Ȥ��Ƥ���������
+ Standard �⡼�ɤǤϼ��Υ��ץ���Ȥ��ޤ��� STD �⡼�ɤǤϼ��Υ��ץ���Ȥ��ޤ���MCPP-MANUAL
+== How to Use MCPP ==
+for V.2.7.2 (2008/11)
+
+���� �� (kmatsui@t3.rim.or.jp)== �ܼ� ==
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1. ����
+
+�����Υ��������ɥ�����ȤϤ��٤ƥ����ץ��������եȥ������Ȥ������ޤ���
+�ޥ˥奢������Ƥ��������ˡ��ޤ� mcpp ����ħ��Ҳ𤷤Ƥ����ޤ���
+
+
+
+
+1.1. �ϣӤ�����Ϥ����Фʤ� portable �ʥ�����
+
+�ƽ����Ϥ˰ܿ����뤿��ˤϡ�¿���ξ�硢�إå��ե�������Τ����Ĥ��Υޥ����������ؤ��ƥ���ѥ��뤹������Ǥ��ߤޤ����ǰ��ξ��Ǥ⥽�����ե�����˿����Խ������٤Ǥ���
+
+1.2. ���Τ� Standard C �⡼�ɤ˲ä��Ƥ���¾�γƼ�⡼�ɤ�
+
+Standard C �⡼�ɤϴ�¸��¿���Υץ�ץ����å��Ȱ�äơ����ʤ����˼������Ƥ���Ĥ��Ǥ���C90, C95, C99, C++98 �Τ��٤Ƥ��б����Ƥ��ޤ���Standard C �ץ�ץ������� reference model �Ȥʤ��Τ��ܻؤ��ƺ�äƤ���ޤ��������ε��ʤΥС������ϼ¹Ի����ץ����ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ���*1
+�����Ĥ���ͭ�Ѥʼ¹Ի����ץ����������Ƥ��ޤ����������˥Υ�٥����ꤹ�륪�ץ����䡢include directory ����ꤹ�륪�ץ�������Ǥ���
+�������ˤɤ�ʴְ㤤�����äƤ� mcpp ��˽�������긫������ʥ�å�������Ф����ꤻ�������ΤǤ狼��䤹�����ǥ�å�������Ф���Ŭ�ڤʽ����ޤ����ܿ��������Ȥʤ����ˤĤ��Ƥ�ٹ��ȯ���ޤ���
+���ʼ��Ǥ���ʤ��顢�����ɥ����������Ū�������������������Ū���ʤ��Ƥ��ߤޤ���
+�ܺ٤ʥɥ�����Ȥ���°���Ƥ��ޤ���
+mcpp �Ϥ����ʿ������ǯ�٤ˤ��̤Ƨ���եȥ�������¤���ȡפ˰����� �� PM �ˤ�äƷ�³���ƺ��졢V.2.4 �ؤ� update ��Ȥ��ʤ���ޤ�����
+���θ�� mcpp �ȸ��ڥ��åȤϤ���˲��ɤκ�Ȥ�³�����Ƥ��ޤ���
+
+
+
+
+
+
+
+
+
+
+
+http://www.vector.co.jp/soft/dos/prog/se081189.html
+http://www.vector.co.jp/soft/dos/prog/se081186.html
+
+
+1.3. ���Υޥ˥奢���ɽ��ˡ
+
+���Υޥ˥奢��Ǥϼ��Τ褦�˥ե���Ȥ�Ȥ�ʬ���Ƥ��ޤ���
+
+
+�����������ե���Ȥϡ������������ɤ����Ҥ���ӥ��ޥ�ɥ饤������Ϥ��Τ˻Ȥ��ޤ���
+
+���꿧�������ե���Ȥϡ�ɸ���������ޥ�������Ӳ��餫�Υޥ������Τ˻Ȥ��ޤ���
+
+Italic �ե���Ȥ� mcpp �� system.H �Ȥ����������ե��������������ޥ�����ɽ���ޤ������Υޥ˥奢��ǤϤ�����̾���� mcpp �μ�������ɽ�����뤿��˻Ȥ��ޤ��������Υޥ����� mcpp ��ѥ��뤹����˻Ȥ�������ǡ�mcpp �μ¹ԥץ������ˤ�¸�ߤ��Ƥ��ʤ����Ȥ����դ��Ƥ���������
+
+
+2. ��ư���Υ��ץ����ȴĶ�����
+
+2.1. mcpp �¹ԥץ������Σ�����Υӥ�ɤȣ��Ĥ�ư��⡼��
+
+�ʤ������Υɥ�����Ȥǡ�GCC �ѡס�Visual C �ǡ�����ɽ�����Ƥ���ΤϤ�����⤽�줾�� GCC ���� build, Visual C ���� build �ΰ�̣�Ǥ���
+
+
+Standard C (C90, C99, C++98) �Υץ�ץ��������ͤǤ������줬�ǥե���ȤΥ⡼�ɤǤ���
+
+std �⡼�ɤ��Ѽ�ǡ��Ƶ�Ū�ޥ����ʤ��⤵���Ÿ�����ޤ���
+
+kmatsui ������˺�ä��ץ�ץ��������ͤǡ�Standard C �μ�����Ӥ��ʤ��������������ñ�㲽������ΤǤ���
+
+C90 ������ K&R 1st. �Υץ�ץ��������ͤǤ���
+
+������ "Reiser" model cpp ��ư����ͤǤ���
+
+
+
+STD �⡼��
+
+COMPAT �⡼��
+
+POSTSTD �⡼��
+
+KR �⡼��
+
+OLDPREP �⡼��
+
+�ޤ���Standard �⡼�� �Ǥ�ľ�ܤˤ���ܤˤ�ޥ����κƵ�ŪŸ���ϸ�§�Ȥ��Ƥ��ޤ���pre-Standard �ǤϺƵ�Ū�ʥޥ������������ȡ�Ÿ������̵�ºƵ�������������ƥ��顼�Ȥʤ�ޤ���
+Standard �⡼�� �Ǥϡ�token base �Ǥ�ư��פȤ�����������¤� tokenization ��Ԥ��ޤ�������Ū�ˤϡ�Standard �⡼�� �Ǥϡ��ޥ�����Ÿ������Ȥ�������� space ���������ơ������ token �Ȥΰտޤ��ʤ�Ϣ�뤬ȯ������Τ��ɤ��ޤ���pre-Standard �⡼�� ������Ū���ص�Ū������Ū�� tokenization �ȡ���character base �ǤΥƥ������ִ��פˤ��ޥ���Ÿ����ˡ�κ��פ�Ĥ��Ƥ��ޤ������������ˤĤ��Ƥϡ� cpp-test.html#2 ��������������
+Standard �⡼�� �Ǥ� preprocessing number �Ȥ������ͥȡ���������̤�˰����ޤ���pre-Standard �Ǥϡ����ͥȡ�����ϣä���������ȡ��������ư���������ȡ������Ʊ���Ǥ�����������Ǥ������� 'U', 'u', 'LL', 'll'����ư����������Ǥ������� 'F', 'f', 'L', 'l' �ϥȡ�����ΰ����Ȥ���ǧ�����ޤ���
+�磻��ʸ����ʸ�����ƥ���ʸ������� Standard �⡼�� �Ǥ���ñ��Υȡ�����Ȥ���ǧ������ޤ���
+#if defined, #elif �� pre-Standard �ǤϻȤ��ޤ���#include, #line �ΰ����˥ޥ�����Ȥ����Ȥ� pre-Standard �ǤϤǤ��ޤ���������ޥ��� __FILE__, __LINE__, __DATE__, __TIME__ �� pre-Standard �λ����������ޤ���
+¾���ǡ�#assert, #asm (#endasm), #put_defines, #debug �� pre-Standard �⡼�ɤǤ����Ȥ��ޤ���
+#if ���� Standard �⡼�� �Ǥ� long long / unsigned long long ��ɾ�����ޤ�����pre-Standard �⡼�� �Ǥ� (signed) long ������ɾ�����ޤ���#if ���� sizeof (type) ���Ȥ���Τ� pre-Standard �����Ǥ���
+
+
+���Τ褦�ʻ��ͤθŤ� "Reiser model cpp" ��ư����old preprocessor �ΰաˡ�
+
+
+
+
+
+
+
+
+
+
+�Ƶ�Ū�ޥ����ʤ��⤵���Ÿ�����롣
+���ʤ�����Ƶ�Ū�ޥ�����Ÿ���˺ݤ��ơ�Ʊ̾�ޥ����κ��ִ���ػߤ����ϰϤʤ��ⶹ���Ȥ롣
+�Ƶ�Ū�ޥ�����Ÿ���ε���ˤĤ��Ƥ� cpp-test.html#3.4.26 �ȤΤ��ȡ��Ƶ�Ū�ޥ����ζ������ test-t/recurs.t �ȤΤ��ȡ�*4
+
+
+����ϵ��ʤ˼��Τ褦���ѹ���ä�����ΤǤ��롣
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2.2. ��ư���Υ��ץ����λ���ˡ
+
+mcpp [-<opts> [-<opts>]] [in_file] [out_file] [-<opts> [-<opts>]]
+
+
+�����Τɤ줫�Υե����뤬�����ץ�Ǥ��ʤ����ϡ����顼��å�������Ф��ƽ�λ���ޤ���
+������ɬ�פȤ��륪�ץ����Ǥ� -I<arg>, -I <arg> �Τɤ����ͭ���Ǥ��ʥ��ץ����ʸ���Ȱ����δ֤� space �Ϥ��äƤ�ʤ��Ƥ��ɤ��ˡ�
+�����Τʤ����ץ����� -Qi, -Q -i �Τɤ����ͭ���Ǥ��ʣ��Ĥ� '-' �θ�ˤĤʤ��Ƥ��̡��� '-' ���դ��Ƥ��ɤ�����������-M �ϤĤʤ��ƤϤ����ʤ��ˡ�
+Ʊ��Υ��ץ����ʣ������ꤵ�줿��硢-D, -U, -I, -W ���ץ����Ϥ��줾�줬ͭ���Ǥ���-S, -V, -+ �ϣ����ܰʹߤ�̵�뤵��ޤ���-2, -3 �Ϥ��Τ��Ӥ˻��ͤ�ȿž���ޤ�������¾�Υ��ץ����ϺǸ�˻��ꤵ�줿��Τ�ͭ���Ǥ���
+�����륹���å�����饯���� Windows �Ǥ� - �Ǥ��ꡢ/ �ǤϤ���ޤ���
+�����ʥ��ץ�������ꤹ��� usage ʸ��ɽ�������Τǡ�mcpp -? ���Ȥ��뤳�Ȥǡ��Ȥ��륪�ץ�����Τ���뤳�Ȥ��Ǥ��ޤ���Usage ʸ�Τۤ��ˤ⤤���Ĥ��Υ��顼��å�����������ޤ������������ƤϤ�����⼫���Τ�ΤǤ���Τǡ������Ͼ�ά���ޤ���
+
+2.3. ���̤Υ��ץ����
+
+
+
+��������Υ����Ȥ���Ϥ��롣�ǥХå�����ͭ�Ѥʥ��ץ����Ǥ��롣�������������Ȥϥ������������Ԥ���Ƭ�˰ܤ��ƽ��Ϥ��롣�����Ȥν����ϥޥ���Ÿ����ǥ��쥯�ƥ��֤ν��������˹Ԥ����ΤǤ��ꡢ�����Ȥϥޥ����ƤӽФ�������ˤ��뤫�⤷��ʤ�����Ǥ��롣
+
+
+
+�ޥ��� macro ��������롣�����������Ƥ���ޥ����Ǥ� __STDC__, __STDC_VERSION__, __FILE__, __LINE__, __DATE__, __TIME__, __cplusplus �ʳ��Ǥ���С����Υ��ץ�����������ѹ��Ǥ����C99 �� __STDC_HOSTED__ �� GCC V.3 �Τ褦�� -D ���ץ����������������Ϥ⤢��Τǡ��㳰Ū�˵��Ĥ���ˡ�=<value> �����ꤵ��Ƥ���� value �����������ά����Ƥ���� 1 ����������bcc32 �ǤϾ�ά���ˤϣ��ĤΥȡ��������������Τǡ�����Ȥϰ㤦���Ȥ����աˡ�= �����ˤ϶��������ƤϤ����ʤ���= �θ�˶�����Ф��Υޥ����ϣ��ĤΥȡ�������������롣
+���Υ��ץ����Ǥϡ������Ĥ��ޥ���������Ǥ��롣
+���Υ��ץ����ϲ���Ǥ����Ǥ��롣
+
+
+
+Multi-byte character �� encoding �� <encoding> ���ѹ����롣
+<encoding> �ˤĤ��Ƥ� 2.8 �ȤΤ��ȡ�
+
+
+
+Include directory �Υ������ѥ������̤� directory ����ꤹ��ʥ������ѥ��ˤĤ��Ƥ� 4.2 �ȡˡ�directory ̾�� space ���ޤޤ����ϡ�directory ̾���Τ� " �� " �ǰϤळ�ȡ�
+
+
+#include
+"header" �η����Ρ�<header> �η����ǤϤʤ��˥ǥ��쥯�ƥ��֤Ǻǽ�˥����������ǥ��쥯�ȥ�δ�����ꤹ�롣-I1 �Ǥϥ����ȥǥ��쥯�ȥꡢ-I2 �Ǥϥ������ե�����ʥ��롼�ɸ��ˤΤ���ǥ��쥯�ȥꡢ-I3 �ǤϤ���������������ʾܺ٤� 4.2 �ȡˡ�
+
+
+���ǥ�å������ν��ϤǤϥ������������ղþ���Ͻ��Ϥ��������Ԥο��ǥ�å������������Ϥ���ʥǥե���ȤǤϣ��Ԥο��ǥ�å�������³���ơ����Υ������Ԥ�ɽ������롣�������ե����뤬 include ���줿��ΤǤ�����ϡ�include ���ιԤ�缡ɽ������롣�ޥ����˴ؤ�����ǥ�å������Ǥϡ�Ÿ�����Υޥ�����缡ɽ�������ˡ�
+GCC �� testsuite �ǻ�θ��ڥ��åȤ�Ȥ����ϡ����Υ��ץ�������ꤷ�ơ�GCC ��Ʊ�����ǥ�å����������ˤ���ɬ�פ����롣
+
+
+
+
+�������ե�����ΰ�¸�ط��Ҥ���Ԥ���Ϥ��롣������ϥ��ޥ�ɥ饤��ǻ��ꤵ�줿���ϥե����롢���줬���ꤵ��Ƥ��ʤ����ɸ����ϤǤ��롣�Ԥ�Ĺ������ޤꤿ���ࡣ�̾�Υץ�ץ�������̤Ͻ��Ϥ��ʤ���
+
+
+-M �Ȥۤ�Ʊ���Ǥ��뤬�����Υإå��ϽФ��ʤ���
+
+
+��������GCC-specific-build �Ǥ� GCC ��Ʊ�ͤˡ��Ф��ʤ��Τϥ����ƥ�إå������Ǥ��롣
+
+
+
+
+-M �Ȥۤ�Ʊ���Ǥ��뤬���̾�Υץ�ץ�������̤⥳�ޥ�ɥ饤��ǻ��ꤵ�줿�ե�����ޤ���ɸ����Ϥ˽��Ϥ���뤳�Ȥ���äƤ��롣�ޤ�����¸�ط��Ԥν�����ϡ� FILE �����ꤵ�줿���Ϥ��Υե�����Ȥʤꡢ���ꤵ��Ƥ��ʤ����ϥ������ե�����̾�� .c �� .d ���Ѥ����ե�����Ȥʤ롣
+
+
+-MD �Ȥۤ�Ʊ���Ǥ��뤬��-MM ��Ʊ�ͤ˥����ƥ�إå��Ȥߤʤ�����ΤϽФ��ʤ����Ȥ���äƤ��롣��¸�ط��Ԥν������ -MD [FILE] ��Ʊ����
+
+
+������� FILE �ˤ��롣-MD FILE, -MMD FILE ��ͥ�褹�롣
+
+
+"Phony target" ����Ϥ��롣Phony target �Ȥ����Τϡ����롼�ɤ����ե����룱�ģ��ĤˤĤ��ơ����켫�Τ��¸�������ʤ��������åȤȤ��ơ����Τ褦�˵��Ҥ����ΤǤ��롣
+
+test.o: test.c test.h
+test.h:
+
+
+�������åȤ�̾�����̾�� foo.o �ǤϤʤ� TARGET �ˤ��롣-MT '$(objpfx)foo.o' �Ȥ������ץ����Ǥϼ��Τ褦�ʹԤ����Ϥ���롣
+
+$(objpfx)foo.o: foo.c
+
+
+-MT ��Ʊ�ͤǤ��뤬��make �ˤȤä����̤ʰ�̣�����ʸ���ϼ��Τ褦�� quote ���롣
+
+$$(objpfx)foo.o: foo.c
+
+
+'_' �ǻϤޤ��Τ�ޤ�Ƥ��٤Ƥλ�������ޥ�����̵���ˤ��롣�����������ʤ��ᤵ��Ƥ����������ޥ�������� __MCPP �Ͻ��������ʤ��ᤵ��Ƥ����������ޥ����Ȥϡ�__FILE__, __LINE__, __DATE__, __TIME__, __STDC__, __STDC_VERSION__, C99 �� __STDC_HOSTED__ ����� C++ �� __cplusplus �Ǥ��롣��__MCPP �� undefine ���������� -U ���ץ�����Ȥ����ȡˡ�
+
+
+�ץ�ץ�������Υ������� file �˽��Ϥ��롣��ά����������������ϥѥ��Ȥʤ�Τǡ�̵���Ƥ�褤���ץ����Ǥ��뤬������ѥ���ɥ饤�Фˤ�äƤϤ��Υ��ץ�����Ȥ���Τ����롣
+
+
+����ѥ������Τ˹��ֹ�������������Ϥ��ά���롣�äΥץ�ץ����å��ʳ������Ӥ�ή�Ѥ�����˻Ȥ����ץ����Ǥ��롣
+
+
+���ǥ�å�������ʥ����ȥǥ��쥯�ȥ�Ρ�mcpp.err �Ȥ���̾���Υե�����˽��Ϥ����mcpp.err �ϸ���˥��ڥ�ɤ���Ƥ椯�Τǡ�����������뤳�ȡˡ�
+
+
+�����������Ƥ���ޥ��� macro ����ä���__FILE__, __LINE__, __DATE__, __TIME__, __STDC__, __STDC_VERSION__, C99 �⡼�ɤǤ� __STDC_HOSTED__ ����� -+ ���ץ����ǵ�ư�������� __cplusplus �ϼ��ä��ʤ��ˡ�
+
+
+mcpp �ΥС������ӥ��롼�ɥǥ��쥯�ȥ�Υ��������ɸ�२�顼���Ϥ˽��Ϥ��롣
+��������2.4 �ǽҤ٤� -K ���ץ�����ꤵ�줿�����ޤ��� 3.5.8 �ǽҤ٤� #pragma MCPP macro_call �����ꤵ�줿���ϡ����Υ��ץ����Ϥ��ΰ�̣���Ѥ��롣
+
+
+Warning ����Ϥ����٥�� level �˻��ꤹ�롣
+level �� 0 �ޤ��� 1, 2, 4, 8, 16 �Τ�����Ǥ�դ��ͤ� OR ��Ȥä���ΤǤ��롣
+1, 2, 4, 8, 16 �Ϥ��줾�� warning �� class ���̣���롣
+�㤨�� -W 5 �Ǥ� class 1, 4 �� warning �����Ϥ���롣
+0 �ξ��� warning �Ͻ��Ϥ��ʤ���
+���Υ��ץ����ʣ������ꤵ���ȡ����٤Ƥλ���� OR ���Ȥ��롣
+�㤨�� -W 1 -W 2 -W 4 �� -W 7 ��Ʊ���Ǥ��롣
+-W 7 ������� -W "1|2|4" �Ȥ��뤳�Ȥ�Ǥ����| ���ѥ��פȲ�ᤵ��ʤ��褦�� " �� " �ǰϤ�ɬ�פ�����ˡ�
+-W "3|4" ���Ȥ��Ƥ⤫�ޤ�ʤ���
+��������-W 0 �����ꤵ�줿���ϡ�¾�� -W ���ץ����Ϥ��٤ƥ���뤵��롣
+���Υ��ץ�������ꤷ�ʤ����� -W 1 ����ꤷ���Τ�Ʊ���Ǥ����warning �����Ƥ� 5.5 - 5.9 �ȡˡ�
+
+
+#include �Ǽ����ޤ줿�ե�����Υץ�ץ�������̤Ͻ��Ϥ��ʤ���
+���������ޥ������������롣
+��������� #include �Ԥ��Τ�Τ���Ϥ��롣
+Include ���줿�ե��������� #include �ԤϽ��Ϥ��ʤ���
+�ץ�ץ������ΥǥХå����˻Ȥ����ץ����Ǥ��롣
+
+
+
+
+
+
+2.4. mcpp �Υ⡼�ɤˤ�륪�ץ����
+
+���Υޥ˥奢��ǤϳƼ�Υ⡼�ɤλ��ͤ��¤٤Ƶ��ܤ���Ƥ���Τǡ��������ˤ����ʤäƤ��ޤ��������ޤƤ����������ޤ����ʲ��������ǽФƤ��� DIGRAPHS_INIT, TRUE, FALSE, etc. ����ʸ��̾��__ �ǻϤޤ�ʤ���Ρˤ� italic ��ɽ������Ƥ����ΤϤ��٤� system.H ����������ޥ����Ǥ��������Υޥ����Ϥ����ޤǤ� mcpp ���Ȥ�ѥ��뤹����˻Ȥ�������ǡ��Ǥ������ä� mcpp �¹ԥץ������ˤϤ����Υޥ����ϻĤäƤϤ��ޤ����㤤���ʤ��褦�ˤ��Ƥ���������
+
+
+C++ �Υץ�ץ����å��Ȥ���ư��롣�ޥ��� __cplusplus �����������ʤ����ͤ� system.H ���������Ƥ��롣�ǥե���Ȥ� 1�ˡ�// ���������Ԥι����ޤǤ��ȤȲ�ᤷ��::, .*, ->* �줾��ñ��Υȡ�����Ȥ���ǧ�����롣#if ����Ǥ� true, false �Ȥ����ȡ�����Ϥ��줾�� 1, 0 ��ɾ�����롣__STDC__, __STDC_VERSION__ ���������Ƥ���С������������ʤ�������GCC �����ǤǤ� GCC �Ȥθߴ����Τ���� __STDC__ �Ϻ�����ʤ��ˡ�_ �ǻϤޤ�ʤ���������ޥ����������롣��������extended characters �� UCN �ؤ��Ѵ��Ϥ��ʤ���*1, *2
+
+
+Digraphs �����ν�������ȿž���롣DIGRAPHS_INIT == FALSE �ξ��Ϥ���� digraph ��ǧ������褦�ˤʤꡢ�դξ���ǧ�����ʤ��ʤ롣
+
+
+�ޥ��� __STDC_HOSTED__ ���ͤ� <n> ��������롣
+
+C �Ǥ� __STDC__ ���ͤ� <n> ���ѹ����롣C++ �Ǥ�̵�뤵��롣<n> �� [0,9] ���ϰϤο��ͤǤʤ���Фʤ�ʤ���<n> �� 1 �ʾ�Ǥ���С�_ �ǻϤޤ�ʤ���������ޥ�����unix, linux ���ˤ�̵���ˤ��롣
+S �� __STDC__ �ΰ�̣�Ǥ��롣���Υ��ץ�������ꤷ�ʤ��ȡ�__STDC__ �ϥǥե���Ȥ��ͤȤʤ���̾�� 1�ˡ�
+GCC �ǤǤ� -pedantic, -pedantic-errors, -lang-c89 �Ǥ� -S1 ����ꤷ����Ʊ�����Ȥˤʤ�Τǡ����μ��� -S ��̵�뤵��롣
+�ޤ��������Υ��ץ����Ǥ� unix, linux, i386 �������ʰ�ȿ�λ�������ޥ�����̵���ˤʤ�ʤ���
+GCC �Ȥθߴ����Τ���Ǥ��롣
+�����λ�������ޥ����� -ansi �ޤ��� -std=iso* ���ץ����ǽ���̵���ˤʤ롣
+
+
+C �Ǥ� __STDC_VERSION__��C++ �Ǥ� __cplusplus �Ȥ�����������ޥ������ͤ���ꤵ�줿�� <value> ���ѹ����롣���ξ��� <value> �� long ���ͤȤʤ��C95 �ǤϤ����ͤ� 199409L��C99 �Ǥ� 199901L��C++ Standard �Ǥ� 199711L �Ǥ���ˡ�__STDC__ �� 0 ���������Ƥ���� __STDC_VERSION__ ��ɬ�� 0L �Ȥʤꡢ-V ��̵���Ǥ��롣
+C �Ǥϡ����Υ��ץ�������ꤷ�ʤ��ȡ�__STDC_VERSION__ �� system.H �� STDC_VERSION ���ͤȤʤ��GCC V.2.7 - V.2.9 �Ǥ� 199409L������ʳ��Ǥ� 0L�ˡ�-V199901L �Ȥ��� __STDC_VERSION__ >= 199901L �ˤʤä����ϼ��Τ褦�� C99 �λ��ͤȤʤ�� 3.7 ���ȡˡ�
+
+
+
+�ʤ������Ѱ����ޥ����� C99 �λ��ͤǤ��뤬��C90 ����� C++ �Ǥ�Ȥ���褦�ˤ��Ƥ��롣*4
+
+
+
+
+
+
+C++ �Ǥ� -V199901L �Ȥ��� __cplusplus >= 199901L �ˤ���ȡ�C99 �ߴ��⡼�ɤȤʤꡢ�嵭 2,3,4 �ε�ǽ��ĥ��Ԥ���1 ��̵����ͭ����5 �Ϥۤ�Ʊ�͡ˡ������ mcpp �ȼ��γ�ĥ�Ǥ��ꡢC++ Standard �ˤϰ�ȿ���롣
+�ʤ��������Υޥ��� __STDC__, __STDC_VERSION__, __cplusplus �λ���� -D ���ץ����ϻȤ��ʤ������̤Υ桼������ޥ����ȶ��̤��뤿��Ǥ��롣
+
+
+Trigraph �����ν�������ȿž���롣
+TRIGRAPHS_INIT == FALSE �ξ��Ϥ���� trigraph ��ǧ������褦�ˤʤꡢ�դξ���ǧ�����ʤ��ʤ롣
+
+�ޥ����˴ؤ��������Ȥ˽���ǽ��Ϥ���֥ޥ�������⡼�ɡ�(macro notification mode) ����ꤹ�롣
+���Υ⡼�ɤǤϡ��ץ�ץ�������ν��Ϥ��鸵�Υ�������Υޥ����ΰ��֤��Τ뤳�Ȥ��Ǥ��롣
+���Υ⡼�ɤ� C/C++ �� refactoring tool �Τ���˼������줿��ΤǤ��롣
+C/C++ �ˤϥץ�ץ������Ȥ����ե������Τ��뤳�Ȥ� refactoring tool �ˤȤäƺ�������������������������Υ⡼�ɤ�Ȥ��Хץ�ץ�������ν��Ϥ��饽������ƹ������뤳�Ȥ��Ǥ��롣
+����ˡ����ϤΤޤƥץ�ץ��������ƥ���ѥ��뤹�뤳�Ȥ��Ǥ��롣*5
+���Υ⡼�ɤϼ��� pragma �ǻ��ꤹ�뤳�Ȥ�Ǥ��롣
+
+#pragma MCPP debug macro_call
+
+-K ���ץ����Ϥ��� pragma ��������Ƭ�˽��ΤȤۤ�Ʊ�����̤���ġ�
+��������pragma �Ǥϻ�������ޥ����Ͻ��Ϥ���ʤ���
+Macro notification �λ��ͤˤĤ��Ƥ� 3.5.8. #pragma MCPP debug macro_call �ȤΤ��ȡ�
+���Υ⡼�ɤǤϼ��� -k ���ץ����ưŪ�˻��ꤵ��롣
+���Υ⡼�ɤ�Ʊ���� -v ���ץ�����ꤵ�줿���� -v ���ץ����Ϥ��ΰ�̣���Ѥ���macro notification �����Ƥ����ܺ٤ˤʤ롣
+�ޤ���-a (-x assembler-with-cpp) �ޤ��� -C ���ץ�����ꤵ�줿���ϡ�-K ���ץ����ϼ�ưŪ��̵���ˤʤ롣*6
+
��:
+*1 C++ �� __STDC__ ���������Ƥ���Τϥȥ�֥�θ��Ǥ��ꡢ�ɤ����ͤǤϤʤ���GCC �Υɥ�����Ȥˤ��ȡ��إå��ե������¿���� __STDC__ ���������Ƥ��뤳�Ȥ���Ԥ��Ƥ���Τǡ�C++ �Ǥ⤳���������Ƥ���ɬ�פ����롢�ȤΤ��ȤǤ��롣������������ϥإå��ե�����ν����������ȸ��虜��ʤ���C90, C99, C++ �˶��̤���ʬ�ˤϡ�#if __STDC__ || __cplusplus �Ƚ٤��ʤΤǤ��롣
+*2 C++ Standard �Ǥ� C99 �Ȱ�äơ�UCN ���硹Ū�ʰ���������Ƥ��ꡢ����Ⱦü�ʼ����ϤǤ��ʤ���C 1997/11 draft �Ǥ⤽���Ǥ��ä�����������Unicode ���ޤ�Ƴ�����뤳�Ȥˤϡ���������ô���礭�����뤳���������꤬���äƵ��������Ǥ��롣
+*3 // �� C90��Standard �⡼�ɤξ��ˤǤ⥳���ȤȤ��ư��������������˥�Ф���
+*4 ����� GCC �Ȥθߴ����Τ���Ǥ��롣
+*5 GCC-specific-build �� mcpp �ȡ��뤹��ȡ�mcpp �ˤ��ץ�ץ��������Ϥ� cc1 (cc1plus) �� -fpreprocessed �Ȥ������ץ������դ����Ϥ����褦�ˤʤ롣 +���Υ��ץ��������Ϥ��ץ�ץ��������ߤǤ��뤳�Ȥ� cc1 ���������ΤǤ��뤬������Ǥ⥳���ȤϽ�������롣 +�������äơ�-K ���ץ����η�̤� cc1 �� -fpreprocessed ���ץ������դ����Ϥ��ƺ����٤��ʤ��� +�ޤ���gcc (g++) ���ޥ�ɤ� -save-temps �Ȥ������ץ������դ���ȡ��ץ�ץ�������̤� *.i (*.ii) �ե����뤬�Ĥ����Τǡ������ refactoring tool �ǽ������뤳�Ȥ��Ǥ��롣
+*6 -x assembler-with-cpp ���ץ����Ǥ� C/C++ �Υ������ǤϤʤ� GCC �Ѥ� *.S �ե����뤬�������ե�����Ȥ��ƻȤ��뤬������ *.S �ե�����Υץ�ץ������Ǥϡ�-K ���ץ�����Ȥäƥ����Ȥ���������ȥ������֤�����뤿�ᡢ������֥�Ǥ��ʤ��ʤ뤫��Ǥ��롣 +�ޤ���-C ���ץ����ˤ�륳���Ȥ� -K ���ץ������������줿�����Ȥ�ʶ��路�����Ȥ�����Τǡ�Ʊ���ˤϻȤ��ʤ���
+*7 ���Υ��ץ�����ȤäƤ⡢�ü�ʾ��ˤ����Τ��б����ݻ�����ʤ����Ȥ����롣 +<backslash><newline> �ˤ���Ϣ��ȹԤ�ޤ��������Ȥˤ���Ϣ�뤬Ϣ³������䡢�����Ȥ� 256 �ʾ�³�����ʤɤǤ��롣 +�ʤ������Υ��ץ�������ꤷ�Ƥ⤷�ʤ��Ƥ⡢'\v', '\f' �� space ���Ѵ�����롣
+UNIX �ϤΥ����ƥ�Ǥϼ��Σ��ĤΥ��ץ���Ȥ��ޤ��� +��������Ω�ǡ�GCC �����Ǥ˶��̤Ǥ��� +��������GCC �����ǤǤ� GCC ���б����Ƥ��ʤ��ȥ��顼�ˤʤ�ޤ���
+GCC �ϥ��ץ��������¿���Τǡ�GCC �����ǤǤϤ���Ȥξ��ͤ��뤿��ˤ����Ĥ��Υ��ץ�����¾�ν����ϤȤϰ㤦��Τˤ��Ƥ��ޤ����ʤ���GCC �ǥ���ѥ��뤷�� mcpp �Ǥ� compiler-independent �ǤΥ��ץ�����¾�ν����Ϥǥ���ѥ��뤷����Τ�Ʊ���Ǥ����ʲ��Υ��ץ����� GCC �����ǰʳ��˶��̤Τ�ΤǤ���
++#APP ++
�Τ褦�� # �μ��� identifier ���äΥǥ��쥯�ƥ��֤˹��פ��ʤ���硢���ιԤΤޤ��Ϥ��롣
++# + any comment. ++
�Ȥ��ä� # �μ��� identifier, pp-number �ʳ��Τ�Τ������Ԥϡ��������˥ȤȤ�˼ΤƤ뤬���顼�ˤϤ��ʤ���
++"Jugemjugem +gokouno +surikire" ++
�Ȥ��ä����Τ�ή���ιԤ�ޤ���ʸ�����ƥ���
+"Jugemjugem\ngokouno\nsurikire"
+�Ȥ����Ԥ�Ϣ�뤹�롣
������ GNU �Υ������ʤɤ˻����������ΤǤ�����GCC �ǤǤϤ��Υ��ץ����� -x assembler-with-cpp ����� -lang-asm �Ǥ���
+�����������Υ��ץ����� POSTSTD �⡼�ɤǤϻȤ��ޤ���
+���Υ⡼�ɤΥޥ˥奢��Ǥ� lang-asm �⡼�ɤȸƤӤޤ���
+���Υ⡼�ɤ� mcpp �� C/C++ �ʳ��Υƥ����ȤΥޥ������ץ����å��Ȥ��ƻȤ�����Ŭ���Ƥ��ޤ���xrdb ����ƤӽФ� cpp �Ȥ��ƻȤ����ʤɤǤ���
����ν����Ϥǥץ�ץ����å��Ȥ��� mcpp ��Ȥ��ˤϡ������ϤΥץ�ץ����å��Τ������Ŭ����̾�����֤��Ƥ����ޤ������λ��ˡ���������°�Υץ�ץ����å���ä��Ƥ��ޤ����ȤΤʤ��褦�����餫������̾�Υե�����˥��ԡ����Ƥ����Ƥ���������
+Linux, FreeBSD, CygWIN �Ǥ�����ˤĤ��Ƥ� 3.9.5 �Ȥ��Ƥ���������
+GCC 3.*, 4.* �Ǥ�����ˤĤ��Ƥ� 3.9.7, 3.9.7.1 �Ȥ��Ƥ���������MinGW �Ǥ�����ˤĤ��Ƥ� 3.9.7.1 �Ȥ��Ƥ���������
+
��������°�Υ���ѥ���ɥ饤�Ф�����̾����ˡ�Ǥ� mcpp ���Ϥ���ˡ�Τʤ����ץ����⤢��ޤ���
+Gcc �Ǥ� -Wp �Ȥ�������ޥ��ƥ����ץ�����Ȥ��ȡ��ɤ�ʥ��ץ����Ǥ�ץ�ץ����å����Ϥ����Ȥ��Ǥ��ޤ����㤨�С�
+gcc -Wp,-W31,-Q23 ++
�Ȥ���ȡ��ץ�ץ����å��� -W31 -Q23 �Ȥ������ץ�����Ϥ���ޤ����ץ�ץ����å����Ϥ��������ץ����� -Wp, ��³���� , �Ƕ��ڤä��¤٤ޤ���*1, *2
+¾�ν����ϤǤ⡢�⤷����ѥ���ɥ饤�ФΥ�����������С����μ�Υ���ޥ��ƥ����ץ������ɲä����ۤ����ɤ��Ǥ��礦���㤨�С�-P<opt> �Ȼ��ꤹ��� P ��Ȥä� -<opt> ���ץ�ץ����å����Ϥ����褦�ˤ��Ƥ����ȡ��ɤ�ʥ��ץ����Ǥ�Ȥ���褦�ˤʤ�Τ������Ǥ���
+�⤦���Ĥ���ˡ�ϡ���� mcpp �ǥץ�ץ��������ơ����ν��ϥե���������ե�����Ȥ��ƥ���ѥ�����Ϥ��褦�� makefile ����ȤǤ���������ˡ�ˤĤ��Ƥ� 2.9, 2.10 �Ȥ��Ƥ��������� +
+ +mcpp ������ν����Ϥ��ȤΥ��ץ����ϰʲ����̤�Ǥ���Compiler-independent �ǤˤϤ�������Υ��ץ����Ϥ���ޤ���
+LCC-Win32 �ǤǤϼ��Υ��ץ���Ȥ��ޤ���
+Visual C �ǤǤϼ��Υ��ץ���Ȥ��ޤ��� +
+Mac OS X ��� mcpp �Ǥ� GCC-specific-build �Ǥ� compiler-independent-build �Ǥ⡢���Υ��ץ���Ȥ��ޤ���
+Mac OS X ��� GCC-specific-build �Ǥϼ��Υ��ץ���Ȥ��ޤ���
+GCC (GNU C) �ǤǤϡ��ʲ��Ρʤ��� 2.6 ���������ν����ޤǤΡ˥��ץ���Ȥ��ޤ����ʤ���GCC �ѤǤ� __STDC__ �� 1 �ˤ��Ƥ���Τǡ�-S1 ���ץ����ϻ��ꤷ�Ƥ⤷�ʤ��Ƥ�Ʊ���Ǥ���
+�ޤ���mcpp �Υ⡼�ɤˤ��ʤ����ץ����ϼ��ΤȤ���Ǥ���
++#line 123 "filename" ++�Ȥ����äΥ�������Ʊ�������ǤǤ�������Ϥ����̤Ǥ��뤬�����η����ϻȤ��ʤ������Ϥ⤢�롣mcpp �Ϥ��Τ褦�ʽ������Ѥ� build �Ǥϡ����ν����ϤΥ���ѥ������Τμ�����������ǹ��ֹ�������Ϥ���Τ����ǥե���Ȥλ��ͤǤ��롣
GCC �Ǥ� Standard �⡼�ɤǤϼ��Υ��ץ���Ȥ��ޤ��� +
+GCC �Ǥ� STD �⡼�ɤǤϼ��Υ��ץ���Ȥ��ޤ���
+GCC �Ǥ� pre-Standard �⡼�ɤǤϼ��Υ��ץ���Ȥ��ޤ��� +
+CygWIN / GCC �ǤǤϼ��Υ��ץ���Ȥ��ޤ��� +
+���Υ��ץ����Ϥ�����⥨�顼�ˤϤ��ޤ��������б����ޤ���ʥ������˥�Ф����⤢��ˡ�
+GCC V.3.3 �ʹߤǤϥץ�ץ����å�������ѥ���˵ۼ��������Ω�����ץ�ץ����å���¸�ߤ��ʤ��ʤä����ᡢgcc �� -no-integrated-cpp ���ץ������դ��ƸƤӽФ��Ƥ⡢�ץ�ץ����å��Υ��ץ����ǤϤʤ����ץ���ץ�ץ����å����Ϥ���Ƥ��뤳�Ȥ�����ޤ���GCC V.3.3 �ʹ��Ѥ� mcpp �Ǥϡ����Τ褦�ʤ�ΤΤ��� mcpp ��ǧ�����ʤ���ΤϤ��μ�Τˤ����ץ����Ȥ���̵�뤷�ޤ���
+��:
+*1 -Wa �ϥ�����֥��Ѥ� -Wl �ϥ���ѤΥ���ޥ��ƥ����ץ����Ǥ��롣 +UNIX / System V / cc �Υޥ˥奢���ȡ���Ϥꤳ���Υ��ץ�����롣GCC / cc �� -W<x> ���ץ����Ϥ���Ȥθߴ����Τ���Τ�ΤʤΤǤ�������
+*2 GCC V.3 �Ǥ� cpp �� cc1 (cc1plus) �˵ۼ�����Ƥ��ޤä������Τ��ᡢ-Wp �ǻ��ꤷ�����ץ������̾�� cc1 (cc1plus) ���Ϥ���Ƥ��ޤ����ץ�ץ������� cc1 �ǤϤʤ� cpp (cpp0) �ˤ����뤿��ˤϡ�gcc �θƤӽФ��� -no-integrated-cpp �Ȥ������ץ�������ꤹ��ɬ�פ����롣
+*3 ��������GCC V.3.3 �ʹߤǤ����̤Υޥ�����������������褦�ˤʤä����������ϻ�������ޥ����Ȥ��Ƥϰ���ʤ������ʤ����-dD ���ץ����Ǥ⤳���Υޥ�������Ϥ��롣
+*4 #pragma MCPP put_defines (#put_defines) �ν��Ϥ� -dM ���ץ����Ȥۤ�Ʊ�ͤǤ��롣������������������äƤ��롣
+*5 3.9.6.3 �ȤΤ��ȡ�
+Compiler-independent �Ǥ� mcpp �Ǥ� include �ǥ��쥯�ȥ�� UNIX �� OS �Ǥ� /usr/include, /usr/local/include �ʳ��ϥǥե���ȤǤ����ꤵ��Ƥ��ʤ��Τǡ�¾�Υǥ��쥯�ȥ��ɬ�פǤ���С��Ķ��ѿ���¹Ի����ץ����ǻ��ꤷ�ʤ���Фʤ�ޤ���Compiler-independent �ǤδĶ��ѿ��� C �Ǥ� INCLUDE��C++ �Ǥ� CPLUS_INCLUDE �Ǥ����ե�����Υ������ϥǥե���ȤǤϥ������ե�����Τ���ǥ��쥯�ȥ����Ȥ��ޤ��� 4.2 �ȤΤ��ȡˡ���������Linux �Ǥ� include �ǥ��쥯�ȥ�˺��𤬤���Τǡ����̤��к���ɬ�פǤ�������ˤĤ��Ƥ� 3.9.9 �Ȥ��Ƥ���������
+GCC �����Ǥǥǥե���Ȥ����ꤵ��Ƥ��� system include �ǥ��쥯�ȥ�ˤĤ��Ƥϡ�noconfig/*.dif �ե�����Ƥ����������ޤ���include �ǥ��쥯�ȥ�Υ�������ȴĶ��ѿ���̾���ˤĤ��Ƥϡ� 4.2 �Ƥ���������
+�Ķ��ѿ� LC_ALL, LC_CTYPE, LANG �ˤĤ��Ƥϡ� 2.8 �Ƥ��������� +
+mcpp �� multi-byte character ��¿�ͤ� encoding ���б����Ƥ��ޤ��� +
++++
++ EUC-JP ���ܤ� extended UNIX code (UJIS) + shift-JIS ���ܤ� MS-Kanji + GB-2312 ���� EUC-like �� encoding �ʴ��λ��� + Big-Five ���Ѥ� encoding �����λ��� + KSC-5601 �ڹ�� EUC-like �� encoding (KSX 1001) + ISO-2022-JP1 ��ݵ��ʤ����ܸ� + UTF-8 unicode �� encoding �Σ���
�����ơ��¹Ի��˼��Τ褦�ʤ����Ĥ�����ˡ�Ǽºݤ˻Ȥ� encoding ����ꤷ�ޤ���ͥ���̤Ϥ��ν�ΤȤ���Ǥ���
++++
++ EUC-JP eucjp, euc, ujis + shift-JIS sjis, shiftjis, mskanji + GB-2312 gb2312, cngb, euccn + BIG-FIVE bigfive, big5, cnbig5, euctw + KSC-5601 ksc5601, ksx1001, wansung, eucKR + IS0-2022-JP1 iso2022jp, iso2022jp1, jis + UTF-8 utf8, utf + �ʤ� c, en*, latin*, iso8859*
C, en* (english), latin*, iso8859* �Τɤ줫����ꤹ��ȡ�multi-byte character ��ǧ������ʤ��ʤ�ޤ���ASCII �ǤϤʤ� ISO-8859-* �� Latin �Ϥ� single-byte character ��Ȥ����ϡ��������ꤷ�ޤ���#pragma __setlocale( "") �ȶ���̾������ꤹ��ȡ��ǥե���Ȥ� encoding �����ޤ���
+���Τۤ���Visual C++ �Ѥ� #pragma setlocale �˸¤äơ����Τ�Τ�Ȥ��ޤ��������� Visual C++ �Ȥθߴ����Τ�����Ѱդ��Ƥ����ΤǤ���Visual C++ �Ǥϥ���ѥ��餬������Ǥʤ���ǧ�����ʤ��Τǡ��������Ȥä��ۤ����ɤ��Ǥ��礦��'-' �� mcpp �ǤϾ�ά�Ǥ��뤬��Visual C++ �Υ���ѥ�����Ф��ƤϾ�ά�Ǥ��ʤ��ˡ�Visual C++ �Ǥ� C, english ��Ȥ��ޤ���
++++
++ shift-JIS japanese, jpn + GB-2312 chinese-simplified, chs + BIG-FIVE chinese-traditional, cht + KSC-5601 korean, kor
Visual C++ �Ǥϡ�Windows ���ɤι���ѤǤ��뤫�ˤ�äƥǥե���Ȥ� multi-byte character encoding ���Ѥ�뤳�ȤˤʤäƤ��ޤ����ޤ���Windows �Ρ��ϰ�ȸ���Υ��ץ����פλ���ˤ�äƤ��Ѥ��ޤ��������ε�ǽ������Ⱦü�Ǥ�ä����Ǥ�����������#pragma setlocale �ˤ�����Ϥ�����ͥ�褷�ޤ���
+GCC �� shift-JIS, ISO2022JP, BIG-FIVE �Τ褦�� multi-byte character �� 0x5c ���ͤ���ĥХ��Ȥ�ޤ� encoding �Ϥ��ޤ������Ǥ��ʤ���礬����Τǡ�GCC �ǤǤ� mcpp ��������䤤�ޤ���*1
+��:
+*1 GCC �� configure ������� --enable-c-mbchar �Ȥ������ץ������դ���ȡ����� GCC �ǤϴĶ��ѿ� LANG �� C-EUCJP, C-SJIS, C-JIS �Τɤ줫�˥��åȤ��뤳�Ȥˤ�ä� encoding �����Ǥ��뤳�ȤˤʤäƤ��롣
+������������ configuration �� 1998 ���餢���ΤΤ褦�Ǥ��뤬���ºݤˤϻȤ��Ƥ��餺���ȤäƤ�������ư��ʤ���
+GCC �Ǥ� mcpp �ǤϤ���� LANG=C-SJIS ���δĶ��ѿ��ݡ��Ȥ��Ƥ�������V.2.7 ���ѻߤ�����
+GCC �Ǥ� LANG �Τۤ��� LC_ALL, LC_CTYPE �Ǥ� encoding �����Ǥ��뤳�ȤˤʤäƤ��뤬���ºݤˤϿ��ǥ�å��������Ѥ������Ǥ��롣
Visual C, Borland C, LCC-Win32 �Τ褦�˥ץ�ץ����å�������ѥ��餫����Ω���Ƥ��ʤ�������֥��ѥ�����ѥ���פ�¿���ʤäƤ��ޤ�������®�٤�夲�뤿����Ȼפ��ޤ������������ץ�ץ��������פ�����֤ϸ��ߤΥϡ��ɥ������ǤϾ����ʤ�ΤˤʤäƤ��ޤ����ޤ������⤽��ץ�ץ������Ȥ�����Τϼ¹Ի��Ķ�������Ϥ���Ϥۤ���Ω�������̤Υե������Ǥ��뤳�Ȥ��礭�ʰ�̣������Τǡ��֥��ѥ�����ѥ���פ�¿���ʤ�ΤϷ褷���ɤ����Ȥ��Ȥϻפ��ޤ��ץ�ץ������ν����ϰ�¸�λ��ͤ��������̤ˤʤ�ޤ���
+�Ȥ⤢����ѥ�����ѥ���Ǥϡ��ץ�ץ����å��� mcpp ���֤������뤳�Ȥ��Ǥ��ޤ��������äơ�mcpp ��Ȥ��ˤϡ��ޤ� mcpp �ǥ�������ץ�ץ������������ν��Ϥ�ѥ�����Ϥ��ޤ���������ѥ���ˤ�äƺ��٥���˥ץ�ץ�����������뤳�Ȥˤʤ�ޤ�������Ǥ��������ޤ�����Ǥ⡢mcpp ��Ȥ����Ȥϥ����������å��Τ����ͭ���Ǥ��ꡢ��������°�Υץ�ץ����å��ˤϤʤ���ǽ��Ȥ����Ȥ�Ǥ��ޤ���
+���ѥ�����ѥ���� mcpp ��Ȥ��ˤϡ����μ��� makefile �˽�ɬ�פ�����ޤ������Υ���ץ�Ȥ��Ƥϡ�mcpp ���ȤΥ���ѥ���˻Ȥ� visualc.mak, borlandc.mak, lcc_w32.mak ���� makefile �Υꥳ��ѥ����Ѥ�����Ƥ���������
�ʤ���GCC 3, 4 �Ǥϥ���ѥ��餬�ץ�ץ�������ǽ����¢����褦�ˤʤä���ΤΡ������ץ�ץ����å���Ȥ����ץ������Ѱդ���Ƥ���Τǡ��������Ѥ��뤳�Ȥ� mcpp ������ʤ��Ȥ����Ȥ��Ǥ��ޤ���3.9.7 ���ȡˡ�
+GUI �Τ���������糫ȯ�Ķ���(IDE) �Ȥ�����ΤϽ������ȼ��λ��ͤǤ��ꡢ����Ū�ʥ��ե��������̾�ϸ�������Ƥ��ʤ��Τǡ�������� mcpp ��Ȥ��ˤϺ�����ޤ������ξ塢����ѥ��餬���ѥ�����ѥ���Ǥ���ȡ������� mcpp ��Ȥ��ե���������������ΤϤ���˺���Ǥ���
+�����Ǥ� Windows ��� Visual C++ 2003, 2005, 2008 �� IDE �� mcpp ��Ȥ���ˡ���������ޤ���Borland C �Ǥ� LCC-Win32 �Ǥϡ����ޥ�ɥ饤��ǻȤäƤ���������
+�ޤ���Mac OS X �� Xcode.app / Apple-GCC �� mcpp ��Ȥ���ˡ���������ޤ���
+ +Visual C++ �� IDE ������Ū�ʥ��ե���������������Ƥ��餺�������⥳��ѥ��餬���ѥ�����ѥ���ʤΤǡ��̾�Ρ֥ץ��������ȡפǤ� mcpp ��Ȥ����Ȥ��Ǥ��ޤ���������mcpp ��Ȥ� makefile ��Ƥ����С�����������ǡ֥ᥤ���ե�����ץ��������ȡפ�������뤳�Ȥ��Ǥ��ޤ��������ơ����������Խ��両���䡢����˥�������٥�ǥХå���ǽ��ޤ� IDE ����Ⱦ�ε�ǽ��Ȥ����Ȥ��Ǥ��ޤ���
+�֥ᥤ���ե�����ץ��������ȡפ���ˤϼ��Τ褦�ˤ��ޤ���������ˡ�� ��Visual C++ .net 2003 �ɥ�����ȡפ���ӡ�Visual C++ 2005 Express Edition�ס�Visual C++ 2008 Express Edition�פΡ֥إ�ספΡ֥ᥤ���ե�����ץ��������Ȥκ����פ˽Ƥ����ΤǤ���
++�֥ӥ�ɥ��ޥ�ɥ饤���: nmake +�ֽ��ϡ� : mcpp.exe +�֥���ޥ�ɡ� : nmake clean +�֥�ӥ�ɥ��ޥ�ɡ� : nmake PREPROCESSED=1 ++mcpp �� Visual C �����Ǥ�ѥ��뤹����� COMPILER=MSC �Ȥ������ץ������դ��ä��Ƽ��Τ褦�ˤ��롣
+�֥ӥ�ɥ��ޥ�ɥ饤���: nmake COMPILER=MSC +�ֽ��ϡ� : mcpp.exe +�֥���ޥ�ɡ� : nmake clean +�֥�ӥ�ɥ��ޥ�ɡ� : nmake PREPROCESSED=1 COMPILER=MSC ++�֥ᥤ���ե�����ץ��������ȡפǤ� make install ���������륳�ޥ�ɤ��ʤ��Τǡ��֥ӥ�ɥ��ޥ�ɥ饤��ס֥�ӥ�ɥ��ޥ�ɡפǻ��ꤵ��륳�ޥ�ɤǤ� install ��¹Ԥ����褦�� makefile ��Ƥ���ɬ�פ����롣*4
����ǡ����Խ��ס֥ӥ�ɡס֥�ӥ�ɡס֥ǥХå������ε�ǽ�����٤ƻȤ���褦�ˤʤ�ޤ���
+��:
+*1 VC 2003, 2005 �ǥǥХå���ǽ��Ȥ�����ˤϡ�WindowsXP Pro, Windows2000 �Ǥ� "Debugger users" �Ȥ������롼�פ˥桼�����°������ɬ�פ����롣WindowsXP HE �ǤϤ����������롼�פϤʤ��Τǡ������ԤȤ��ƥ������ʤ���Фʤ�ʤ���
+VC 2008 �Ǥϥ桼�����롼�פ����¤Ϥʤ��ʤä���
*2 ��������٥롦�ǥХå���ǽ��Ȥ�����ˤ� cl.exe �θƤӽФ��� -Zi ���ץ������ղä��ơ��ǥХå��������������褦�� makefile ��Ƥ���ɬ�פ����롣
+*3 �֥������ȡ�->�֥ץ������פ��鵯ư����ȡ����롼�ɥǥ��쥯�ȥ����δĶ��ѿ������ꤵ��ʤ�����������ꤹ��ˤ���ˡ�Visual Studio ���ޥ�ɥץ���ץȡפ��ơ��������ե�����Τ���ǥ��쥯�ȥ�˰�ư������������ VC 2003 �Ǥ�
++devenv *.sln /useenv ++
�Ȥ��ơ�VC 2005, 2008 express edition �Ǥ�
++vcexpress *.sln /useenv ++
�Ȥ��Ƶ�ư���ʤ���Фʤ�ʤ���
+*4 ���ȡ��뤹��ǥ��쥯�ȥ�ˤϥ桼�������ߤθ��¤���äƤ��ʤ���Фʤ�ʤ��� +�����Ϥ� bin, lib ���Υǥ��쥯�ȥ�˽�����ϡ����Υѡ��ߥå���������Ը��¤��ѹ����Ƥ���ɬ�פ����롣 +"Power users" �ޤ��� "Authenticated users" �Ȥ������롼�פ˥桼������Ͽ�������Υ��롼�פ˳����Υǥ��쥯�ȥ�ؤΡֽ��ߡס��ѹ��פθ��¤��������Τ��ɤ��� +�⤦���Ĥ���ˡ�ϡ��ֶ�ͭ�ǥ��쥯�ȥ�פΤ褦�ʡ��桼�������߸��¤���ĥǥ��쥯�ȥ�˽����Ϥȡ��뤹�뤳�ȤǤ��롣
+ +Mac OS X �� IDE �Ǥ��� Xcode.app �� mcpp �ȡ��뤷�����֤�����ʤ��Ȥ����Ȥ��Ǥ��ޤ���*1
+Xcode.app �Ϥʤ��� /usr/bin �ǤϤʤ� /Developer/usr/bin �ˤ��� gcc (g++) ��Ȥ��ޤ���/Developer �� Xcode �Υǥե���ȤΥ��ȡ���ǥ��쥯�ȥ�ˡ� +�������äơ�mcpp ��Ȥ��ˤϡ����� gcc (g++) �Ѥ� GCC-specific-build �ȡ��뤹��ɬ�פ�����ޤ��� +���Τ���ˤϼ��Τ褦�ˤ��ޤ���${mcpp_dir} �� mcpp �Υ������Τ���ǥ��쥯�ȥ�ˡ�
++export PATH=/Developer/usr/bin:$PATH +configure ${mcpp_dir}/configure --enable-replace-cpp +make +sudo make install ++
PATH ������ʳ��� /usr/bin �Υ���ѥ���˥��ȡ��뤹�����Ʊ���ʤΤǡ�����������ѥ���ؤΥ��ȡ���� universal binary �ȡ��뤹����ˡ�ʤɤˤĤ��Ƥϡ�INSTALL-jp �Ƥ���������
+�������� mcpp �ȡ��뤷�Ƥ����С����Ȥ� mcpp �Τ�������̤�����Ϥ����� Xcode.app ���Ȥ��ޤ��� +Xcode.app �� Apple-GCC ��ͭ�� *.hmap �Ȥ���̾���� "header map file" �ʤ��Τ��������ޤ���������� mcpp �ǽ�������ޤ��� +��������mcpp �� precompiled header �ν����Ϥ��ʤ��Τǡ�#include *.pch ���̾�Υإå��ե�����Ȥ����ɤ߹��ޤ�ޤ��� +�ޤ���mcpp �� Objective-C, Objective-C++ �ν����Ϥ��ʤ��Τǡ�*.m, *.mm �Υ������ե�����Υץ�ץ������� mcpp ���̤餺�� cc1obj, cc1objplus ��ľ�ܡ��Ϥ���ޤ���
+mcpp �ȼ��Υ��ץ�����Ȥ����ϡ�Xcode.app �β��̥ȥåפΥ�˥塼�С��Ρ֥ץ��������ȡפ���֥ץ���������������Խ��פ�����ǥ���å����������Ǹ����ץ��������ȥ��ǥ����Υ�����ɥ��ǡ֥ӥ�ɡץڥ��������ǡ��֤���¾�� C �ե饰�פι��ܤ��Խ����ޤ��� +���ץ����ϼ�����Τ褦�� -Wp, ��³���ƥ���ޤǶ��ڤ�ʤ�����ꤷ�ޤ���
++-Wp,-23,-W3 ++
��:
+*1 �����Ǽ��夲��Τ� Mac OS X Leopard / Xcode 3.0 �Ǥ��롣
+mcpp �ˤϤ����Ĥ��θ�ͭ�γ�ĥ��ǽ������ޤ����ޤ����ƽ�������°�Υץ�ץ����å��ˤϤ��줾��γ�ĥ��ǽ������ޤ����������ΰ����� mcpp �ǤϻȤ��ޤ������ǤϤ���������ĥ��ǽ�ȸߴ�����������������ޤ���
+�ʤ���Standard �⡼�ɤǤ� #pragma �Ԥϸ�§�Ȥ��Ƥ��Τޤ��Ϥ��ޤ���mcpp ���Ȥ����������ΤˤĤ��Ƥ�Ʊ�ͤǤ���Ʊ�� #pragma ������ѥ������ΤˤȤäƤ��̣����IJ�ǽ�������뤿��Ǥ���
+��������#pragma MCPP �ǻϤޤ�Ԥ� mcpp ���ѤΤ�ΤʤΤǽ��Ϥ��ޤ���GCC �ǤǤϡ�#pragma GCC �� poison, dependency, system_header �Τɤ줫��³���Ԥ���Ϥ��ޤ��ޤ���#pragma once, #pragma push_macro, #pragma pop_macro �⥳��ѥ������ΤˤȤäƤ�̵�ѤʤΤǽ��Ϥ��ޤ���
+¾���ǡ�#pragma GCC visibility * �ϥ���ѥ���ȥ�Τ���Τ�ΤʤΤǡ����Ϥ��ޤ���*1
EXPAND_PRAGMA == TRUE �ǥ���ѥ��뤵�줿 mcpp �Ǥ� #pragma �Ԥΰ����ϥޥ���Ÿ�����оݤȤʤ�ޤ��ʼºݤˤ� EXPAND_PRAGMA == TRUE �� Visual C, Borland C �Ǥ����Ǥ���ˡ���������#pragma �� STDC, MCPP, GCC �Τɤ줫��³���Ԥ�Ÿ�����ޤ���
+#pragma sub-directive �� implementation-defined �Ǥ��������Τ���Ʊ��̾���� sub-directive �������Ϥˤ�äưۤʤ��̣����Ķ��줬����ޤ���̾���ξ��ͤ��빩�פ�ɬ�פǤ����ޤ���EXPAND_PRAGMA == TRUE �ξ��ϡ�#pragma sub-directive ��̾�����Ȥ��ޥ���Ÿ������ƤϺ���Τǡ��桼����̾�����֤ȽŤʤ�ʤ��褦�ˤ�����Ȥߤ�ɬ�פǤ���mcpp ��ͭ�� sub-directive �� #pragma MCPP �ǻϤޤ�ޥ���Ÿ������ʤ��ΤϤ��Τ���Ǥ���C99 �ǵ��ꤵ�줿 #pragma STDC �� GCC 3 �� #pragma GCC ����ˡ��Τ����줿��ΤǤ���
+��������#pragma once ��¿���ν����Ϥ˼��������̾�������ͤ��붲��Ϥʤ��ʤäƤ���Τǡ�����̾���Τޤ������Ƥ��ޤ����ޤ���#pragma __setlocale �ϥ���ѥ������Τ��Ф��Ƥ�ɬ�פʤΤ� MCPP �Ȥ���̾�����դ�����"__" ����Ƭ���դ��ƥ桼����̾�����֤ȽŤʤ�ʤ��褦�ˤ��Ƥ��ޤ���
��
+*1 mcpp �� GCC-specific-build �Ǥϡ�#pragma GCC �ǻϤޤ� pragma �Τ��� system_header �������ݡ��Ȥ��Ƥ��롣poison, dependency �ϥ��ݡ��Ȥ��ʤ���
+#pragma MCPP put_defines, #pragma MCPP preprocess, #pragma MCPP preprocessed �� Standard �⡼�ɤΤ�Τǡ�#put_defines, #preprocess, #preprocessed �� pre-Standard �⡼�ɤΤ�ΤǤ����ʲ��Ǥ� #pragma ����ˤȤä��������ޤ���
+#pragma MCPP put_defines �ǥ��쥯�ƥ��֤˽в� mcpp �ϡ����λ������������Ƥ��뤹�٤ƤΥޥ����� #define �Ԥη��ǽ��Ϥ��ޤ����������#undef ���줿��ΤϽФƤ��ޤ���__STDC__ ���� #define, #undef ���оݤˤǤ��ʤ���Τϡ���� #define �Ԥη���Ȥäơ������������ȥޡ����ǰϤ�ǽ��Ϥ���ޤ���__FILE__, __LINE__ �ϥޥ����ƤӽФ�����ưŪ�����������ü�ʥޥ����ʤΤǡ������ǽ��Ϥ�����ִ��ꥹ�Ȥ�̵��̣�ʤ�ΤǤ���ˡ�
+pre-Standard �⡼�ɤ���� POSTSTD �⡼�ɤǤϡ�function-like �ޥ�������Υѥ���̾�ϵ������ޤ������Ǥ��Υǥ��쥯�ƥ��֤Ǥϡ��ѥ���̾���裱�ѥ��������˵���Ū�� a, b, c, ... �Ȥ���̾����ɽ�����ޤ���27 ���ܰʹߤΥѥ����ˤ� a1, b1, c1, ..., a2, b2, c2, ... �Ȥ���̾����Ȥ��ޤ���
mcpp �����ϥե��������ϥե��������ꤻ���˵�ư���ơ������ܡ��ɤ��餤���ʤ�
++#pragma MCPP put_defines ++
���Ǥ�����ȡ���������ޥ����٤��Τ뤳�Ȥ��Ǥ��ޤ������줾��Υޥ�������Τ��륽�����ե�����̾�ȹ��ֹ��ɽ�����륳���Ȥ���Ϥ���ޤ���-S1, -N ���Υ��ץ������դ��Ƶ�ư����ȡ����줾���������ޥ�������äƤ��뤳�Ȥ��狼��ޤ���
+#pragma MCPP preprocess �Ȥ����ǥ��쥯�ƥ��֤˽в� mcpp �ϡ�
++#pragma MCPP preprocessed ++
�Ȥ����Ԥ���Ϥ��ޤ�������ϡ����Υ������ե�����ϥץ�ץ������ѤߤǤ��뤳�Ȥ���ΤǤ���
+#pragma MCPP preprocessed �Ȥ����ǥ��쥯�ƥ��֤˽в� mcpp �ϡ����Υ������ե������ mcpp �ˤ�äƥץ�ץ������ѤߤǤ����Ƚ�Ǥ��ơ�#define �Ԥ��ФƤ���ޤǤ����ϤΤޤ��Ϥ˥��ԡ����ޤ��������ơ�#define �Ԥ��ФƤ���ȡ����ȤϤ��٤� #define �ԤǤ����Ƚ�Ǥ��ơ��ޥ�����������ޤ�����������ˤ��륽�����ե�����̾�ȹ��ֹ�ξ��������ޤ���*1, *2
+#pragma MCPP preprocessed ��ͭ���ϰϤϤ��Υǥ��쥯�ƥ��֤Τ��륽�����ե�����Τ��ιʹߤ����Ǥ������Υ������ե����뤬 #include ���줿��ΤǤ�����ϡ�include ���������̾�Υץ�ץ����������ޤ���
��:
+*1 �ºݤν����Ϥ⤦����ʣ���Ǥ��롣#pragma MCPP preprocessed ����������ϹԤ���Ⱦ�Τޤ��Ϥ˥��ԡ����뤬��ɸ���������ޥ����� #define �Ԥ������ȥޡ����˰Ϥޤ�Ƥ���Τǡ����ιԤϼΤƤ롣�ޤ�������ν������Ѥ��ǤǤ� #line �ԤϽ����ϤΥ���ѥ������Τ���������������Ѵ����ƽ��Ϥ��롣
+*2 �������äơ�pre-preprocess ���Ƥ�ޥ�������ξ��ξ���ϼ����ʤ���
+ +�嵭�Υǥ��쥯�ƥ��֤����Ѥ���ȡ��إå��ե�����Ρ֥ץ�ץ�ץ������פ뤳�Ȥ��Ǥ��ޤ����֥ץ�ץ�ץ������פƤ����ȡ����֤Υץ�ץ��������֤����ʤ�û�̤���ޤ���������ˡ�ϡ��嵭�λ��ͤǤ��Ǥˤ狼�ä����Ȼפ��ޤ�����ǰ�Τ���� mcpp ���ȤΥ���������ˤȤä��������ޤ���
+mcpp �Υ������ˤϣ��ܤ� *.c �ե����뤬���ꡢ���Τ����Σ��ܤϤɤ�� "system.H" �� "internal.H" �� include ���Ƥ��ޤ��������ơ�¾�Υإå��� include ���Ƥ��ޤ���ä����Τ˸����ȡ��������ǤϤ����ʤäƤ��ޤ���
++#if PREPROCESSED +#include "mcpp.H" +#else +#include "system.H" +#include "internal.H" +#endif ++
�����ơ�system.H �� noconfig.H �ޤ��� configed.H �Ȥ����Ĥ���ɸ��إå��� include ���Ƥ��ޤ���mcpp.H �ϻ�����륽�����ˤϤ���ޤ����줬�����줫���������� "pre-pre-processed" header �ʤΤǤ���
+mcpp.H ����������ˤϡʤ������ noconfig.H �������꤬����Ǥ���ˡ�
++mcpp > mcpp.H ++
�Ȥ��� mcpp ��ư���ޤ���GCC ���Ǥϡ�-b ���ץ������դ���ˡ�
+�����ơ������ܡ��ɤ���
+#pragma MCPP preprocess +#include "system.H" +#include "internal.H" +#pragma MCPP put_defines ++
���Ǥ����ߡ�end-of-file �����Ϥ��� mcpp ��λ���ޤ���
+����� mcpp.H ���Ǥ�������ޤ���������� system.H, internal.H ��ץ�ץ�����������Τ������� #define �Ԥν�����դ��ä�����ΤǤ�������� include ����С�system.H, internal.H �� include �����ΤȤޤä���Ʊ�����̤����뤳�Ȥ��Ǥ��ޤ��������ơ������ɸ��إå���ޤี�Υإå��ե���������פο�ʬ�Σ��Υ������ˤʤäƤ��ޤ���#if �ȥ����Ȥ��ä��Ƥ��뤫��Ǥ���������ܤ� *.c �ե������ include ����Τϡ�system.H, internal.H �� include ����Τ���٤ơ��Ϥ뤫��û�����֤Ǥ��ߤޤ���#pragma MCPP preprocess ��Ȥ����ȤǤ���˻��֤�û�̤���ޤ���
+���֤Υ���ѥ���Ǥ� -DPREPROCESSED=1 �Ȥ������ץ������դ��ޤ���
+���μ��ϲ����Υե�����˽Ƥ����ơ�makefile �Ǥ���Ȥ���Τ��ɤ��Ǥ��礦��mcpp �Υ��������դ��� makefile �� preproc.c �ˤϡ����줬�Ƥ���Τǡ�������Ƥ���������
+Visual C, Borland C, LCC-Win32 �Τ褦�ʣ��ѥ�������ѥ���Ǥ���Ω�����ץ�ץ����å��λȤ�ƻ�����¤���ޤ��������ξ��Ǥ⤳�ε�ǽ��ͭ�ѤǤ���
���Υإå��ե������ pre-preprocess �ε�ǽ�ϡ�GCC / cpp �� -dD ���ץ����ε�ǽ������ΤǤ���������������������äƤ��ޤ���
+#pragma once �� Standard �⡼�ɤǻȤ��ޤ���
+GCC, Visual C, LCC-Win32 ����� Wave �Ȥ���ñ�Υץ�ץ����å��Ǥ� #pragma once �ϻȤ��ޤ���
+�إå��ե���������롼�ɤ������ʤ����˻Ȥ��ޤ����إå��ե���������
+#pragma once ++
�ȽƤ����ȡ����Υե�����롼�ɤ��� #include �Ԥ�����ФƤ��Ƥ⡢�ǽ�Σ������롼�ɤ��ޤ���
+�̾�ϡ���������°��ɸ��إå��Ǥ�
++#ifndef __STDIO_H +#define __STDIO_H +/* stdio.h ����� */ +#endif ++
������Ǥ�����¿��������ɤ��Ǥ��ޤ���������Ȼ�����ǽ�Ǥ������������ޥ�����Ȥ���ˡ�Ǥϥإå��ե�������ɤޤʤ��Ǥ��ޤ����ȤϤǤ��ޤ���ʥ����åפ�����ʬ�Ǥ⡢#if, #endif �����ФƤ���Τ�ƻ뤹�뤿��ˡ������ɤޤʤ���Фʤ�ʤ�����Ƭ�� # ���ǥ��쥯�ƥ��ֹԡ�# �� preprocessing directive ��³���ԡˤλؼ��Ǥ��뤫�ɤ�����Τ���뤿��ˤϥ����Ȥ�������ʤ���Фʤ�ʤ��������Τ���ˤ�ʸ�����ƥ���Ƚ�Ǥ��ʤ���Фʤ�ʤ����ǡ���ɡ������ɤ�� tokenization ����Ⱦ�ޤǤ��ʤ���Фʤ�ʤ��ΤǤ���ˡ�
+#pragma once �ϡ��ե�����ؤΥ������������⤷�ʤ��Ǥ��ޤ���ΤǤ������η�̡�¿�� include ��������ν���®�٤����®���ʤ�ޤ���
Header name ��Ʊ���Ǥ��뤫�ɤ����ϡ������������ѥ��Υǥ��쥯�ȥ���ʬ��ޤ��ʸ������Ӥ�Ƚ�Ǥ��ޤ�����������Windows �Ǥ���ʸ������ʸ���϶��̤��ޤ��������äơ�"/DIR1/header.h" �� "/DIR2/header.h" ���̤Τ�ΤȤ��ư�����"header.h" �� "HEADER.H" �Ȥ� Windows �Ǥ�Ʊ����Ρ�UNIX �ϤǤ��̤Τ�ΤȤ��ư����ޤ����ǥ��쥯�ȥ�����Хѥ����Ѵ����Ƶ������ޤ���"foo/../" �Ȥ��ä���Ĺ����ʬ�Ϻ���������������ޤ���UNIX �ϤǤ� symbolic link �ϥ������Ѵ����ޤ����������äơ�Ʊ���ե�����Ǥ��뤫�ɤ����ϳμ¤�Ƚ�ꤵ��ޤ���*1, *2, *3
+���� #pragma once �� GCC V.1.* / cpp �� #pragma once �Υ����ǥ�����Ѥ�����ΤǤ���GCC V.2.*, V.3.* �Ǥ⤳�ε�ǽ�ϻĤäƤ��ޤ�����obsolete �ʤ�ΤȤ���Ƥ��ޤ���#pragma once ���ʤ��Ƥ⡢�إå��ե���������Τ� #ifndef _MACRO, #define _MACRO, #endif �ǰϤޤ�Ƥ���С�cpp ��������������� include ���ʤ��Ȥ������ͤ��ѹ�����Ƥ��ޤ���
+��������GCC V.2, V.3 �λ��ͤϡ�GCC �λ��Ѥ�����Ȥ��ʤ����Τν����ϤʤɤǤϻȤ��ʤ����Ȥ�����ޤ���ɸ��إå��ν�������äƤ��뤫��Ǥ����ޤ��������� GCC V.2, V.3 �λ��ͤΤۤ������ݤǤ��������ǡ�mcpp �Ǥ� #pragma once ������������Ƥ��ޤ���
¾�Υץ�ץ����å��Ǥ�Ʊ���إå��ե������Ȥ����Ϥ�����������櫓�ˤϤ椭�ޤ��ޥ�����Ȥ���ˡ��ʻ�Ѥ��ơ��إå��ե�����Τ褦����Ǥ����Ǥ����Τ��ɤ��Ǥ��礦��
++#ifndef __STDIO_H +#define __STDIO_H +#pragma once +/* stdio.h ����� */ +#endif ++
��������<assert.h> �ˤ� #pragma once �ϽƤϤ����ޤ���ʤ�����ͳ�� cpp-test.html#5.1.2 ���ȡˡ�C++ �� <cassert>, <cassert.h> ����Ʊ�ͤǤ���
+�⤦��Ĥ�����ϡ�GCC / GLIBC �κǶ�Υ����ƥ�Ǥ� <stddef.h> �Τ褦�ˡ�¾�� system header ���鷫���֤� #include �����إå��ե����뤬���뤳�ȤǤ���¿���� system header �� __need_NULL, __need_size_t, __need_ptrdiff_t, etc. �Υޥ�����������Ƥ� <stddef.h> �� #include ���ޤ������Τ��Ӥˡ�<stddef.h> �Ǥ� NULL, size_t, ptrdiff_t, etc. ���������Ƥ椭�ޤ���<errno.h>, <signal.h> ����Ʊ�ͤǤ���<stdio.h> �Ǥ����⡢¾�� system header �� __need_FILE, __need___FILE ���Υޥ�����������Ƥ� #include <stdio.h> �������Τ��Ӥ� FILE �����������Ƥ椯��礬����ޤ��������Υե�����ˤ� #pragma once �Ͻ���櫓�ˤϤ����ޤ���*4
+��:
+*1 ���������줿��̤� #pragma MCPP debug path �Ǹ��뤳�Ȥ��Ǥ��롣3.5.1 ���ȡ�
+#pragma MCPP put_defines ����ǥ�å������Υե�����̾��ɽ���Ǥ⡢���줬�Ȥ��롣
+��������#line �Ԥ� path-list �ϰ��̤ˤ�����������Ƥ���櫓�ǤϤʤ���include directory �����������������֤�ɽ������롣
+��������-K ���ץ����Ǥ�����������ɽ������롣
+���Υ⡼�ɤ����Ѥ���¾�Υġ���ν������Ѱդˤ��뤿��Ǥ��롣
*2 CygWIN �Ǥ� /bin �� /usr/bin��/lib �� /usr/lib �Ϥ��줾��Ʊ���ǥ��쥯�ȥ�ǡ�/ �� Windows ����㤨�� C:/dir/cygwin ���Ȥ���� /cygdrive/c/dir/cygwin �⤽���Ʊ���ǥ��쥯�ȥ�Ǥ��뤬��mcpp �ǤϤ����Ϥ��٤�Ʊ���ǥ��쥯�ȥ�Ȥ��ư�����path-list �Ϥ��٤� /cygdrive/c/dir/cygwin/dir-list/file �η����Ѵ����롣
+*3 MinGW �Ǥ� / �� /usr �Ȥϼºݤˤ�Ʊ���ǥ��쥯�ȥ�ǡ�/ �� Windows ��� C:/dir/msys/1.0 ���Ȥ���� /c/dir/msys/1.0 �⤽���Ʊ���ǥ��쥯�ȥ�ǡ�/mingw �� C:/dir/mingw ���Ȥ���� /c/dir/mingw �⤽���Ʊ���ǥ��쥯�ȥ�Ǥ��롣mcpp �ǤϤ����Ϥ��줾��Ʊ���ǥ��쥯�ȥ�Ȥ��ư�����path-list �Ϥ��٤� c:/dir/msys/1.0/dir-list/file, c:/dir/mingw/dir-list/file �η����Ѵ����롣
+*4 ���ʤ��Ȥ� Linux / GCC 2.9x, 3.*, 4.* / glibc 2.1, 2.2, 2.3 �ǤϤ����ʤäƤ��롣FreeBSD 4, 5, 6 �Ǥ� glibc �ϻȤ��Ƥ��ʤ��Τǡ���������ʣ���ʥ����ƥ�إå��ˤϤʤäƤ��ʤ���
+ +��������Τϥإå��ե�����ο������ʤ�����礷�����ȤǤϤ���ޤ�������¿���ȼ�ǤϤ��äȤ�������Ȥˤʤ�ޤ��������ǡ������ưŪ�˽����ñ�ʥġ�����Ѱդ��ޤ�����
+tool/ins_once.c �ϸŤ� GCC �Υ����ƥ��ѤǤ���Borland C 5.5 �Ǥ�ɸ��إå��ν�����Ʊ���롼��˽��äƤ���Τǡ������Ȥ����Ȥ��Ǥ��ޤ���Glibc 2 �Τ褦�ʥ����ƥ�ǤϾ嵭�Τ褦���㳰��¿���Τǡ��Ȥ�ʤ��ۤ���̵��Ǥ���
+�����������줬�Ȥ��륷���ƥ�Ǥ⡢�إå��ե��������ˤ� GCC �δ����˽��äƤ��ʤ���Τ������ޤ������������إå��Ǥ� GCC �Ρ������ɤ߹��ޤʤ��Ȥ�����ǽ��ư��ޤ���
+�����ǡ�ins_once.c ��ѥ��뤷�ơ�UNIX �ʤ� /usr/include, /usr/local/include ���Υǥ��쥯�ȥ�ǡ��ޤ�
+chmod -R u+w * ++
�Ȥ�����ǡ�
++ins_once -t *.h */*.h */*/*.h ++
�Ȥ��ޤ�����������ȡ�#ifndef �ޤ��� #if !defined �ǻϤޤ�ʤ��إå��ե����뤬��𤵤�ޤ��������Υإå����ǽ������Ƥ������������줫�顢
++ins_once *.h */*.h */*/*.h ++
�Ȥ���ȡ��ƥإå��ե�����κǽ�˽и����� #directive �� #ifndef �ޤ��� #if !defined �Ǥ��ä����ϡ�����ľ��� #pragma once �Ԥ����ޤ�ޤ����ʤ��줬�Ǥ���Τ� root ������Υ桼�������ΤϤ��������ɬ�פʤ� chmod -R u-w * �Ȥ��ơ�access permission ���ᤷ�Ƥ����ˡ�
+ins_once �ˤϼ��Τ褦�ʥ��ץ������ޤ��������ƥ�˹�碌��Ŭ���ʥ��ץ��������Ƥ���������
+ins_once ��ʣ����¹Ԥ��Ƥ�Ʊ���ե�����˥��֤äƽ��ळ�ȤϤʤ��褦�ˡ���ñ�ʥ����å��Ϥ��Ƥ��ޤ�������������̩�ʤ�ΤǤϤ���ޤ���
+���� ins_once �ϴ֤˹�碌�ʤΤǡ�tokenization �ϤۤȤ�ɤ�äƤ��ޤ���FreeBSD 2.0, 2.2.7, Borland C 5.5 �γƥإå��ե�����Ǥϴ����̤��ư��ޤ��������ü�ʥإå��ե����뤬����ȸ�ư��뤫�⤷��ޤ���ins_once ��ɬ���Хå����åפ�ȤäƤ���¹Ԥ��Ƥ���������
+�磻��ɥ����ɤ� shell ��Ÿ�������Ƥ��������ʥХåե��������С��ե���������ϡ�����ʬ���Ƽ¹Ԥ���ˡ�
�����Υǥ��쥯�ƥ��֤� GCC �Ȥθߴ����Τ�����Ѱդ���Ƥ����ΤǤ���GCC �ˤ� #include_next, #warning �Ȥ������ʰ�ȿ�Υǥ��쥯�ƥ��֤�����ޤ������ʰ�ȿ�Ǥ����������ȤäƤ��륽������ˤ���ޤ���Glibc 2 �Υ����ƥ�Ǥϡ������ƥ�إå��ե�����ˤ����ȤäƤ����Τ�������ޤ��������� mcpp �Ǥϡ������Υ�������ѥ���Ǥ���褦�ˤ��뤿�ᡢGCC �Ѥ˸¤ä� #include_next, #warning ��������Ƥ��ޤ�����������Standard �⡼�ɤǤϥ������˥��оݤȤʤ�ޤ���Standard �⡼�ɤǤ� #pragma MCPP warning ��������Ƥ��ޤ�������� GCC �Ѥ˸¤�ޤ���
++#include_next <header.h> ++
�� include directory ��������ݤˡ����� include ���Υե�����Τ���ǥ��쥯�ȥ���åפ��ơ����μ��Υ�������Υǥ��쥯�ȥ꤫�饵������Ϥ�ޤ���
+CygWIN, MinGW �Ǥϡ��إå�̾����ʸ������ʸ���ζ��̤�̵�뤷�ޤ���
++#pragma MCPP warning any message + +#warning any message ++
�Ǥϡ�any message �Τޤ� warning �Ȥ���ɸ�२�顼���Ϥ˽��Ϥ��ޤ���������������� #error �Ȱ�äƥ��顼�ˤϤʤ�ޤ���
+������ Visual C �� mcpp ��ܿ��������˼��������Ĥ��Ǥ�¾�ν����ϤǤ�Ȥ���褦�ˤ�����ΤǤ���
+#pragma MCPP push_macro( "MACRO"), #pragma MCPP pop_macro( "MACRO") �ϡ����λ����Ǥ� MACRO �Υޥ���������å��� "push" ������ "pop" �����ꤹ���ΤǤ���
+Visual C �Ǥ� #pragma push_macro( "MACRO"), #pragma pop_macro( "MACRO") ��Ȥ��ޤ���
+push_macro �ǤϤ��Υޥ�������������졢pop_macro �Ǹ����ᤵ��ޤ�����push ���Ƥ⤽�Υޥ�������Ϥޤ�ͭ���Ǥ��������̵���ˤ��뤿��ˤ� #undef ���뤫���ޤ����̤�����Ǻ��������ɬ�פ�����ޤ���push_macro �Ǥ�Ʊ��̾���Υޥ����Ťˤ� push ���뤳�Ȥ��Ǥ��ޤ���
#pragma __setlocale( "<encoding>") �� multi-byte character encoding �� <encoding> ���ѹ����ޤ���__setlocale �ΰ�����ʸ�����ƥ��Ǥʤ���Фʤ�ޤ���<encoding> �ˤĤ��Ƥ� 2.8 �Ƥ��������������Ȥ��ȡ����Ĥ� translation unit ����Ǥ�ʣ���� encoding ��Ȥ����Ȥ��Ǥ��ޤ���
+Visual C++ �Ǥ� #pragma setlocale �Ǥ��ꡢ#pragma __setlocale �ϻȤ��ޤ���Encoding �λ���� mcpp �����Ǥʤ�������ѥ���ˤ�������ɬ�פ�����ޤ���������ѥ��餬ǧ���Ǥ���Τ� #pragma setlocale ����������Ǥ���
#pragma __setlocale ��ǧ���Ǥ��륳��ѥ������ΤϤ��ޤΤȤ���������ޤ���
+#pragma MCPP debug, #pragma MCPP end_debug �� Standard �⡼�ɤΤ�ΤǤ���pre-Standard �⡼�ɤǤ� #debug, #end_debug �Ȥʤ�ޤ���
+#pragma MCPP debug <args> �ǥ��쥯�ƥ��֤ϥ��������Ǥ�դιԤ˽��Ȥ��Ǥ��ޤ���<args> �ǥǥХå�����μ������ꤷ�ޤ������Ĥ� #pragma MCPP debug �ǥ��쥯�ƥ��֤�ʣ���� <arg> ����ꤹ�뤳�Ȥ��Ǥ��ޤ���ɬ�����İʾ�� <arg> ���꤬ɬ�פǤ������Υǥ��쥯�ƥ��֤�����ȡ���������ǥХå�����ν��Ϥ��Ϥޤ�ޤ��������ơ�#pragma MCPP end_debug <args> �ǡ�<args> �ΥǥХå�������Ϥ��������ޤ���#pragma MCPP end_debug �Ǥϡ�<args> ���ά���뤳�Ȥ��Ǥ��ޤ������ξ��ϡ����ꤵ��Ƥ������٤ƤΥǥХå�������Ϥ��������ޤ���mcpp �ǥ��ݡ��Ȥ��ʤ������� <args> �ˤ��ä����ϡ��������˥�Ф��ޤ������������ˤ��ä�������������ͭ���Ǥ���
+�ǥХå�����Ϥ��٤ơ��ץ�ץ�����������ν��Ϥ�Ʊ���ѥ��˽��Ϥ���ޤ������������ν��Ϥ�Ʊ�������뤿��Ǥ����������äơ����Υǥ��쥯�ƥ��֤�������̾�ϥ���ѥ���Ǥ��ޤ���
+��������#pragma MCPP debug macro_call �ǤϾ���ϥ����Ȥ�������ǽ��Ϥ����Τǡ������ƥץ�ץ��������ƥ���ѥ��뤹�뤳�Ȥ��Ǥ��ޤ���
�ץ�ץ������η�̤˵��䤬�����硢������ʬ��
++#pragma MCPP debug token expand +/* �ǥХå���������ʬ */ +#pragma MCPP end_debug ++
�Ȥ����դ��ˤϤ���ǻȤ��ޤ��� +
+����� mcpp ���ȤΥǥХå��ѤΤ�ΤǤ������ץ�ץ������β�����ȥ졼�����������˻Ȥ��ޤ����������Ū����Ū�ʤΤǡ��������ʤ�������Ǥ��ʤ��Ȥ����⤢�ꡢ�������뤵���⤢��ޤ��������ޤƤ���������
+<arg> �μ���ϼ����̤�Ǥ���
++++
++ path include �ե�����Υ������ѥ���ɽ������ + token token �Ĥ����ڤ�ʬ���ơ����μ����ɽ������ + expand �ޥ����ƤӽФ���Ÿ��������ȥ졼������ + macro_call �ޥ����������ӥޥ����ƤӽФ��˺ݤ��ơ����Υ�������ιԤȥ������֤��Ȥ�������ǽ��Ϥ��� + if #if (#elif, #ifdef, #ifndef) �ο�����ɽ������ + expression #if ����ɾ����ȥ졼������ + getc �ץ�ץ������� 1 byte ���ĥȥ졼������ + memory mcpp �λȤäƤ���ҡ��ץ���ξ�����ɽ������
���Υǥ��쥯�ƥ��֤˽в� mcpp �ϡ��ޤ����ꤵ��Ƥ��� include �ǥ��쥯�ȥ�Υ������ѥ���ͥ���̤ι⤤��Τ�����ɽ�����ޤ��ʤ��������ǽ�˥���������륫���ȥǥ��쥯�ȥꤪ��ӥ������Υǥ��쥯�ȥ�Ͼ�ά�ˡ�
+����ˡ�#include �Ԥ�����ȡ����Υإå��ե������ include ���뤿��� mcpp ���ºݤ˥����������ǥ��쥯�ȥ꤬�ʥ����ȥǥ��쥯�ȥ�����ޤ�ơˤ��٤�ɽ������ޤ���
+#pragma once �Τ���إå��ե��������� #include �������ϡ����λݤ�ɽ�����ޤ���
+�ޤ���mcpp �� path-list ��� "foo/../" �Ȥ��ä���Ĺ����ʬ�����������������ޤ��������η�̡����� path-list �Ȱ�ä� path-list �Ȥʤä����ϡ����λݤ�ɽ�����ޤ���
+UNIX �ϤΥ����ƥ�Ǥ� mcpp �� symbolic link �� link ����Ѵ����ޤ��������ξ��⤽�λݤ�ɽ�����ޤ���
�ޤ����ɤ߹�����������Ԥ�ɽ��������ǡ�mcpp �� token ���ɤि�Ӥˡ����� token �ȼ����ɽ�����ޤ���Token �Ȥ����Τ˸����� preprocessing-token (pp-token) �Τ��ȤǤ������������ɤ���Ф���ǤϤʤ���mcpp ���ޥ���Ÿ���ʤɤ�����Ū���ɤ��֤� pp-token �⡢���ΤĤɡʷ����֤��ơ�ɽ������ޤ���
+��������1 byte �� pp-token �Τ������Τ�Τ�ɽ������ޤ�����ϥץ������ΤĤ����ˤ���ΤǤ���
+Pp-token �μ���ϼ����̤�Ǥ��� +
++++
++ (NAM) identifier + (NUM) preprocessing-number + (OPE) operator or punctuator + (STR) string literal + (WSTR) wide string literal + (CHR) character constant + (WCHR) wide character constant + (SPE) $, @ �����ü�� pp-token + (SEP) token separator (white space)
�����Τ��� (SEP) �ϲ��ԥ����ɰʳ����̾��ɽ������ޤ��� +���ԥ��������Υ���ȥ����륳���ɤ� <^J>, <^M> ����ɽ������ޤ���
+ +�ޥ����ƤӽФ���Ÿ��������ȥ졼�����ޤ���
+Standard �⡼�ɤ� #pragma MCPP debug �Ǥϼ����̤�Ǥ���
+�ޥ����ƤӽФ�������ȡ��ޤ����Υޥ����������ɽ������ޤ�������ˡ��������ɤ߹��ޤ졢�ִ��ꥹ����Υѥ������֤�������졢�����������褦���������ɽ������ޤ����ޥ���������ͥ��Ȥ���Ƥ���С����줬�缡�����������Ÿ������Ƥ����ޤ���������˥ޥ���������С����β������Ƶ�Ū�ˡʥѥ����Ȥ��ִ������ˡ˥ȥ졼������ޤ���
ɽ���� mcpp ���ȤΤ����Ĥ��δؿ��ؤν�����Τ��Ӥˡ����δؿ�̾�ȤȤ�˹Ԥ��ޤ��������δؿ��ϼ��Τ褦������롼����Ǥ���Standard �⡼�ɤΥ������Ȥ���ȡ�����ˤ褯����Ǥ��ޤ���
++++
++ expand_macro �ޥ���Ÿ����������롼���� + replace �ޥ�����٥�Ÿ������ + collect_args ������� + prescan �ִ��ꥹ�Ȥ��������� #, ## �黻�Ҥν����� + substitute �ѥ�����������ִ����� + rescan �ִ��ꥹ�Ȥ����������
�����Τ�����expand_macro �ʳ��ϸߤ��˴��ܺƵ��δط��ˤ���ޤ���
+replace, collect_args �Ǥϡ�mcpp ������Ū�˥����å����Ѥ�Ǥ���Ÿ������Υǡ�����ɽ������ޤ��������Υǡ����Ǥϡ�mcpp ������Ū�ʥ����ɤ����Τ褦�ʵ����ɽ������ޤ���
++++
++ <n> n ���ܤΥѥ��� + <TSEP> pp-token ����ڤ뤿��� mcpp ���������� token separator + <MAGIC> Ʊ̾�ޥ����κ��ִ���ػߤ��륳���� + <RT_END> �ִ��ꥹ�Ȥν����������� + <SRC> Identifier ���������ե����뤫������ޤ줿���Ȥ�������
���Τ��� <SRC> �� STD �⡼�ɤǤ����Ȥ�졢POSTSTD �⡼�ɤǤ� COMPAT �⡼�ɤǤ�Ȥ��ޤ���
+#pragma MCPP debug token ����ꤷ���ۤ������狼��䤹���Ǥ��礦��
+#pragma MCPP debug macro_call �ޤ��� -K ���ץ�������ꤷ�����ϡ�macro notification �������Ȥ˽��ޤ�ƽ��Ϥ���ޤ�����replace() �ʲ��Υ롼����ǤϤޤ������ȤϽ��ޤ줺�������फ�� magic character������Ū�ʥ����ɡˤ����ޤ줿�������줿�ꤷ�ޤ��� +����ϼ��Τ褦��ɽ������ޤ���
++++
++ <MACm> ���ĤΥޥ����ƤӽФ�����˴ޤޤ�� m ���ܤΥޥ����θƤӽФ� + <MAC_END> ľ���� MACm �ǻϤޤ�ޥ����ƤӽФ��ν���� + <MACm:ARGn> m ���ܤΥޥ����θƤӽФ���� n ���ܤΰ��� + <ARG_END> ľ���� MACm:ARGn �ǻϤޤ�����ν����
����� -v ���ץ�������ꤷ�����ϡ�MAC_END, ARG_END �ˤĤ��ƤⳫ�ϥޡ�����Ʊ���ֹ椬 symmetrical ��ɽ������ޤ���
+pre-Standard �⡼�ɤ� #debug expand �Ǥ� Standard �⡼�ɤȤ������롼���������˰�äƤ��ޤ���������ά���ޤ���
+ +#if, #elif, #ifdef, #ifndef �ιԤ�ɽ����������ɾ�������Ǥ��뤫���Ǥ��뤫����𤷤ޤ��������åפ���� #if section ��Ǥϡ���𤵤�ޤ���
+ +#if, #elif �Ԥμ���ɾ����ܺ٤˥ȥ졼�����ޤ���
+����� DECUS cpp ���ȤΥǥХå��Ѥ˥��ꥸ�ʥ��ǰ��褢���Τǡ���ϤۤȤ�ɼ��ä��Ƥ��ޤ�������Ū�ʴؿ�̾�Ф��꤫���ѿ�̾�Ȥ����ͤޤǥ��饺��ȽФƤ��ޤ���mcpp �Υ��������ɤ��ʤ���Ǥʤ��ȡ��ѿ�������Ǥ��ޤ���
+��������ʣ���ʼ����ͤ�ɾ���ѤΥ����å����Ѥ߹ߤ�������Ƥ����褦���ϡ��������ʤ��Ƥⲿ�Ȥ�����Ǥ���Ǥ��礦��
mcpp ��� get_ch() �Ȥ������Х����ɤ߹��ߴؿ����ƤӽФ���뤿�Ӥˡ��ܺ٤ʥǡ�������Ϥ��ޤ�����������Standard �⡼�ɤǤ� pp-token �������ϡ����Σ��Х����ܤ������Υ롼����ϸƤӽФ���ޤ���
+#debug getc �Ǥ� token ��������⤳�Υ롼���ƤӽФ����Τǡ��Ȥ�Ǥ�ʤ��̤Υǡ������Ǥ��Ф���ޤ���
+
������ˤ��Ƥ⡢����ʥǡ��������Ϥ���ޤ����Ȥ�ɬ�פϤޤ�����ޤ���
+ +���Υǥ��쥯�ƥ��֤�����ȡ����λ����� mcpp ������Ū�˻ȤäƤ��� malloc(), realloc(), free() �ˤ��ҡ��ץ���ξ����������𤷤ޤ�������ϻ�κ�ä� kmmalloc ��¾�β����फ�� malloc() ��ȤäƤ���������ε�ǽ�Ǥ��� mcpp-porting.html#4.extra ���ȡˡ�¾�� malloc() �ξ��ϥ��顼�ˤϤ��ޤ���������𤷤ޤ���
+���Υǥ��쥯�ƥ��֤��������ʤ��ޤ� mcpp ����λ����ȡ����λ��˺��٥ҡ��ץ���ξ�������𤵤�ޤ���mcpp �� out of memory �ǽ�λ��������Ʊ�ͤǤ���
Macro notification mode �Ϥ��ޤ���
+���Υ⡼�ɤǤϡ��ޥ������������뤿�Ӥˡ��ޤ��ޥ�����Ÿ������뤿�Ӥˡ����Υ�������ιԤȥ������֤������Ȥ������ޤ�ƽ��Ϥ���ޤ���
+�ޥ�������������ľ��ϡ��ư����ˤĤ��Ƥ⤽�ΰ��֤���𤵤�ޤ���
+���������ޥ���Ÿ���ˤ�äƥȡ�����Ϣ�뤵�줿���ϡ�Ϣ�����Υȡ�����˴ؤ���ޥ�������ϼ����ޤ���
+����ˡ�#undef, #if (#elif, #ifdef, #ifndef), #endif �ˤĤ��Ƥ⡢��ñ�ʾ����Ϥ���ޤ���
+���Υ⡼�ɤ� -K ���ץ����ǻ��ꤹ�뤳�Ȥ�Ǥ��ޤ���
���Υ⡼�ɤ� C/C++ �� refactoring tool �Τ���˼������줿��ΤǤ��� +C/C++ �ˤϥץ�ץ������Ȥ����ե������Τ��뤳�Ȥ� refactoring tool �ˤȤäƺ�������������������ޤ��������Υ⡼�ɤ�Ȥ��Хץ�ץ�������ν��Ϥ��饽������ƹ������뤳�Ȥ��Ǥ���Τǡ�tool ��������䤹���ʤ�ޤ���*1
+#pragma MCPP debug expand �Ȼ��Ƥ��ޤ�����expand �Τۤ��ϥޥ�����Ÿ��������ȥ졼�����뤿��Τ�Τǡ��ܺ٤ʾ����Ϥ�����ΤΡ������ѥ��뤹�뤳�ȤϤǤ��ޤ��� +������Ф��ơ�macro_call �ϥ�����������Τʰ��֤������뤿��Τ�Τǡ�������Ȥ�������Τǡ����ϤΤޤƥץ�ץ��������ƥ���ѥ��뤹�뤳�Ȥ��Ǥ���Τ���ħ�Ǥ���
+��:
+*1 ���λ��ͤϼ�Ȥ��� Taras Glek ����Ƥˤ���ΤǤ��롣 +�༫�Ȥϼ��ΤȤ����� mozilla �Υ������� refactoring �˼���Ȥ�Ǥ��롣
+http://blog.mozilla.com/tglek/
+ +�㤨�С�����������Ƭ�˼��Τ褦�ʥޥ������������ȡ�
++#define NULL 0L +#define BAR(x, y) x ## y +#define BAZ(a, b) a + b ++
���Τ褦�ʥ����Ȥ����Ϥ���ޤ���
++/*mNULL 1:9-1:16*/ +/*mBAR 2:9-2:25*/ +/*mBAZ 3:9-3:24*/ ++
���Υե����ޥåȤ�
+/*m[NAME] [start line]:[start column]-[end line]:[end column]*/ +���̣���ޤ��� +�Ԥȥ����ϤȤ�� 1 ����Ϥޤ�ޤ��� +-K ���ץ�������ꤷ�����ϻ�������ޥ�������Ϥ���ޤ�������������ޥ����ˤϰ��־���Ϥ���ޤ���
+ + ++#undef BAZ ++
�Ȥ����ԤǤϡ����Τ褦�ʥ����Ȥ����Ϥ���ޤ���
++/*undef 10*//*BAZ*/ ++
/*undef [lnum]*//*[NAME]*/ �Ȥ����ե����ޥåȤǡ�[lnum] �Ϥ��ιԤι��ֹ��[NAME] �Ϥ��Υޥ���̾���ޤ���
+ +�ޥ������ƤӽФ���뤿�Ӥˡ������Ǥ��γ��ϤȽ�λ���ޡ��������Ϥ���ޤ��� +���Υޡ����Υե����ޥåȤ� HTML �˻����ͥ��Ȳ�ǽ�ʤ�Τǡ�/*<...*/ ���ޥ���Ÿ���γ��Ϥ���/*>*/ �����ν�λ���ޤ��� +�ޥ������ϤΥե����ޥåȤϥޥ�������Υե����ޥåȤ� /*m �� /*< ���Ѥ������η���Ȥ�ޤ���
+/*<[NAME] [start line]:[start column]-[end line]:[end column]*/ +�ޥ�����������Ȥ���ϡ���������ΰ����ΰ��֤��ޡ����ȡ�������Ÿ���γ��ϤȽ�λ���ޡ�������Ϥ���ޤ��� +�����ΰ��֤��ե����ޥåȤ� /*!...*/ �Ȥ������Ƥ��ޤ��� +������˥ޥ�����������ϡ��Ƶ�Ū�ˤ��Υޥ����ξ����Ϥ���ޤ��� +�����������Υޥ�������������ˤ��ä���ΤǤʤ���С����־���Ͻ��Ϥ���ޤ��� +�ɤΥޥ����β����ܤΰ����Ǥ��뤫������ˡ������� id �����η��Ǽ�����ޤ���
+[func-like-macro-name]:[nesting level]-[argument number] +����ˤ�ä� BAZ(BAZ(a,b), c) �Ȥ��ä��ͥ��Ȥ��줿Ʊ̾�Υޥ����Ȥ��ΰ�����ߤ��˶��̤��뤳�Ȥ��Ǥ��ޤ��� +�������ֹ�� 0 ����Ϥޤ�ޤ��� +�����ơ�����˼��η��ΰ��־���³���ޤ���
+[start line]:[start column]-[end line]:[end column] +�ޤ���������Ÿ���γ��Ϥ��ޡ����ϼ��η��Ǥ���
+/*<[func-like-macro-name]:[nesting level]-[argument number]*/ +������Ÿ���ν�λ���ޡ����ϥޥ���Ÿ���ν����Υޡ�����Ʊ�� /*>*/ �Ǥ���
+���ʤ�������Υ�������
++foo(NULL); +foo(BAR(some_, var)); +foo = BAZ(NULL, 2); +bar = BAZ(BAZ(a,b), c); ++
���Τ褦�ʷ�̤���Ϥ��ޤ���
++foo(/*<NULL 4:5-4:9*/0L/*>*/); +foo(/*<BAR 5:5-5:20*//*!BAR:0-0 5:9-5:14*//*!BAR:0-1 5:16-5:19*/some_var/*>*/); +foo = /*<BAZ 6:7-6:19*//*!BAZ:0-0 6:11-6:15*//*!BAZ:0-1 6:17-6:18*//*<BAZ:0-0*//*<NULL 6:11-6:15*/0L/*>*//*>*/ + /*<BAZ:0-1*/2/*>*//*>*/; +bar = /*<BAZ 7:7-7:23*//*!BAZ:0-0 7:11-7:19*//*!BAZ:0-1 7:21-7:22*//*<BAZ:0-0*//*<BAZ 7:11-7:19*//*!BAZ:1-0*//*!BAZ:1-1*//*<BAZ:1-0*/a/*>*/ + /*<BAZ:1-1*/b/*>*//*>*//*>*/ + /*<BAZ:0-1*/c/*>*//*>*/; ++
����� -v ���ץ�����ꤵ��Ƥ�����ϡ��ޥ���Ÿ���ν����Υޡ����Ǥ������Ÿ���ν�λ���ޡ����Ǥ⡢���ϥޡ����ˤ���Τ�Ʊ���ޥ���̾�Ȱ����� id �����Ϥ���ޤ��� +���ʤ�������Τ褦�ˤʤ�ޤ���
++foo(/*<NULL 4:5-4:9*/0L/*NULL>*/); +foo(/*<BAR 5:5-5:20*//*!BAR:0-0 5:9-5:14*//*!BAR:0-1 5:16-5:19*/some_var/*BAR>*/); +foo = /*<BAZ 6:7-6:19*//*!BAZ:0-0 6:11-6:15*//*!BAZ:0-1 6:17-6:18*//*<BAZ:0-0*//*<NULL 6:11-6:15*/0L/*NULL>*//*BAZ:0-0>*/ + /*<BAZ:0-1*/2/*BAZ:0-1>*//*BAZ>*/; +bar = /*<BAZ 7:7-7:23*//*!BAZ:0-0 7:11-7:19*//*!BAZ:0-1 7:21-7:22*//*<BAZ:0-0*//*<BAZ 7:11-7:19*//*!BAZ:1-0*//*!BAZ:1-1*//*<BAZ:1-0*/a/*BAZ:1-0>*/ + /*<BAZ:1-1*/b/*BAZ:1-1>*//*BAZ>*//*BAZ:0-0>*/ + /*<BAZ:0-1*/c/*BAZ:0-1>*//*BAZ>*/; ++
������Ǥ�狼��褦�ˡ��ޥ���Ÿ����λ�Υޡ��������Ÿ����λ�Υޡ����⡢���줾�줽�����ˤ���Ǹ��Ʊ���ͥ��ȥ�٥�γ��ϥޡ������б����Ƥ��ޤ��� +�������äơ�-v ���ץ�������ꤷ�ʤ��Ƥ⡢��ưŪ���б��ط���Ƚ�Ǥ��뤳�Ȥ��Ǥ��ޤ���
+ +#if (#elif, #ifdef, #ifndef) �Ԥ˴ؤ��Ƥϡ����ιԤˤ���ޥ������ξ����Ϥ���ޤ��� +�㤨�С����Υ������� bar.h �Ȥ���
++#define NULL 0L +#define BAR(x, y) x ## y +#define BAZ(a, b) a + b ++
������� foo.c �Ȥ���ȡ�
++#include "bar.h" +#ifdef BAR +#ifndef BAZ +#if 1 + BAR( 2, 3) +#endif +#else +#if 1 +#endif +#if BAZ( 1, BAR( 2, 3)) +#undef BAZ +#endif +#endif +#endif ++
foo.c �ϼ��Τ褦�ʷ�̤���Ϥ��ޤ���
++#line 1 "/dir/foo.c" +#line 1 "/dir/bar.h" +/*mNULL 1:9-1:16*/ +/*mBAR 2:9-2:25*/ +/*mBAZ 3:9-3:24*/ +#line 2 "/dir/foo.c" +/*ifdef 2*//*BAR*//*i T*/ +/*ifndef 3*//*BAZ*//*i F*/ + + +/*else 6:T*/ +/*if 7*//*i T*/ +/*endif 8*/ +/*if 9*//*BAZ*//*BAR*//*i T*/ +/*undef 10*//*BAZ*/ +#line 11 "/dir/foo.c" +/*endif 11*/ +/*endif 12*/ +/*endif 13*/ ++
���ʤ�����ޤ� /*if [lnum]*/ �Ȥ����ե����ޥåȤǡ��ǥ��쥯�ƥ���̾��³���Ƹ��ߤι��ֹ椬ɽ������ޤ��� +�����ơ����ιԤ˥ޥ���������С����줬���Ĥ��� /*[NAME]*/ �Ȥ����ե����ޥåȤ�ɽ������ޤ��� +�Ǹ�ˡ�/*i T*/ �ޤ��� /*i F*/ �ǡ����ιԤ�ɾ���� true �Ǥ��뤫 false �Ǥ��뤫�����ʤ������ #if �ǻϤޤ�֥��å�������ѥ��뤵���֥��å��������åפ����֥��å�����������ޤ��� +�Ϥ�ʸ�Ȱ�äơ��ޥ�����Ÿ����̤�ɽ������ޤ��� +#if 1 �Τ褦�˥ޥ����Τʤ��ԤˤĤ��Ƥϡ��ޥ�����ɽ������ /*[NAME]*/ ���ʤ������Ǥ���
+#elif, #ifdef, #ifndef �ˤĤ��Ƥ�Ʊ�ͤ� /*elif [lnum]*/, /*ifdef [lnum]*/, /*ifndef [lnum]*/ �ǻϤޤꡢ�ޥ������������Ƥ���� /*[NAME]*/ ��³����/*i T*/ �ޤ��� /*i F*/ �ǽ����ޤ���
+�����åפ����֥��å���Υǥ��쥯�ƥ��֤ˤĤ��Ƥϲ���ɽ������ޤ���
+ +#else �ԤǤϾ����Τ褦�ˡ�/*else [lnum]:[C]*/ �Ȥ����ե����ޥåȤǾ���ɽ������ޤ��� +[lnum] �Ϲ��ֹ桢[C] �� T �ޤ��� F �ǡ����� #else - #endif �֥��å�������ѥ��뤵���֥��å�������Ȥ⥹���åפ����֥��å������ޤ���
+#endif �ԤǤϾ����Τ褦�ˡ�/*endif [lnum]*/ �Ȥ����ե����ޥåȤǡ����ߤι��ֹ椬ɽ������ޤ��� +����Ϥ�����ޤ� #endif ���б��Ť����Ƥ��ʤ��Ǹ�� #if (#ifdef, #ifndef) ���б����ޤ���
+ + +�ʤ���macro notification mode �Ǥ� #line �ԤΥե�����̾�ν��Ϥ��ǥե���Ȥξ��Ȱ㤤��#include �Ԥλ���� full-path-list ��������������Τ����Ϥ���ޤ���3.2 ���ȡˡ� +Refactoring tool �κ������ưפˤ��뤿��Ǥ���
+#assert �� pre-Standard �⡼�ɤǤ����Ȥ��ޤ���GCC �ǤǤϼ�������ޤ���Standard C �� #error ���б����뵡ǽ�Ǥ���Standard C ��
++#if ULONG_MAX / 2 < LONG_MAX +#error Bad unsigned long handling. +#endif ++
�Ȥ���Ȥ�����
++#assert LONG_MAX <= ULONG_MAX / 2 ++
�Ƚޤ��������� #if ���Ȥ���ɾ����������non-zero�ˤǤ���в��⤻��������0�ˤǤ����
++Preprocessing assertion failed ++
�Ȥ������դ�³���Ƥ��ιԡʹ���³�ȥ����Ƚ�������ιԡˤ�ɽ�����ޤ��� +����ϥ��顼�Ȥ��ƥ�����Ȥ��ޤ�������������ߤ��ޤ���
+���� +#assert �� System V �� GCC �� #assert �Ȥϡ��ޤä����̤Τ�ΤǤ���
+#asm, #endasm �Σ��ĤΥǥ��쥯�ƥ��ֹԤǤϤ��ޤ줿�֥��å��ϥ�����֥饽�����Ȥ��ư����ޤ���pre-Standard �⡼�ɤǤ����Ȥ��ޤ���������������� Microware C / 6809 �Ѥ˽줿��ΤʤΤǡ�¾�ν����Ϥˤ�ܿ�����ˤϡ�system.c �� do_old(), do_asm(), put_asm() �˽���ɬ�פ�����ޤ���
+#asm �֥��å��ˤĤ��Ƥϡ�trigraphs ���Ѵ��� <backslash><newline> �κ���Ϥ��ޤ����������Ȥν����� token �����å���ʸ�������å��Ϥ�������Ƭ�� space �������������ޤ��ޥޥ�����Ʊ��̾�������äƤ�ޥ���Ÿ���������������ιԤΤޤ��Ϥ��ޤ�������¾�Υǥ��쥯�ƥ��ֹԤ� #asm �֥��å���Ǥϰ�̣������ޤ���
���� #asm, #endasm �� Standard C �Ǥ�ǧ����ʤ���ΤǤ����ޤ���#pragma sub-directive �ʳ��γ�ĥ�ǥ��쥯�ƥ��֤����ʳ��Ǥ���������Ф��꤫��#pragma asm, #pragma endasm ��̾�����Ѥ��Ƥ��褷�ޤ��ȸ����Τϡ�Standard C �Ǥϥ������Ϥ��٤ƣä� token sequence ������Ω�äƤ���ɬ�פ�����ޤ����ʸ�̩�˸����� preprocessing token sequence�ˡ�������֥�ץ������ϣä� token sequence �ǤϤʤ�����Ǥ���Standard C �ǥ�����֥ꥳ���ɤ�Ȥ��ˤϡ������ʸ�����ƥ��Ȥ��� token ����������ˡ��������ޤ������ơ��������������Ȥ߹��ߴؿ���ѥ������Τ˼������ơ�
++asm( + " leax _iob+13,y\n" + " pshs x\n" +); ++
�Ȥ��ä����ǸƤӽФ��ΤǤ���
+���Ĺ�������ɤ��Ȥ���ʤ��ȤϤ�äƤ����ʤ��Τǡ� +���ξ��Ϥ�����ʬ���̤δؿ��ˤ��ơ��饤�֥��ؿ�����Τ褦�ˡ��̤Υե�����ǥ�����֥�ץ�����ऽ�Τ�Τ�ơ�������֥�ѥ��ǽ���������������ƻȤ����Ȥˤʤ�ޤ�������ϵ�������¤Τ褦�˻פ��뤫�⤷��ޤ���portable �ʣåץ�������ˤϥ�����֥����ʬ�ϴ�����ʬΥ����ɬ�פ�����ޤ����顢�ष�� #asm ��Ȥ鷺���̥ե�����ǽ褦�ˤ����ۤ����ɤ��Ǥ��礦��
+����� Standard �⡼�ɤǤ����Ȥ��ޤ���
+-V199901L ���ץ����� __STDC_VERSION__ �� 199901L �ʾ�ˤ���ȡ�C99 �μ��ε�ǽ��ͭ���ˤʤ�ޤ���
+C++ �Ǥ� -V199901L ���ץ����� __cplusplus �� 199901L �ʾ�ˤ�������Ʊ�ͤǤ���1, 7 �ʳ��λ��ͤ� C++ Standard �ˤϤ���ޤ���Standard �⡼�ɤǤ� C99 �Ȥθߴ�������뤿��ˡ����Υ��ץ������Ѱդ��Ƥ��ޤ���
+�����������Ѱ����ޥ����� Standard �⡼�ɤǤ� C90 ����� C++ �Ǥ�Ȥ���褦�ˤ��Ƥ���ޤ���*1
���Ѱ����ޥ����Ȥ����Τϡ����Τ褦�ʤ�ΤǤ���
++#define debug(...) fprintf(stderr, __VA_ARGS__) ++
�Ȥ����ޥ������������ȡ� +
++debug( "X = %d\n", x); ++
�Ȥ����ޥ����ƤӽФ��ϼ��Τ褦��Ÿ������ޤ��� +
++fprintf(stderr, "X = %d\n", x); ++
���ʤ�����ѥ������ꥹ����� ... �����İʾ�Υѥ������̣�����ִ��ꥹ����� __VA_ARGS__ ��������б����ޤ��������ơ��ޥ����ƤӽФ����ˤ� ... ���б����������ʣ�����äƤ⡢������ , ��ޤ��Ϣ�뤷����Τ���Ĥΰ����Τ褦�˰����ޤ���
+_Pragma �黻�Ҥ� _Pragma( "foo bar") �Ƚ� #pragma foo bar �Ƚ��Τ�Ʊ�����̤���ı黻�ҤǤ���������ʸ�����ƥ��ޤ��ϥ磻��ʸ�����ƥ�룱�ĤǤʤ���Фʤ�ޤ��磻��ʸ����Ǥ������Ƭ�� L ��������ʸ�����ƥ���Ϥ� " ��������ʸ�����ƥ������ \", \\ �줾�� ", \ ���֤���������Τ� #pragma �ΰ����Ȥ��ư����ޤ���
+#pragma �ϥ������������ԣ��Ԥν�ᤫ�齪���ޤǤ˽ʤ���Фʤ餺���������ʾ��ʤ��Ȥ� C90 �Ǥϡ˥ޥ���Ÿ������ʤ��Τ��Ф��ơ�_Pragma() �黻�Ҥϥ������Τɤ��˽Ƥ���Ω���������Ԥ� #pragma ����Τ�Ʊ�����̤�������ޥ������ִ��ꥹ����˽��Ȥ�Ǥ����ޥ���Ÿ���η�̤Ȥ����������줿 _Pragma() operator ��ͭ���Ǥ������ν����������Ѥ��뤳�Ȥǡ����� portability ����ä� pragma directive ����Ȥ��Ǥ��������Ϥˤ�� #pragma �ΰ㤤�ĤΥإå��ե�����ǵۼ����뤳�Ȥ�Ǥ��ޤ����ʥ���ץ�Ȥ��Ƥ� "Validation Suite" �� pragmas.h, pragmas.t �ȤΤ��ȡˡ�*2
�ʤ���C99 �Ǥ� #if ���η��Ϥ��ν����Ϥκ�����������ȤʤäƤ��ޤ���long long / unsigned long long ��ɬ�ܤȤ���Ƥ���Τǡ�#if ���η��� long long / unsigned long long �ޤ��Ϥ���ʾ�Ȥ������Ȥˤʤ�ޤ���C90, C++98 �Ǥ� #if ���� long / unsigned long ��ɾ�����뤳�ȤˤʤäƤ��ޤ�����������mcpp �� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ������long / unsigned long ���ϰϤ�Ķ�����ͤ��Ф��Ƥϥ������˥�Ф��ޤ���*1
+��:
+*1 ����� GCC, Visual C 2005, 2008 ���Ȥθߴ����Τ���Ǥ��롣¾�ν����ϤǤ⡢ +C99 �λ��ͤ���˼�������Τ����Τǡ�__STDC_VERSION__ �� 199409L ���Ȥ����ޤޤ������������λ��ͤ���������Ƥ椯���Ȥ�ͽ�ۤ���롣
+*2 C99 �Ǥ� #pragma �ΰ����� STDC �ǻϤޤ���ϥޥ���Ÿ������ʤ����������Ǥʤ����� implementation-defined �Ǥ��롣
+GCC �� V.2 �Τ������� 3.9.1.6 �ˤ���褦���ȼ��λ��ͤβ��Ѱ����ޥ�������äƤ��ޤ��� +����Υޥ˥奢��Ǥ� GCC2 ���ͤβ��Ѱ����ޥ����ȸƤӤޤ��� +�ޤ� GCC V.3 �Ǥ� 3.9.6.3 �Τ褦�ʿ��������ͤ���������ޤ����� +������Ǥ� GCC3 ���ͤβ��Ѱ����ޥ����ȸƤӤޤ��� +GCC 2.95 �Ǥ� C99 ���ͤβ��Ѱ����ޥ������������ޤ�������glibc �� Linux �Υ����ƥ�إå��Ǥ� C99 ���ͤΤ�ΤϤ����� GCC3 ���ͤΤ�Τ����Ȥ�줺�����ޤ��� GCC2 ���ͤ��Ȥ��Ƥ��ޤ���
+GCC-specific-build �� mcpp �� V.2.6.3 ���� STD �⡼�ɤ˸¤ä� GCC3 ���ͤβ��Ѱ����ޥ������������V.2.7 ����� GCC2 ���ͤΤ�Τ�������ޤ����� +����� Linux ���ǻȤ��ݤ��Լ�ͳ���뤿��˼���������ΤǤ��� +���������������˥��Фޤ��� +GCC ���ͤ� portability ���ʤ������Ǥʤ���ʸˡŪ�˱����Τǡ��������������ǤϻȤ��٤��ǤϤ���ޤ��� +���Ȥ� GCC2 ���ͤ������Ǥ���
+Visual C �� 2003 �ޤǤϲ��Ѱ����ޥ����ϼ������Ƥ��ޤ���Ǥ�������2005 �Ǽ�������ޤ����� +����� C99 �λ��ͤ� GCC3 ���ͤȻ���������ä�����Τǡ����Ѱ�������ǡ���Ƥ������ϡ�����ľ���Υȡ�������ޤǤ���Ф���������ޤ��� +��������GCC �Ȱ�ä� '##' �Ȥ�������ϻȤ��ޤ��� +���λ��ͤ� Visual C �Υɥ�����Ȥˤ��ȡ�������Τ褦�ʷ�̤ˤʤ�ޤ��� +���Σ����ܤ���Ǥϥ���ޤϺ�����ʤ��Ȥ���Ƥ��ޤ��� +��������Visual C 2005, 2008 �ϼºݤˤϤ��Υ���ޤ������Ƥ��ޤ��ޤ���
++#define EMPTY +#define VC_VA( format, ...) printf( format, __VA_ARGS__) +VC_VA( "var_args: %s %d\n", "Hello", 2005); /* printf( "var_args: %s %d\n", "Hello", 2005); */ +VC_VA( "absence of var_args:\n"); /* printf( "absence of var_args:\n"); */ +VC_VA( "empty var_args:\n", EMPTY); /* printf( "empty var_args:\n", ); */ /* trailing comma */ ++
mcpp �� V.2.7 ���� Visual C-specific-build �� STD �⡼�ɤˤ��λ��ͤ�������ޤ����� +���������������˥��Фޤ��� +�嵭�Σ����ܤ���Ǥϥ���ޤϺ�������������̤�˼������Ƥ��ޤ���
+ +�ޥ������ 'defined' �Ȥ����ȡ����ФƤ��륱�����Ǥϡ�GCC �Ϥ��Υޥ����� #if �Ԥˤ�����ϡ�¾�ξ��Ȱۤʤä����Ū�ʽ����ޤ��� +��������ˤĤ��Ƥ� 3.9.4.6 �Ǹ�Ƥ���Ƥ���Τǡ����Ȥ��Ƥ���������
+mcpp �� GCC-specific-build �� STD �⡼�ɤǤ� V.2.7 ���� GCC ��Ʊ��������褦�ˤ��ޤ����� +Linux �ΰ����Υ����ƥ�إå��ʤɤǤ��μ�δְ�ä��ޥ������Ȥ��Ƥ���Τ��н褹�뤿��Ǥ��� +���������������˥��Фޤ��� +��ʬ�νץ������Ǥ������� #if ����褦�ˤ��Ƥ���������
+ +Borland C �ˤ� asm �Ȥ���������ɤ����äơ�
++asm { + mov x,4; + ...; +} ++
�Ȥ��ä����ǥ�����֥ꥳ���ɤҤ���褦�ˤʤäƤ��ޤ���������ϣø����ʸˡ����Ϥ��줿�ˤ����§Ū�ʤ�ΤǤ���������ˤ��ޤ��ޥޥ�����Ʊ��̾��������ȡ�����ϥޥ���Ÿ������Ƥ��ޤ��ޤ���Borland C ���Τ�ΤǤ� mcpp �Ǥ⡢��������Ʊ���Ǥ���������֥�ץ��������̤� .asm �ե�����ǽΤ������Ǥ��礦�� +mcpp �Ϥ���ˤĤ��Ƥ����̤ʰ����ϲ��⤷�ޤ���
+Visual C++ �ˤ� __asm �Ȥ���Ʊ�ͤΥ�����ɤ�����ޤ���
+GCC �ˤ� asm( " mov x,4\n") �Ȥ����ޤäȤ��ʷ����Ȥ߹��ߴؿ����Ѱդ���Ƥ��ޤ���
GCC �ˤ� Objective-C �� #import �Ȥ����ǥ��쥯�ƥ��֤����ꡢC/C++ �Ǥ⤳��� #pragma once ����ۤ�������� #include �Ȥ��ƻȤ��ޤ��� +Mac OS X �� C/C++ �������ˤϻ��ˤ����Ȥ���Τ�����褦�Ǥ���
+mcpp V.2.7 �ʹߤ� Mac OS X �˸¤äơ�GCC �ǤǤ⥳��ѥ�����Ω�ǤǤ⡢�����������Ƥ��ޤ���
+ +Visual C �ˤ� #import �� #using �Ȥ����ü�ʥǥ��쥯�ƥ��֤�����ޤ��� +�ץ�ץ������ǥ��쥯�ƥ��֤η��Ƥ��ޤ��������Ƥϥ���ѥ���ȥ���Ф���ؼ��Ǥ��� +#import �� GCC �Τ�ΤȤϴط�����ޤ���
+mcpp �� Visual-C-specific-build �Ϥ����ιԤΤޤ��Ϥ��ޤ���
+GCC �����Ǥ� mcpp �Ǥϡ�GCC / cpp (cc1) �Ȥθߴ�������Ѿ夢�ޤ����ؤ��ʤ����٤˳��ݤ��Ƥ��ޤ�������ߴ����̤�¿������ޤ���
+�ޤ��¹Ի����ץ����ˤĤ��Ƥϡ�2 �Ϥ˸���褦�ˤ��������㤤������ޤ���-A ���ץ�������ϼ������Ƥ��ޤ��ޤ����ǥ��쥯�ƥ��֤Ǥ� #assert, #ident ���ϼ������Ƥ��ޤ���*1
+�������������ʤ��Ȥˡ������Τ��Ȥ������ǥ���ѥ���Ǥ��ʤ��Ȥ����������Ϥ������ʤ��褦�Ǥ���
�ष���ºݤ�����Ȥʤ�Τϡ��Ť��ץ�ץ����å����ü�ʻ��ͤƤˤ����������Ǥ���������¿���� GCC �� -pedantic ����ꤹ��ȥ������˥��Фޤ���mcpp �� Standard �⡼�ɤΤ�ΤǤϥ��顼�����å����̤�˼������Ƥ���Τǡ��ۤ� GCC �� -pedantic ���ǥե���ȤȤʤäƤ��ޤ���GCC �ϥǥե���ȤǤϤ����������ʰ�ȿ���������ۤä��̤����ᡢ����Ƥˤ����������������˸����ޤ������������������ʤ˹��פ���褦�˽ΤϤ����ƴ�ñ�ʤ��Ȥǡ��虜�虜���ʰ�ȿ�ν�����ɬ�����ϲ��⤢��ޤ���ñ�˰ܿ�����»�ʤ������ǡ���������ȥХ��β����Ȥʤ�Τǡ����Ĥ�������ľ���Ƥ����ޤ��礦��*2
+��:
+*1 �����Ϥ������ɬ�פʤ� #pragma �Ǽ������٤���ΤǤ��롣 +#include_next, #warning ��Ʊ�ͤǤ��뤬��GCC �Υ����ƥ�Ǥϼºݤ˻����Ȥ��Ƥ���Τǡ�mcpp �Ǥ� GCC �Ǥ˸¤äƼ������������������������˥��оݤˤʤ롣
+*2 3.9 ���� 3.9.3 �� 1998 ǯ�˽줿��ΤǤ��뤬�����θ�Ͼ������Ѥ�äƤ��Ƥ��롣 +�Ť����ͤ˰�¸���륽�����Ͼ��ʤ��ʤꡢ��������ä� GCC �ȼ��γ�ĥ��ǽ������κ����˰�¸�����Τ������Ƥ��Ƥ��롣 +3.9.4 �ʹߡ����Ȥ� 3.9.8 �ʹߤǼ��夲��Τϼ�Ȥ��Ƥ�����������Ǥ��롣 +(2008/03)
+ +�ʲ��ˡ�FreeBSD 2.2.2-R (1997/05) �� kernel �������������������Ƥ����ޤ����ǥ��쥯�ȥ�̾�Ϥ������ /sys (/usr/src/sys) ��Τ�ΤǤ��������Τ��� 7, 8 ��ɬ������ʰ�ȿ�ǤϤʤ���mcpp �Ǥ�����̤�ν����ޤ��������������֤ʤä����������ʤΤǥ������˥��Фޤ���6 �ϳ�ĥ��ǽ�ǡ�C99 �Ǥ�Ʊ����ǽ���Ѱդ���Ƥ��ޤ�����GCC / cpp �Ȥϵ�ˡ���ۤʤ�ޤ���
+ +i386/apm/apm.c, i386/isa/npx.c, i386/isa/seagate.c, i386/scsi/aic7xxx.h, dev/aic7xxx/aic7xxx_asm.c, dev/aic7xxx/symbol.c, gnu/ext2fs/i386-bitops.h, pc98/pc98/npx.c �ˤϤ������������ǥ�����֥饽�����������ޤ�Ƥ��ޤ���
++asm(" + asm code0 +#ifdef PC98 + asm code1 +#else + asm code2 +#endif + ... +"); ++
ʸ�����ƥ����Ĥ��� " �������ޤǤˤʤ��ä����Ϲ������Ĥ����Ƥ���Ȳ�᤹��Τ� GCC / cpp �Υǥե���Ȥλ��ͤǤ����������ȤäƤ���ΤǤ��ʤ���˥���ѥ������ΤǤ� asm() ��������Τ��Ԥ�ޤ���ʸ�����ƥ��Ȳ�ᤵ���餷���ˡ�
+������֥饽������ .s �ե�����Ȥ����ڤ�Υ���Ƥ����Τ��ɤ�����������Ȼפ��ޤ������ɤ����Ƥ� .c �ե�����������ߤ�����С�����ʤ��֤ʤä��������Ȥʤ��Ƥ⡢���Τ褦�ˤ���Ф��ߤޤ�������Ǥ���� Standard C ���Υץ�ץ����å��Ǥ����ꤢ��ޤ���
++asm( + " asm code0\n" +#ifdef PC98 + " asm code1\n" +#else + " asm code2\n" +#endif + " ...\n" +); ++ +
ddb/db_run.c, netatalk/at.h, netatalk/aarp.c, net/if-ethersubr.c, i386/isa/isa.h, i386/isa/wdreg.h, i386/isa/tw.c, i386/isa/b004.c, i386/isa/matcd/matcd.c, i386/isa/sound/sound_calls.h, i386/isa/pcvt/pcvt_drv.c, pci/meteor.c, pc98/pc98/pc98.h �ˤϤ��������Ԥ�����ޤ���
++#endif MACRO ++
����Ϥ������Ƥ����ޤ��礦��
++#endif /* MACRO */ ++ +
i386/apm/apm.c �ˤϤʤ��
++#ifdef 0 ++
�Ȥ�������ʹԤ�����ޤ��� +
+������� +
++#if 0 ++
�δְ㤤�Ǥ����ºݤˤϻȤ��Ƥ��ʤ��� +�ǥХå��⤵��Ƥ��ʤ��������ʤΤǤ��礦��
+ +gnu/i386/isa/dgb.c �Ǥϼ��ιԤ������Υإå��ե������̷�⤹���������ˤʤ�ޤ���
++#define DEBUG ++
Standard C �Ǥ��������� violation of constraint �ǡ��ºݤˤϽ����Ϥˤ�äơ����顼�ˤ�����ǽ��������ͭ���Ȥ����Τȡ�GCC 2 / cpp �Τ褦�˥ǥե���ȤǤ��ۤäƤ��Ȥ������ͭ���Ȥ����ΤȤ���ޤ����μ¤ˤ��Ȥ������ͭ���ˤ���ˤϡ�ľ����
++#undef DEBUG ++
�������٤��Ǥ���
+ +i386/isa/if_ze.c, i386/isa/if_zp.c �ˤ� #warning ������ޤ���Kernel ���������ͣ��ε��ʰ�ȿ�ǥ��쥯�ƥ��֤Ǥ���Standard C �˹�碌�뤿��ˤϡ����ιԤ��ȥ����Ȥ��뤷������ޤ���
+mcpp �� GCC �ǤǤ� #warning ���Ȥ���Τǡ����Τޤ��̤�ޤ���
+ +gnu/ext2fs/ext2_fs.h, i386/isa/mcd.c �ˤϼ��Τ褦�ʲ��Ѹİ����Υޥ������������Ƥ��ޤ���
++#define MCD_TRACE(fmt, a...) \ +{ \ + if (mcd_data[unit].debug) { \ + printf("mcd%d: status=0x%02x: ", \ + unit, mcd_data[unit].status); \ + printf(fmt, ## a); \ + } \ +} + +# define ext2_debug(fmt, a...) { \ + printf ("EXT2-fs DEBUG (%s, %d): %s:", \ + __FILE__, __LINE__, __FUNCTION__); \ + printf (fmt, ## a); \ + } ++
����� GCC / cpp �ȼ��γ�ĥ���ͤǡ�¾�ν����ϤǤ����Ѥ��ޤ����� ## a �ΤȤ�����ñ�� a �Ȥ�������⤢��ޤ���## ������ȡ��ޥ����ƤӽФ��� a... ���б�����������ʤ��ä����ϡ�����ľ���Υ���ޤ������ޤ���
+C99 �Ǥϲ��Ѹİ����ޥ������ɲä���Ƥ��ޤ�������ˡ���ۤʤꡢ��������ϼ��Τ褦�˽��Ȥˤʤ�ޤ���
+#define MCD_TRACE( ...) \ +{ \ + if (mcd_data[unit].debug) { \ + printf("mcd%d: status=0x%02x: ", \ + unit, mcd_data[unit].status); \ + printf( __VA_ARGS__); \ + } \ +} + +# define ext2_debug( ...) { \ + printf ("EXT2-fs DEBUG (%s, %d): %s:", \ + __FILE__, __LINE__, __FUNCTION__); \ + printf ( __VA_ARGS__); \ + } ++
C99 �Ǥ� ... ���б�����ƤӽФ����ΰ����ϣ��İʾ�ɬ�פʤΤ��Ф��ơ�GCC / cpp �Ǥ� a... ���б���������ϣ��ĤǤ⤫�ޤ�ʤ��Ȥ����Τ�����ä�����������Ǥ���mcpp �ǤϤ�����н褹�뤿�ᡢ... ���б�������������Ĥ�ʤ����ϡ�warning �ϽФ���ΤΥ��顼�ˤϤ��ʤ��褦�ˤ��Ƥ��ޤ����������äơ����Τ褦�ʽ�����Ǥ��ޤ������Τۤ��������ϰ��а��б��ǤǤ���Τǡ���ñ�Ǥ��������������ν����Ǥϡ����������ľ���Υ���ޤ��Ĥ�Τǡ����Ȥ��� printf( fmt, ) ���Ȥ���Ÿ����̤ˤʤäƤ��ޤ����Ȥ�����ޤ������ξ��ϡ��ޥ��������嵭�� C99 ���ͤν����ˤ��뤫���ޤ��ϥޥ����ƤӽФ��ǥ��������Ȥ�ʤ��褦�ˤ��뤷������ޤ��������������ˤ� NULL �� 0 �Τ褦��̵���ʥȡ������Ȥäơ�MCD_TRACE(fmt, NULL) ���Ƚ��Ȥˤʤ�ޤ���*1
++#define MCD_TRACE(fmt, ...) +{ + if (mcd_data[unit].debug) { + printf("mcd%d: status=0x%02x: ", + unit, mcd_data[unit].status); + printf(fmt, __VA_ARGS__); + } +} + +# define ext2_debug(fmt, ...) { + printf ("EXT2-fs DEBUG (%s, %d): %s:", + __FILE__, __LINE__, __FUNCTION__); + printf (fmt, __VA_ARGS__); + } ++
��:
+*1 GCC 2.95.3 �ʹߤǤ� C99 �ι�ʸ�β��Ѱ����ޥ������������Ƥ���Τǡ��������Ȥ��ۤ����ɤ���GCC �β��Ѱ����ޥ����ϰ����������ĤǤ��ɤ��Ȥ��������������뤬�����ε�ˡ���ɤ��ʤ���args... �Ȥ����ѥ����Ǥ� args �� ... �ȤϤ��äĤ��Ƥ��ʤ���Фʤ�ʤ������������� pp-token ��¸�ߤ��ʤ����ִ��ꥹ�Ȥǥȡ�����Ϣ��黻�Ҥ�Ʊ����ˡ���̤����Ӥ˻ȤäƤ���Τ⡢�������ʤ���C99 �ε�ˡ�ǡ������Ĥβ��Ѱ�������Ƥ���Ȥ������ͤ������Ǥ�������
+�ʤ���GCC 3 �Ǥϲ��Ѱ����ޥ����ˤĤ��ơ�GCC 2 ����λ��ͤ� C99 �λ��ͤȤ�����Ū�ʽ������ɲä��줿������ˤĤ��Ƥ� 3.9.6.3 �ȤΤ��ȡ�
nfs/nfs.h, nfs/nfsmount.h, nfs/nfsmode.h, netinet/if_ether.c, netinet/in.c, sys/proc.h, sys/socketvars.h, i386/scsi/aic7xxx.h, i386/include/pmap.h, dev/aic7xxx/scan.l, dev/aic7xxx/aic7xxx_asm.c, kern/vfs_cache.c, pci/wd82371.c, vm/vm_object.h, vm/device/pager.c �ˤϤ��������ޥ����ƤӽФ�������ޤ���/usr/include/nfs/nfs.h �Ǥ�Ʊ�ͤǤ���
++LIST_HEAD(, arg2) +TAILQ_HEAD(, arg2) +CIRCLEQ_HEAD(, arg2) +SLIST_HEAD(, arg2) +STAILQ_HAED(, arg2) ++
������������ʤΤǤ������������ C99 �Ǥϸ�ǧ����ޤ�������C90 �Ǥ� undefined �Ǥ����ͥ��Ȥ��줿�ޥ����ƤӽФ��Ǥ��ޤ��ް���������ˤʤä����Τ�������ͤ���ȡ�������������ꤵ��Ƥ���ۤ����ɤ��ȸ����ޤ�������������˥����������ȤˤϤ����ξ���ɬ�������ʤ����������ޤ����������ĤΥޥ����Ǥϥ�������Ȱ����η���Ȥζ��̤��Ĥ��ʤ��Ȥ��� syntax �Τ����ޤ��������뤳�Ȥ⡢˺��ƤϤʤ�ޤ���
+�����ۤ����ɤ��Ǥ��礦������Ǥ���� Standard C ���ΤɤΥץ�ץ����å��Ǥ����ꤢ��ޤ���
++#define EMPTY + +LIST_HEAD(EMPTY, arg2) +TAILQ_HEAD(EMPTY, arg2) +CIRCLEQ_HEAD(EMPTY, arg2) +SLIST_HEAD(EMPTY, arg2) +STAILQ_HAED(EMPTY, arg2) ++
�Ȥ����ǡ������Υإå��ե��������ˤϡ������Υޥ����������ʤ����¾�ΤɤΥإå��� #include ����Ƥ��ʤ��Ȥ�����Τ�����ޤ���nfs �ǥ��쥯�ȥ�Τ�Ρˡ������Υޥ���������� sys/queue.h �ˤ��ꡢ*.c �ץ�����ब���������� #include ���뤳�Ȥ���Ԥ��Ƥ���ΤǤ������֤ʤä����������Υإå����Ǥ���
+�ʤ���kern/kern_mib.c �ˤϼ��Τ褦�ʥޥ����ƤӽФ�������ޤ���
++SYSCTL_NODE(, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) ++
�����������Υ�������� EMPTY �Ȥ���櫓�ˤϤ����ޤ����Υޥ���������� sys/sysctl.h �ˤ��ꡢ���Τ褦�ˤʤäƤ��뤫��Ǥ���
++#define SYSCTL_NODE(parent, nbr, name, access, handler, descr) + extern struct linker_set sysctl_##parent##_##name; + SYSCTL_OID(parent, nbr, name, CTLTYPE_NODE|access, + (void*)&sysctl_##parent##_##name, 0, handler, "N", descr); + TEXT_SET(sysctl_##parent##_##name, sysctl__##parent##_##name); ++
���ʤ���������ΰ����ϥޥ���Ÿ������ʤ��ΤǤ��ʤ�����ˤ��� SYSCTL_OID �Ȥ����ޥ����Ǥ⡢��Ϥ����������ϥޥ���Ÿ������ʤ��ˡ�����ϥ�������Τޤޤˤ��Ƥ�����������ޤ���*1
+��:
+*1 C99 �Ǥϥ�������Ϲ�ˡ�Ȥ���Ƥ��롣�ޤ������� SYSCTL_NODE(), SYSCTL_OID() �Τ褦�ʥޥ����Τ��Ȥ�ͤ���ȡ�EMPTY �Ȥ����ޥ�����Ȥ���ˡ����ǽ�ǤϤʤ��Τǡ���������Τޤޤˤ��Ƥ����Τ�������뤳�ȤǤ��롣EMPTY ��ȤäƤ⡢�ޥ����ƤӽФ����ͥ��Ȥ���Ƥ���ȡ���Ϥꥫ�������ȯ�����Ƥ��ޤ��Ȥ�������⤢�롣���������������� readability ��ͤ���ȡ�EMPTY ��Ȥ���Ȥ����ǤϻȤä��ۤ����ɤ��褦�˻פ��롣
+ +i386/include/endian.h �ˤϤ��������ޥ������������ޤ���/usr/include/machine/endian.h �Ǥ�Ʊ�ͤǤ���Ʊ�����������Ĥ���ˡ�
++#define __byte_swap_long(x) (replacement text) +#define NTOHL(x) (x) = ntohl((u_long)x) +#define ntohl __byte_swap_long ++
����� ntohl ������Ǥ�������� object-like �ޥ����Ǥ���ʤ��� function-like �ޥ�����̾����Ÿ�����졢���Τ����������³���ƥ����Ȥ����ߡ��������� function-like �ޥ����Τ褦��Ÿ������ޤ�������Ÿ����ˡ�� K&R 1st. ����ΰ��ۤλ��ͤǡ�Standard C �ǤϤʤ�����ˡ�Ȥʤä���ΤǤ������������䤬�̤ΤȤ����������Ƥ���褦�ˡ����λ��ͤ������ޥ���Ÿ����̵�Ѥ�ʣ���ˤ������ʽ�ˤޤǺ����⤿�餷�Ƥ��븵���Ǥ��ꡢ�֥Х��Τ褦�ʻ��͡פʤΤǤ���*1
+������ϼ��֤� function-like �ޥ����Ǥ����Τ��ά���� object-like �ޥ����Ȥ��ƽƤ����ΤǤ�����function-like �ޥ����餷�����Τ褦�˽��ۤ����ɤ��Ǥ��礦������Ǥ���в�������⤢��ޤ���
++#define ntohl(x) __byte_swap_long(x) ++
i386/isa/sound/os.h �ˤ�Ʊ��Υޥ������������ޤ���
++#define INB inb +#define INW inb ++
����Ϥ������Ƥ����ޤ��礦�� +
++#define INB(x) inb(x) +#define INW(x) inb(x) ++
��:
+*1 ISO 9899:1990 �� Corrigendum 1:1994 �ǤϤ���������� undefined �Ȥ��줿�������ơ�C99 �Ǥ� Corrigendum �Τ��ι���̤Τ�Τ��֤�������줿�������������ʽ�Ϥ���˴ؤ��ƤϺ��𤷤Ƥ��롣�ܺ٤� cpp-test.html#2.7.6 �ȡ�
+ +Kernel �������ˤϲ��ܤ��� .S �ե����롢���ʤ��������֥饽����������ޤ����Ȥ����������ˤ� #include �� #ifdef �����äơ��֥ץ�ץ������פ�ɬ�פʤΤǤ���FreeBSD 2.2.2-R �ǤϤ����Υ������� cc �� -x assembler-with-cpp ���ץ������դ��ƸƤӽФ��Ȥ�����ˡ�ǽ������Ƥ��ޤ������������ cc �� /usr/libexec/cpp �� -lang-asm ���ץ�����Ĥ��ƸƤӽФ�������� as ��ƤӽФ��ޤ���
+�������� .S �ե�����Ϥ�����ʳ�����§�������Ǥ������줬�տ��̤�ˡ֥ץ�ץ������פ���뤿��ˤϡ��ޥ����Ȥ��ޤ��ް��פ����̾���פ�������֥饽�����˴ޤޤ�Ƥ��ƤϤ����ޤ������ơ��֥ץ�ץ������פǤϡ��֥ȡ�����״֤� white space ��̵ͭ�Ϥ��Τޤ���¸����ʤ���Фʤ餺����Ƭ�� space ������������¸����ʤ���Фʤ�ޤ��Ԥκǽ�Ρ֥ȡ�����פ�������֥�Υ����ȤǤ��� # �Ǥ�����ϥץ�ץ����å���¦���ü�ʽ�����ɬ�פǤ����Ȥ���ץ�ץ����å������ʤ����¤��졢�Х��κ����ˤ�;�פʿ��Ф�Ȥ�ʤ���Фʤ�ʤ��Τǡ��褷���ɤ����Ȥ��Ȥϻפ��ޤ���*1
+ʣ���Υޥ�����б����������Τ���˥ץ�ץ���������ɬ�פ�����ΤǤ���С�.S �ե�����ǤϤʤ� .c �ե�����Ȥ��ơ����η��ǽΤ��ɤ��Ǥ��礦��4.4BSD-Lite �Ǥϼºݤˤ��ν����ˤʤäƤ��ޤ���
++asm( + " asm code0\n" +#ifdef Machine_A + " asm code1\n" +#else + " asm code2\n" +#endif + " ...\n" +); ++
��:
+*1 FreeBSD 2.0-R �ǤϤ����Υե�����̾�� *.S �ǤϤʤ� *.s �ȤʤäƤ��ơ�Makefile �ǤϤ��ν����ˤ� cc �ǤϤʤ� cpp ��ƤӽФ��ơ����� as ��ƤӽФ��褦�ˤʤäƤ����������ơ�cpp ��ƤӽФ��� /usr/bin/cpp ��ư����������� shell-script �ǡ�/usr/libexec/cpp -traditional ��ƤӽФ������Τۤ�����script ������뤳�ȤǻȤ��ץ�ץ����å����Ѥ��뤳�Ȥ��Ǥ���Τǡ������Ǥ��ä���
+ +FreeBSD 2.2.2R �� /usr/src/lib/libc �����������⥳��ѥ��뤷�Ƥߤޤ��������ä�����Ϥ���ޤ���Ǥ�������Ⱦ�� 4.4BSD-Lite ���餽�Τޤ���Ƥ��뤫��Ǥ��礦������������ε��ϤǤ��줤�ʥ������������äƤ���Τ����������Ȥǡ���ɮ���ͤ��ޤ���
+�������Ľꡢgen/getgrent.c �˼��Τ褦�ʹԤ����Ĥ���ޤ���������������� ; ��;�פǤ���
++#endif; ++ +
���ơ��ʾ�˸����褦�ˡ������Υ������ʤ˹��פ��������ܿ����ι⤤���������ʥ�������ǽ��Ȥˤϡ��������ݤ�ǥ��åȤ⤢��ޤ��ˤ⤫����餺���ʤ��������������������ޤ��˽�Ƥ���ΤǤ��礦����
+FreeBSD 2.0-R �� 2.2.2-R �� kernel ����������٤Ƥ⡢���μ�Τ�ΤϤ��ޤ긺�äƤ��ޤ��������ۤɵ��ʹ��������⤯�ʤäƤ���Ȥϸ¤�ʤ��Ȥ���������ʤΤǤ������μ�Τ��䤷���ʥ�������Υ������� 4.4BSD-Lite ����¸�ߤ��Ƥ����ΤϤ鷺���Ǥ���4.4BSD �� Standard C �� POSIX �˽�ƽ�ľ���줿����Ǥ��礦���Ȥ�������FreeBSD �ؤμ����ǰ����Υ������ˤ��������Ť��������뤬���褷�Ƥ��ޤä��ΤǤ����嵭�� ntohl �Τ褦�� 4.4BSD-Lite �Ǥ� ntohl(x) �η��ˤʤäƤ����Τ� FreeBSD �ǤϤ虜�虜 ntohl �η��˽��ؤ����Ƥ����Τ�������ޤ������ä�����ݤ��줿��Τ����ʤ����褹��ΤǤ��礦����
+��Ϥ����ˤϡ�GCC / cpp ���������ۤä��̤��Ƥ��ޤ����Ȥΰ��ƶ�������Ƥ���Ȼפ��ޤ���-pedantic ��ư��ǥե���ȤǤ���С�����������������Υ��������虜�虜�ֿ�������뤳�ȤϤʤ��ä��Ǥ��礦�����ĤƤ� -pedantic-errors ��ǥե���Ȥˤ����ΤǤϥ���ѥ���Ǥ��ʤ���������¿���ơ�����Ū�ǤϤʤ��ä��Τ��⤷��ޤ���gcc �� man page �ˤ� -pedantic ���ץ����ˤĤ��ơ��֤����Ȥ���ͳ�ϲ���ʤ������Υ��ץ�����¸����ͳ�� pedants ���������뤳�Ȥ����Ǥ���פȤ���ޤ�(*1)�������� Standard C ����ޤäƣ�ǯ�⤿�Ĥ��ޤȤʤäƤϡ�-pedantic-errors �ȤޤǤϤ����ʤ��Ƥ� -pedantic ��ǥե���Ȥˤ��٤�������Ƥ���Ȼפ��ޤ���
+FreeBSD 2.0-R �Ǥϥ����ȤΥͥ��Ȥ����������ޤ�������2.2.2-R �Ǥϰ��ݤ���Ƥ��ޤ������ݤ��줿�Τϡ�GCC / cpp ��ǧ��ʤ��ʤä�����Ǥ�������� -pedantic �Ȥϴط�����ޤ����ץ�ץ����å��Υ����������å��ΰ��ϤϤ���ۤ��礭���ΤǤ���
+��:
+*1 ���� 3.9.3 ���줿�Τ� 1998 �Τ��ȤǤ��롣���θ塢gcc �� man �� info �Ǥϡ��������ˤ���ɽ���Ϻ�����줿�������������ͤ��ä��Ѥ�ä��櫓�ǤϤʤ���
+ +glibc (GNU LIBC) 2.1.3 (2000/02) �Υ�������ѥ��뤷�Ƥߤޤ���������ˤ� FreeBSD �� libc �Ȥϰ�äƤ��ʤ�¿�������꤬����ޤ�����ˤ� GCC / cpp �� undocumented �ʻ��ͤ����Ѥ��Ƥ����Τ������ꡢ���λ��ͤ��ͤ��ߤ������Ǥ��ʤ�λ��֤���䤷�Ƥ��ޤä����Ȥ�������ޤ�����
+ +sysdeps/i386/dl-machine.h, stdlib/longlong.h �ˤ�
++#define MACRO asm(" + instr 0 + instr 1 + instr 2 +") ++
�Ȥ��ä����ιԤ�ޤ���ʸ�����ƥ�뤬�����Ĥ⤢��ޤ��� +��ˤϤ��ʤ�Ĺ��ʤ�Τ⤢��ޤ���
+�ޤ���make �ˤ�ä���������� compile/csu/version-info.h �ˤ�Ԥ�ޤ���ʸ�����ƥ�뤬����ޤ���
+����Ϥ�����ʰ�ȿ�Υ������Ǥ�����GCC �ǤϤ������ԥ����ɤ����ä�ʸ�����ƥ��Ȥ��ư����ޤ���
+mcpp �Ǥ� -lang-asm (-x assembler-with-cpp, -a) ���ץ�������ꤹ��ȡ����������Ԥ�ޤ���ʸ�����ƥ���
+#define MACRO asm("\n instr 0\n instr 1\n instr 2\n") ++
�Ȥ��������Ѵ����ƽ������ޤ���3.9.1.1 �Τ褦������˥ǥ��쥯�ƥ��֤ΤϤ��ޤäƤ����Τϡ�����Ǥ��б��Ǥ��������������ľ�������ʤ��ˡ�
+ +catgets/config.h, db2/config.h, include/fpu_control.h, include/limits.h, include/bits/ipc.h, include/sys/sysinfo.h, locale/programs/config.h, sysdeps/unix/sysv/linux/a.out.h �ˤ� #include_next ������ޤ���
+�ޤ���sysvipc/sys/ipc.h �ˤ� #warning ������ޤ���
+�����ϵ��ʤǤ�ǧ����Ƥ��ʤ��ǥ��쥯�ƥ��֤Ǥ�����glibc 2 �Υ����ƥ�ǤϤ��Ȥ� #include_next ���Բķ�Τ�ΤȤʤäƤ��ޤäƤ���Τǡ�mcpp �Ǥ� GCC �ѤǤ� #include_next �� #warning �ϼ������Ƥ��ޤ���
+#include_next ������ϵ��ʰ�ȿ���Ȥ������Ȥ����ǤϤ���ޤ���Include directories �Ȥ��Υ�������ϴĶ��ѿ����Υ桼��¦������ˤ�ä��Ѥ���礬����Τǡ�����ˤ�äƷ�̤���äƤ������������ޤ���
+Glibc �� include �ǥ��쥯�ȥ�Υե�����ˤϡ�glibc �� install ����� /usr/include �ǥ��쥯�ȥ�˥��ԡ�������Τ⤢��ޤ������ʤ���������ƥ�Υإå��ե�����Ȥ��ƻȤ����ΤʤΤǤ������������إå��ե������#include_next ���Ȥ��Ƥ��뤳�Ȥϡ������ƥ�إå������ʤ�Ĥ��Ϥ����֤ˤʤäƤ��Ƥ��뤳�Ȥ�ɽ���Ƥ��ޤ�����������ɬ�פʻ����ˤ��Ƥ���褦�Ǥ���
+ +elf/dl-lookup.c, elf/dl-version.c, elf/ldsodefs.h, glibc-compat/nss_db/db-XXX.c, glibc-compat/nss_files/files-XXX.c, linuxthreads/internals.h, locale/loadlocale.c, locale/programs/linereader.h, locale/programs/locale.c, nss/nss_db/db-XXX.c, nss/nss_files/files-XXX.c, sysdeps/unix/sysdep.h, sysdeps/unix/sysv/linux/i386/sysdep.h, sysdeps/i386/fpu/bits/mathinline.h
+�ʾ�Υե�����ˤ� GCC / cpp �λ��ͤβ��Ѹİ����ޥ���������ȸƤӽФ�������ޤ���*1
+ +��:
+*1 ����� GCC2 ���餢����ͤǤ��뤬�����Τۤ� GCC3 �Ǥ� C99 �� GCC2 �Ȥ�����Ū�ʻ��ͤ��ɲä��줿�� +����ˤĤ��Ƥ� 3.9.6.3 �ȤΤ��ȡ�
+ +catgets/catgetsinfo.h, elf/dl-open.c, grp/fgetgrent_r.c, libio/clearerr_u.c, libio/rewind.c, libio/clearerr.c, libio/iosetbuffer.c, locale/programs/ld-ctype.c, locale/setlocale.c, login/getutent_r.c, malloc/thread-m.h, math/bits/mathcalls.h, misc/efgcvt_r.c, nss/nss_files/files-rpc.c, nss/nss_files/files-network.c, nss/nss_files/files-hosts.c, nss/nss_files/files-proto.c, pwd/fgetpwent_r.c, shadow/sgetspent_r.c, sysdeps/unix/sysv/linux/bits/sigset.h, sysdeps/unix/dirstream.h
+�ʾ�Υե�����ˤϥޥ����ƤӽФ��Υ������������ޤ������Ȥ� math/bits/mathcalls.h �ˤϥ�������� 79 �Ĥ⤢��ޤ������Υإå��ե������ /usr/include/bits/mathcalls.h �� install ����ơ�/usr/include/math.h ���� #include ������ΤǤ���EMPTY �Ȥ����ޥ�����ȤäƤ⡢�ޥ����ƤӽФ����ͥ��Ȥ���Ƥ���Τǡ���Ϥ����̤Υ��������ȯ�����ޤ�����äȤ��줤�ʥޥ����ν����ϤǤ��ʤ���ΤǤ��礦����
+ +argp/argp-fmtstream.h, ctype/ctype.h, elf/sprof.c, elf/dl-runtime.c, elf/do-rel.h, elf/do-lookup.h, elf/dl-addr.c, io/ftw.c, io/ftw64.c, io/sys/stat.h, locale/programs/ld-ctype.c, malloc/mcheck.c, math/test-*.c, nss/nss_files/files-*.c, posix/regex.c, posix/getopt.c, stdlib/gmp-impl.h, string/bits/string2.h, string/strcoll.c, sysdeps/i386/i486/bits/string.h, sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
+�ʾ�Υե�����ˤ� function-like �ޥ�����̾�����ִ������ object-like �ޥ��������������ޤ�����ˤϡ�math/test-*.c �ˤ����ΤΤ褦�ˡ�function-like �ޥ����� object-like �ޥ������ִ�����ơ�����ˤ��줬 function-like �ޥ�����̾�����ִ�������Τ⤢��ޤ�����������������ɬ����������ΤǤ��礦����
+ +sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h, malloc/malloc.c �ˤϡ��㤨�м��Τ褦�� defined �Ȥ��� pp-token ��Ÿ�������ޥ������������ޤ���
++#define HAVE_MREMAP defined(__linux__) && !defined(__arm__) ++
����ϡ�
++#if HAVE_MREMAP ++
�Ȥ����ǥ��쥯�ƥ��֤������
++#if defined(__linux__) && !defined(__arm__) ++
�Ȥʤ뤳�Ȥ���Ԥ��Ƥ����ΤǤ��� +
+���������ޤ� #if ����ǥޥ���Ÿ���η�̤� defined �Ȥ��� pp-token ���ФƤ���Τϡ����ʤǤ� undefined �Ǥ������Τ��Ȥ��̤Ȥ��Ƥ⡢�ʤ����Υޥ������ѤǤ���
+HAVE_MREMAP �Ȥ����ޥ����Ϥ��ä���
++defined(__linux__) && !defined(__arm__) (1) ++
���ִ����졢���� identifier �Ǥ��� defined, __linux__, __arm__ �����줾��ޥ����Ǥ��뤫�ɤ�����Ĵ�٤�졢�ޥ����Ǥ����Ÿ������ޤ����������äơ�defined �ϥޥ����Ȥ����������Ƥ���Ϥ��Ϥʤ��Τǡʤ⤷�������Ƥ���С����켫�Τ����Ǥ� undefined�ˡ����� __linux__ �� 1 ���������Ƥ��ơ�__arm__ ���������Ƥ��ʤ���С����Υޥ����Ϻǽ�Ū�˼��Τ褦��Ÿ������ޤ���
++defined(1) && !defined(__arm__) ++
defined(1) �Ϥ������ #if ���� syntax error �Ǥ���
+�Ȥ����� GCC �Ǥϡ�#if �ԤǤʤ���Ф����ʤ�ΤǤ�����#if �Ԥ˸¤ä� (1) �ǥޥ���Ÿ������Ƥ��ޤ�������� #if ���Ȥ���ɾ�����ޤ���Undefined �Ǥ���ΤǤ����ְ㤤�Ȥϸ����ޤ����ޥ���Ÿ���� #if �ԤȤ����Ǥʤ����Ȥǰۤʤ�Τϡ���Ӥ��ʤ����ͤǤ������ʤ��Ȥ⤽�λ��ͤˤ� portability ������ޤ���*1
+����Υޥ����ϼ��Τ褦�˽С���������ʤ��ΤǤ���
++#if defined(__linux__) && !defined(__arm__) +#define HAVE_MREMAP 1 +#endif ++
�����������ʤä�����������������ݤ���Ƥۤ�����ΤǤ��� +*2
+��:
+*1 GCC 2 / cpp �� #if �ԤǤ�����Ū�� defined ���ü�ʥޥ����Ȥ��ư��äƤ��롣 +���Τ��ᡢ���Τ褦�ʥȡ��������ޥ���Ÿ���Τ���˺���������ΤǤ��뤬�����η�̤������ޥ���Ÿ�������ˡ�#if ���Ȥ���ɾ�����뤳�Ȥˤʤ�ΤǤ��롣���ʤ�����ޥ���Ÿ���� #if ����ɾ���Ȥ�ʬΥ�����˺��Ƥ���ΤǤ��롣
++defined(__linux__) && !defined(__arm__) ++
����� GCC / cpp �Υץ�����¤�ˤ⤫���������Ǥ��롣GCC 2 / cpp �Ǥ� rescan() �Ȥ����ޥ����������롼�����¾�Υᥤ��롼����ȤʤäƤ��ơ����줬�������ƥ����Ȥ��ᤫ�齪���ޤ��ɤߤʤ���������Ƥ椯�������ơ��ץ�ץ������ǥ��쥯�ƥ��֤ν����롼����⤳���椫��ƤӽФ����ΤǤ��롣���Ǥ�ޥ����Ǽ�������Τϥޥ����ץ����å�������Ū�ʥץ�����¤�Ǥ��뤬�����ι�¤�����ޥ���Ÿ����¾�ν����Ȥκ��������������طʤˤʤäƤ���ȹͤ����롣
+*2 glibc 2.4 �ǤϤ��Υޥ�����ľ����Ƥ��롣 +�Ȥ�������¾�Υޥ�����Ʊ��Τ�Τ������ˤ����Ĥ�ФƤ��Ƥ��롣
+ +*.S �Ȥ���̾���Υե�����ϥץ�ץ��������פ��륢����֥�Υ������Ǥ�����������ˤ� #include, #define, #if ���Υץ�ץ������ǥ��쥯�ƥ��֤��ФƤ��ޤ�������ˡ�Make �ˤ�ä���������� compile/csu/crti.S �Ȥ����ե�����ˤϡ�
++#APP ++
�Ȥ�
++#NO_APP ++
�Ȥ����ԤޤǸ���ޤ��� +�����ιԤ�̵���ʥץ�ץ������ǥ��쥯�ƥ��֤ȹ�ʸ�塢���̤��Ĥ��ޤ���GNU �ǤϤ����ιԤϤ��Τޤޥץ�ץ�������˻Ĥäơ�������֥�Υ����ȤȤ��ư�����褦�Ǥ���
+�ޤ���## �黻�Ҥˤ�� pp-token ��Ϣ�뤬 invalid �� pp-token ���������Ƥ��ޤ��������⤢��ޤ���GCC / cpp �Ϥ�����ۤäƤ��Τޤ��Ϥ��ޤ���
+mcpp �Ǥ� GCC / cpp �Ȥθߴ����Τ���ˤ��ʤ���-lang-asm (-x assembler-with-cpp, -a) ���ץ������դ���ȡ��������� illegal �ʥǥ��쥯�ƥ��֤� ## �ˤ�ä��������줿 invalid �� pp-token �顼�ˤ������������˥�Ф���ΤΤ��Τޤ��Ϥ���褦�ˤ��ޤ�����
+�������������������衢������֥��ѤΥޥ����ץ����å��ǽ������٤���Τ��Ȼפ��ޤ���GNU �ˤ� gasp �Ȥ���������֥��ѥޥ����ץ����å�������褦�Ǥ������ʤ����ۤȤ�ɻȤ��Ƥ��ʤ��褦�Ǥ���
+ +GCC �� -dM �Ȥ������ץ����ǵ�ư����ȥޥ��������������Ϥ��ޤ�����make check �ǻȤ��� stdlib/isomac.c �Ϥ�������Ѥ��Ƥ��ޤ���isomac.c ������ϡ��ޥ�������ե�����η����Ȥ��� GCC �ν��Ϸ������������ꤷ�Ƥ��ơ������Ȥ���Ԥ⥨�顼�ˤʤäƤ��ޤ����ȤǤ���
+glibc �� make �Ǥ� rpcgen �Ȥ����ץ�����ब�Ȥ��뤳�Ȥ�����ޤ������Υץ�����������ϡ��ץ�ץ����å��ι��ֹ����ν��Ϸ����Ȥ��Ƥ�Ϥ� GCC ��
++#123 "filename" ++
�Ȥ����������������ꤷ�Ƥ��ơ�
++#line 123 ++
��
++#line 123 "filename" ++
�⥨�顼�ˤʤäƤ��ޤ����ȤǤ��� +
+mcpp �Ǥ� GCC �ǤǤ� GCC �η�����ǥե���Ȥˤ��ޤ�������������rpcgen �����������ü�ʷ���������ˤ��ơ�ɸ��Ū�ʷ������б����Ƥ��ʤ��Ȥ����Τϡ��������ʻ��ͤǤ���
+ +glibc 2.1 �� makefile �Ǥϡ�-include ���ץ�����Ф��лȤ��Ƥ��ޤ������ˤ� -isystem ���ץ����� -I- ���ץ�����Ȥ��ޤ���-include �ϥ���������Ƭ�� #include ����Ф����Τǡ�-isystem, -I- �ϥ����ƥ�إå��������礷��ɬ�����δ������ʤ���ΤǤ���
+mcpp �Ǥ� GCC �Ѥμ����˸¤äơ����Σ��ĤΥ��ץ�����������ޤ����������ޤ�ɬ�פΤʤ����ץ������������Ƥ�餤������ΤǤ���*1
��:
+*1 GCC / cpp �ˤϤ��Τۤ��� -iprefix, -iwithprefix, -iwithprefixbefore, -idirafter �Ȥ��ä� include directory �Ȥ��ν������ꤹ�륪�ץ�������Ĥ⤢�롣�ޤ���long-file-name �� MS-DOS ��� 8+3 �����Υե�����̾�Ȥ��б�ɽ�λ��Ѥ���ꤹ�� -remap ���ץ����⤢�롣������ CygWIN �����ƥ�� specs �ե��������ǻȤ��뤳�Ȥ����뤬��include directory �ϴĶ��ѿ��ǻ��ꤷ�Ƥ����Ф��ळ�ȤǤ��ꡢ8+3 �����Υե�����̾�ؤ��б������ޤ��� CygWIN ��ɬ�פ��Ȥ�פ��ʤ���
+ +����� glibc ������ǤϤʤ���GCC ������Ǥ���
++__VERSION__, __SIZE_TYPE__, __PTRDIFF_TYPE__, __WCHAR_TYPE__ ++
�ʾ��̾���ϥɥ�����Ȥˤϸ�������ޤ���GCC / cpp �Ǥϻ�������ޥ����ȤʤäƤ��ޤ���__VERSION__ ���ͤ� Vine Linux 2.1 (egcs-1.1.2) �Ǥ� "egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)" �ȤʤäƤ��ޤ���¾�Σ��Ĥ� Linux / i386 ��Ϥ���¿���Υ����ƥ�ǤϤ��줾�� unsigned int, int, long int �ȤʤäƤ���褦�Ǥ�����������FreeBSD, CygWIN �ǤϾ������İ�äƤ��ޤ��ʤʤ��㤦ɬ�פ�����Τ��狼��ʤ����ˡ�
+�����������Ȥ��ɤ����ƥɥ�����Ȥˤʤ��ΤǤ��礦����
��äȤ����ʤΤ� SUNPRO_DEPENDENCIES �Ȥ��� undocumented �ʴĶ��ѿ��Ǥ���sysdeps/unix/sysv/linux/Makefile �ˤ�
++SUNPRO_DEPENDENCIES='$(@:.h=.d)-t $@' \ +$(CC) -E -x c $(sysinclude) $< -D_LIBC -dM | \ +... \ +etc. ++
�Ȥ��� script ������ޤ�������� SUNPRO_DEPENDENCIES �Ȥ����Ķ��ѿ��ǥե�����̾����ꤷ��cpp ����������Υޥ�������ȥ������ե�����ΰ�¸�ط��Ԥλ��ꤵ�줿�ե�����˽��Ϥ���Ȥ�����ΤʤΤǤ���
+����ư�������ˤϡ�GCC / cpp �Υ����� (egcs-1.1.2/gcc/cccp.c) ���ɤष������ޤ���Ǥ�����
+���Τۤ���DEPENDENCIES_OUTPUT �Ȥ����Ķ��ѿ��⤢�ꡢƱ�ͤΰ�̣����äƤ��ޤ���SUNPRO_DEPENDENCIES �Τۤ��� system headers �ΰ�¸�ط��Ԥ���Ϥ���Τ��Ф��ơ�DEPENDENCIES_OUTPUT �Ϥ����ǤϤʤ��Ȥ����㤤������ޤ���
mcpp �Ǥ� GCC �б��Ǥ˸¤äơ����Σ��ĤδĶ��ѿ����б������ޤ��������������������͡פΤ褦�ʤ�Τ���ѻߤ��Ƥۤ�����ΤǤ���
+ +Linux (i386) / GCC �ǤϤ��Τۤ���specs �ե�����λ���ˤ�äơ�cpp �θƤӽФ��� -Asystem(unix) -Acpu(i386) -Amachine(i386) �Ȥ������ץ�����ղä���ޤ�������������������Ѥ��륽�����Ͼ��ʤ��Ȥ� glibc 2.1.3 �� Linux / x86 �ǤˤϤʤ��褦�Ǥ���
+Glibc ���饤�ȡ��뤵��륷���ƥ�إå����Ĥ��Ϥ����餱������ʣ���ʤ�ΤˤʤäƤ��Ƥ��뤳�Ȥϡ��礭������Ǥ�������äȤ�������ΰ㤤�ˤ�äƽ�����̤���äƤ��붲�줬����ޤ���
¾���ǡ�FreeBSD 2.2.2 / kernel �������Ǹ���줿 #else junk, #endif junk ��ޥ������������� glibc 2.1.3 �Ǥϸ����ޤ���Ǥ�����Glibc 2.1 �Υ������� FreeBSD 2 / kernel �Υ����������������Ƥ����̤⤤���餫����ޤ���
+���������ΤȤ��Ƥϡ�glibc 2.1 �ˤ� GCC ���ü�ʻ��ͤ˰�¸���Ƥ��륽���������ʤ餺���ꡢ¾�ν����Ϥؤΰܿ��Ϻ���ˤʤäƤ��ޤ��ʿ����ܤΥ������ե��������ǤϤ��������Ǥ��뤬�ˡ��ץ������β���������ƥʥ����Τ���ˤ⡢�������� GCC local �ʻ��ͤؤΰ�¸�Ϲ��ޤ�������ޤ���GCC V.3 �ǤϤ�������Ū���ͤ��ѻߤ�������˰�¸���륽��������ݤ��뤳�Ȥ���Ԥ������Ȼפ��ޤ���
+ +mcpp �� glibc 2.1 �Υ���ѥ���˻Ȥ��ˤϡ��ޤ������Υ������ν�����ɬ�פǤ���*1
+��Ĥϲ��Ѹİ����Υޥ���������ȸƤӽФ��Ǥ����嵭 3.9.4.3 �ˤ��� 14 �ĤΥե�����ˤĤ��ơ�3.9.1.6 �ˤ���褦�ʷ��ǽ������ޤ�����������Υե������Ĥ��Ƥ������ۤ����ɤ��Ǥ��礦��
+�⤦��Ĥϡ�3.9.4.6 �ˤ��룳�ĤΥե�����Ρ��ִ��ꥹ�Ȥ� "defined" ���ФƤ���ޥ����ν����Ǥ����ޤ���/usr/include/_G_config.h �� sysdeps/unix/sysv/linux/_G_config.h �� install ����ƤǤ���Ʊ��Υե�����Ǥ�����������⽤�����Ƥ������ۤ����ɤ��Ǥ��礦��
mcpp �ε�ư�ˤϡ�Makefile �� specs �ե�������ղä���륪�ץ����Τۤ��ˡ��Ԥ�ޤ���ʸ�����ƥ��䥢����֥��ѤΥ����Ȥ�ޤ� *.S �ե�����Τ���� -lang-asm (-x assembler-with-cpp) ��ɬ�פǤ������Υ��ץ�����¾�Υե�����Υץ�ץ������ˤ��դ��Ƥ����ơ��̾�Ϥ��ޤ��ޤ���
+GCC / cpp ��Ȥä��� mcpp ��Ȥä��ꡢ�ǥե���Ȥ��ղä��륪�ץ������ѹ������ꤹ�뤿��ˤϡ����Τ褦�ˤ���Τ��ɤ��Ǥ��礦��
+Super-user �ˤʤäơ�cpp ��¸�ߤ���ǥ��쥯�ȥ�ʤ����Ǥ� /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 �Ȥ���ˤ˹Ԥ��ޤ��������� GCC / cpp �� cpp �Ȥ���̾����¸�ߤ���mcpp �� mcpp �Ȥ���̾���� install ����Ƥ���Ȥ��ޤ����ޤ������Τ褦�����Ƥ� mcpp.sh �Ȥ���̾���Υե��������ޤ���*2
++#!/bin/sh +/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/mcpp -Q -lang-asm "$@" ++
-Q ���ץ����Ϥʤ��Ƥ⤫�ޤ��ޤ������̤ο��ǥ�å�������Ͽ����ˤ��դ����ۤ����ɤ��Ǥ��礦��
+����ˡ����Τ褦�ʥ��ޥ�ɤ��Ǥ����ߤޤ���
+chmod a+x mcpp.sh +mv cpp cpp_gnuc +ln -sf mcpp.sh cpp ++
�������Ƥ����ȡ�gcc �� cpp ��ƤӽФ������ˡ�����˥����Ƥ��� mcpp.sh ���¹Ԥ��졢mcpp �˾嵭�Υ��ץ������gcc ���ղä��륪�ץ��������ˡ��ղä��ƸƤӽФ��ޤ���
+�ǥե���ȤΥ��ץ������ѹ�������ϡ�mcpp.sh ���ѹ�����ʤꡢmcpp ��ľ�ܸƤӽФ��ʤꤷ�ޤ��������ơ�GCC / cpp ��Ȥ�����
++ln -sf cpp_gnuc cpp ++
�Ȥ��ޤ���
+��:
+*1 mcpp V.2.7 ����� GCC-specific-build �ˤ����λ��ͤ��������줿�Τǡ��������������ʤ��Ƥ�ץ�ץ������ϤǤ���褦�ˤʤä���
+*2 mcpp �� configure ���ƥ��ȡ��뤷�����ϼ�ưŪ��Ŭ�ڤ����꤬����롣 +���Ȥ� -Q -lang-asm ���ץ������ɲä�������Ǥ��ࡣ
+ +mcpp ��Ȥ����Τ⤦��Ĥ�����ϡ����̤Υ������˥����Ϥ���뤳�ȤǤ���-Q ���ץ����ǥ�����쥯�Ȥ��Ƥ⡢glibc �Τ褦���絬�Ϥʥ��������������� mcpp.err ������ɴ MB �ʾ�ˤʤ�Τǡ����٤Ƥ��ܤ��̤��櫓�ˤϤ����ޤ���
+���������������Ƥ�ȡ�Ʊ���������˥������֤��ФƤ��뤳�Ȥ��狼��ޤ���Ʊ�� *.h �ե����뤬¿���Υ��������� #include ����뤿��ˡ�Ʊ���������˥������֤������֤��Ф�ΤǤ���������������Ƹ���ˤϡ����Τ褦�ˤ��ޤ���
+�ޤ������顼������å����ޤ���
+grep 'fatal:' `find . -name mcpp.err` +grep 'error:' `find . -name mcpp.err` ++
���ˡ��������˥��������ޤ��� +
++grep 'warning:' `find . -name mcpp.err` | sort -k3 -u > mcpp-warnings-sorted ++
�������˥νн�٤Ƹ��뤿��ˤϡ����Τ褦�ˤ��ޤ��� +
++grep 'warning:' `find . -name mcpp.err` | sort -k3 | uniq > mcpp-warnings-all ++
����μ���Υ������˥�ˤϡ����Ȥ��м��Τ褦�ˤ��ޤ��� +
++grep 'warning: Replacement' `find . -name mcpp.err` | sort -k3 | uniq | less ++
�������Ƹ�����Ĥ��������ǡ��������� mcpp.err �� less �Ǹ������Ƥ��ǧ����ɬ�פʤ饽�����ޤ���
+�����ɬ�פʤ顢������������θĽ�� #pragma MCPP debug expand, #pragma MCPP end_debug ���Ƕ���Ǻ��٥ץ�ץ��������ơ����ν��Ϥޤ������λ��ˤϡ��ץ�ץ������ν��Ϥȿ��ǥ�å������Ȥ�Ʊ���ե�����˽Ф�褦�ˡ����Τ褦�ˤ��ޤ���make ������ϡ��嵭�� shell-script ����������ˡ�
+mcpp <-opts> in-file.c > in-file.i 2>&1 ++ +
Linux ����� FreeBSD �ǡ�GCC 2.95.* �� GCC 3.2R (2002/08) �Υ�������ѥ��뤷�Ƥߤޤ����������ơ��������줿 gcc ��Ȥä� mcpp ��ѥ��뤷�����˥ץ�ץ������ˤ����Ȥä� GCC 3.2 �� GCC 3.2 �Υ�������ꥳ��ѥ��뤷�Ƥߤޤ�����
+GCC �� make �Ϥ����Ĥ����ʳ���Ф� bootstrap ����Ƥ椯�褦�ˤʤäƤ��ޤ������ʤ�����ǽ���ʳ����������줿 gcc, cc1, etc. ��ȤäƼ�ʬ���Ȥ�ꥳ��ѥ��뤷��������äƺ��������줿��Τ�ȤäƤޤ���ʬ���Ȥ�ꥳ��ѥ��뤷���Ȥ��ä��в�ɤ�ޤ���gcc �� bootstrap ������Ǥ� xgcc �Ȥ���̾����¸�ߤ��Ƥ��ޤ���
+�ޤ���GCC 2 �Ǥ� cc1, cc1plus �������Ω���Ƥ��� cpp ����GCC 3 �Ǥ� cc1, cc1plus �˵ۼ�����Ƥ��ޤ��ޤ���������������Ω�����ץ�ץ����å��Ǥ��� cpp0 ��¸�ߤ��Ƥ��ꡢgcc �� g++ �� -no-integrated-cpp �Ȥ������ץ������դ���Ȥ���˥ץ�ץ��������뤳�Ȥ��Ǥ���褦�ˤʤäƤ��ޤ����������äơ�mcpp �˥ץ�ץ��������뤿��ˤϡ�gcc (xgcc), g++ �θƤӽФ��� shell-script ���֤������ơ�mcpp => cc1 �ޤ��� mcpp => cc1plus �Ȥ�������Ǽ¹Ԥ����褦�ˤ��ʤ���Фʤ�ޤ���*1
+GCC �Υ����ƥ�Ǥϡ������ƥ�إå��䤽�Υ�����������꤬����ʣ���ˤʤäƤ��Ƥ��ޤ����ޤ���GCC 3 �Ǥ� GCC ������Ū�˻Ȥ� C++ �� shared library �λ��ͤ� GCC 2 �Ȥ��Ѥ�ä��褦�Ǥ��������Τ��ᤫ������ѥ��뤹������Ǥ⤦�ޤ��椫�ʤ����Ȥ�����ޤ����ޤ�������ѥ���ȥƥ��Ȥˤ�¿����¾�Υ��եȥ�������ɬ�פǡ������ΥС�����Ť��ȡ����ޤ��椫�ʤ����Ȥ�����ޤ�����ΤȤ����Ǥϥϡ��ɥ�����������Ǥ��ޤ�����ѥ���Ǥ��ʤ����Ȥ⤢��ޤ�����
+FreeBSD 4.4R �Ǥ� GCC 3.2 �ϥ���ѥ���Ǥ��ޤ���Ǥ�����FreeBSD �� 4.7R �� upgrade ����packages �� 4.7 �ѤΤ�Τ������ؤ��ơ��褦�䤯����ѥ��뤹�뤳�Ȥ��Ǥ��ޤ�����*2
+��ΤȤ����Ǥϣ���Υѥ������Ʊ�� VineLinux 2.5 �����äƤ��ޤ������������� (K6/200MHz) �Ǥ� GCC 2.95.3 ��ȤäƤΥ���ѥ���ϤǤ�����ΤΡ��������줿 GCC 3.2 / cc1 �� segmentation fault ���֤��������Ƥ��ޤ�����ʬ���ȤΥꥳ��ѥ��뤬�Ǥ��ޤ���Ǥ��������θ塢K6 �� AthlonXP �˼���ؤ��ƥꥳ��ѥ��뤷���Ȥ��������٤� segmentation fault ��ȯ�����ޤ���Ǥ���������ϥϡ��ɥ��������ä��Τ��⤷��ޤ���
+�ޤ���FreeBSD �Ǥ� K6 �Υѥ������ GCC 2.95.4 ��Ȥä� GCC 3.2 ��ѥ��뤷�����ϡ�make -k check �ǤϤۤȤ�ɤ��٤��̤ä��ΤǤ�����������������줿 GCC 3.2 �� GCC 3.2 ���Ȥ�ꥳ��ѥ��뤷���Ȥ��������٤ϡ�g++, libstdc++-v3 �� make -k check �� testsuite �Σ������̤�ʤ��Ȥ������ݤⵯ����ޤ�������������AthlonXP �˼���ؤ��Ƥ���Ϥ��ޤ��椯�褦�ˤʤ�ޤ����������ϡ��ɥ�������������ä��Τ��⤷��ޤ���
�ޤ���VineLinux �� GCC 3.2 ���Ȥ� mcpp ��Ȥäƥꥳ��ѥ��뤷�����ϡ��������줿 gcc �� make -k check ���̤�ޤ�������g++, libstdc++-v3 �� testsuite �Σ������̤�ޤ���Ǥ�����*3, *4, *5
+�ɤ���ˤ��Ƥ⡢�������줿 gcc, g++, cc1, cc1plus ��������ǤϤʤ����إå��ե����뤫�饤�֥�꤫�������������̯������Τ褦�Ǥ���
+mcpp �� GCC �Ȥϴ����˸ߴ��ǤϤ���ޤ������ʤ�⤤�ߴ������äƤ���Τǡ�����ؤ��ƻȤäƤۤ�����Ϥʤ��Ȼפ��ޤ���
GCC 3.2 �Υ���ѥ���˻Ȥä������ƥ�ϼ��Τ�ΤǤ���
++++
++ OS make library CPU + VineLinux 2.5 GNU make glibc 2.2.4 Celeron/1060MHz + VineLinux 2.5 GNU make glibc 2.2.4 K6/200MHz + VineLinux 2.5 GNU make glibc 2.2.4 AthlonXP/2.0GHz + FreeBSD 4.7R UCB make libc.so.4 K6/200MHz + FreeBSD 4.7R UCB make libc.so.4 AthlonXP/2.0GHz
����ѥ��뤷���Τ� C �� C++ �����Ǥ���
+��:
+*1 ����� bootstrap �γ��ʳ����Ȥˤ��ʤ���Фʤ�ʤ��ΤǤ��롣 +Makefile �ϼ�������ˤϤ��ޤ���礭��ʣ���ʤΤǡ����̤�ĥ���դ��Ƥ��ơ�stage ���Ѥ�ä��Ȥ����� ^C �����Ǥ��ơ�script ���֤�������Ȥ����Ժٹ�����ˡ��Ȥä���
+*2 �����⡢¿���� packages �δ֤ΰ�¸�ط�������Τǡ��С�����ޤ��ޤ����Ⱥ��������롣��ΤȤ����ǤϤ��Τ���ˡ������ kterm ����ư���ʤ��Ȥ������֤˴٤ä����Ȥ⤢�롣
+*3 make -k check ������� mcpp �ϻȤäƤϤ����ʤ������ǥ�å������� GCC �Ȥϰۤʤ뤫��Ǥ��롣
+*4 make -k check ������ϴĶ��ѿ� LANG, LC_ALL �� C �Ȥ��ơ��Ѹ�Ķ��ˤ��ʤ��Ȥ����ʤ���
+*5 Testsuite ���̤�ʤ�ľ�ܤθ����Ϥ��٤ơ�i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.5.0.0 �Ȥ����饤�֥��� pthread_getspecific, pthread_setspecific �� pthread_* �Ȥ����ؿ�����Ǥ��ʤ��Ȥ�����ΤǤ��롣�������������줿���Υ饤�֥�������Ƥ��С�make -k check ���̤롣FreeBSD �ǤϤ�������ϵ�����ʤ����������������̯������Τ褦�Ǥ��롣
+ +���Τ��ޤ�ˤ�Ť������� GCC 3.2 �Υ������ˤϤ���ޤ����λ��ͤ� GCC 3.2 �Ǥ褦�䤯 obsolete �Ȥ���ޤ�������������ˤ��줬����ȡ������̤�˽����Ϥ���ޤ������������˥��Фޤ���
+ +Make ���������������� build/gcc/include �� limits.h, syslimits.h �ˤ� #include_next �����ꡢGCC 3.2 �� install ����ȡ�lib/gcc-lib/i686-pc-linux-gnu/3.2/include �� limits.h, syslimits.h �˥��ԡ�����ޤ���
+#warning �ϸ�������ޤ���Ǥ�����
+ +���Ѱ����ޥ����Ϥ����Ĥ�����ޤ�������Ⱦ�� testsuite �Τ�Τǡ��ƥ����Ѥ˽줿����ץ�ˤ����ޤ������ơ�GCC 2 ����ε�ˡ�Ϥޤ����ݡ��Ȥ���ƤϤ����ΤΡ�__VA_ARGS__ ��Ȥä� C99 �Τ�Τ�¿���ʤäƤ��ޤ���
+�ޤ���GCC 3 �Ǥ� GCC 2 �λ��ͤ� C99 �λ��ͤȤ�����Ū�ʽ������ɲä���Ƥ��ޤ������η��Ǥ���*1
++#define eprintf( fmt, ...) fprintf( stderr, fmt, ##__VA_ARGS__) ++
����� GCC 2 ���ͤμ��ν������б����ޤ���
++#define eprintf( fmt, args...) fprintf( stderr, fmt, ##args) ++
����ϡ�... ���б�����������ʤ��ä����ϡ�����ľ���Υ���ޤ�������Ȥ������ͤǤ������Ȥ��С����Τ褦��Ÿ������ޤ���
++eprintf( "success!\n") ==> fprintf( stderr, "success!\n") ++
�������������ʻ��ͤΤ褦�Ǥ������ޥ���������ִ��ꥹ����Υ���ޤϥѥ�������ڤ��ΤȤϸ¤�ʤ����ȡ��ȡ�����Ϣ��黻�ҤǤ��� ## ���̤�Ư�����Ƥ��뤳�ȡ���§���㳰���ä�ʣ���ˤ����ΤǤ��뤳�ȡ��������꤬����ޤ���*2, *3, *4
+��:
+*1 ���Υޥ˥奢��Ǥϡ�GCC 2 ����β��Ѱ����ޥ����� GCC2 ���͡�GCC 3 ���ɲä��줿��Τ� GCC3 ���ͤȸƤ֤��Ȥˤ��롣
+*2 GCC 2.* �Ǥ� GCC2 ���ͤβ��Ѱ����ޥ���������� args... ���Ǥ� args �� ... �ȤϤ��äĤ��Ƥ��ʤ���Фʤ�ʤ��ä�����GCC 3 �Ǥϴ֤� space �����äƤ��Ƥ��ɤ��ʤä���
+*3 ��������-ansi ���ץ�����ꤵ�줿����-std=c*, -std=iso* ���ץ����Ǥ�Ʊ�͡ˡ����Ѱ�����¸�ߤ��ʤ��Ƥ⥳��ޤϺ������ʤ��� +��������'##' ���ۤäƾä���롣
+*4 mcpp �Ǥ� V.2.6.3 ���� GCC-specific-build �� STD �⡼�ɤ˸¤äơ�GCC3 ���ͤβ��Ѱ����ޥ�����������줿�� +����� V.2.7 ����� GCC2 ���ͤΤ�Τˤ��б�������
+ +�ޥ����ƤӽФ��Υ�������ϡ�#include ����륷���ƥ�إå��Τ�Ρ�/usr/include/bits/mathcalls.h, /usr/include/bits/sigset.h�ˤ��̤Ȥ���ȡ�GCC 3.2 �Υ��������ΤǤϡ�gcc/libgcc2.h �ˤ��������ޤ���*1
+��:
+*1 ���Σ��ĤΥإå��ե������ glibc �� install ���뤳�Ȥǥ����ƥ�إå������äƤ椯��ΤǤ��롣FreeBSD �Ǥ� glibc ��ȤäƤ��ʤ��Τǡ������Υ����ƥ�إå���¸�ߤ��ʤ���
+ +gcc/fixinc/gnu-regex.c, libiberty/regex.c �ˤϡ�function-like �ޥ�����̾�����ִ������ object-like �ޥ���������������ޤ����ޤ���#include ����� /usr/lib/bison.simple ��Ʊ�ͤǤ��������Ϥ��٤� alloca �˴ؤ����ΤǤ������Ȥ��С�libiberty/regex.c �ˤϤ��������ޥ������������ޤ���
++#define REGEX_ALLOCATE alloca +#define alloca( size) __builtin_alloca( size) ++
����ϡ�����������ʤ��ΤǤ������ʤ�����ʤȤ������ά����ΤǤ��礦����
++#define REGEX_ALLOCATE( size) alloca( size) ++
���� regex.c �Ǥ� alloca �Ͼ��ˤ�äƤϼ��Τ褦����������褦�ˤʤäƤ��ꡢ�������뤬��Ӥ��Ƥ��ޤ���
++#define alloca __builtin_alloc ++
�ޤ���regex.c �ˤ� #include "regex.c" �Ȥ����Ԥ����ꡢ��ʬ���Ȥ롼�ɤ���褦�ˤʤäƤ��ޤ���ʣ������ʥ������Ǥ���
+ +����� GCC 3.2 �Υ������ˤϸ�������ޤ���
+�ɥ�����Ȥˤ��ȡ����μ�Υޥ����ν����� GCC 2 / cpp ��Ʊ���Ǥ����ΤΡ���portability ���ʤ��פȤ����������˥�Ф����ȤˤʤäƤ��ޤ����������ƥ��Ȥ��Ƥߤ�ȡ�3.9.4.6 ����Ǥϥ������˥��Фޤ���
+ +GCC 3 / cpp �Υɥ�����Ȥˤϡ����Τ褦�˽�Ƥ��ޤ���
+Wherever possible, you should use a preprocessor geared to the +language you are writing in. Modern versions of the GNU assembler have +macro facilities.+
��������GCC 3.2 ���ȤΥ������ˤϡ�*.S �ե����뤬 gcc/config �ǥ��쥯�ȥ�˿��ܤ���ޤ���
+ +GCC 3.2 �� make �Ǥ� rpcgen �� -dM ���ץ�����Ȥ��ޤ���Ǥ�������������rpcgen �� -dM ���ץ����λ��ͤ��ä��Ѥ�äƤϤ��ʤ��褦�Ǥ���
+ +�����Υ��ץ����Ϥ��Ф��лȤ��Ƥ��ꡢ-isystem ���ץ����� system include directory ��Ʊ���˿��Ļ��ꤵ����礵������ޤ������������������ƥ�إå����Τ�Τ����륽�եȥ������Υ���ѥ���Ǥϡ����ʤ����ȤʤΤǤ��礦�����Ķ��ѿ��ǰ�礷�ƻ��ꤷ���ۤ������狼��䤹���Ȼפ��ΤǤ�����
+�����ǡ�GCC 3 / cpp �Υɥ�����ȤǤϡ�-iwithprefix, -iwithprefixbefore ���ץ����ˤĤ��Ƥϡ��ֻȤ�ʤ��ۤ����ɤ� (discouraged)�פȽ�Ƥ��ޤ���GCC �ˤ� include directory ����ꤹ�륪�ץ���䤿��ˤ���ޤ����������������������äƤ����ΤǤ��礦����*1
+��:
+*1 ��������GCC 3.2 �� Makefile �� -iprefix ���ץ������դ��Ƥ��롣 +�Ȥ����� -iwithprefix, -iwithprefixbefore �ϻȤ��ʤ��ΤǤ��롣-iprefix ���ץ����ϡ����θ�ˤ��Σ��ĤΥ��ץ����Τɤ��餫�����äƽ��ư�̣����ĤΤǤ��뤬��
+ +GCC 2 �Ǥ� __VERSION__, __SIZE_TYPE__, __PTRDIFF_TYPE__, __WCHAR_TYPE__ ���λ�������ޥ����ˤĤ��Ƥϡ��ɥ�����Ȥ˵��ܤ��ʤ���-dM ���ץ����Ǥ��Τ뤳�Ȥ��Ǥ��ޤ���Ǥ�������GCC 3 �Ǥϥɥ�����Ȥ˰�̣�����ܤ��졢����Ū���ͤ� -dM ���Τ뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ�����
+ +GCC 2 �Ǥϥɥ�����Ȥ˵��ܤΤʤ��ä� SUNPRO_DEPENDENCIES �Ȥ����Ķ��ѿ��ˤĤ��Ƥϡ�GCC 3 �Ǥϥɥ�����Ȥ˵��ܤ����褦�ˤʤ�ޤ����ʤ��������ʤ�����ʤ�Τ�ɬ�פʤΤ��Ϥ狼��ʤ��ˡ�
+ +GCC 3 �Ǥϼ��Τ褦�� #pragma ����������Ƥ��ޤ���
++#pragma GCC poison +#pragma GCC dependency +#pragma GCC system_header ++
GCC 3.2 �Υ������Ǥ⡢���Τ��� poison �� system_header ���Ȥ��Ƥ��ޤ�����������mcpp �ǤϤ����ϥ��ݡ��Ȥ��Ƥ��ޤ����ͤ������Ͼʤ��ޤ�����ɬ���������ޤ괶�����ʤ�����Ǥ���*1
+GCC 3 �Ǥ� #assert ���� assertion directives �ϡֿ侩���ʤ� (deprecated)�פȤ���ޤ����ʤ�������gcc �ϥǥե���Ȥ� -A ���ץ�����ȯ�Ԥ��뤬�ˡ�
+�ޤ���GCC 2 �Ǥ� -traditional ���ץ�����Ʊ��� cpp �Ǽ�������Ƥ��ꡢ���Τ������˸Ť����ͤ� C90 �λ��ͤ����ߤ������ʻ��ͤȤʤäƤ��ޤ�������GCC 3.2 �Ǥϥץ�ץ����å����̾�� cpp0 �� tradcpp0 �Ȥ�ʬ�����ޤ�����-traditional ���ץ����� gcc ���Ф��Ƥ���ͭ���ǡ�cpp0 �ˤϤ���ޤ���gcc -traditional �ϥץ�ץ������� tradcpp0 ��ƤӽФ��ޤ���tradcpp0 �� C90 �����ο��� traditional �ʥץ�ץ����å��˶ᤤ��ΤȤʤäƤ��ޤ��������ơ�tradcpp0 �Τۤ��Ϻ��塢����ʥХ��ν����ʳ��ϥ��ƥʥ��ʤ��Ȥ���Ƥ��ޤ���
+GCC 2 / cpp �δ�̯�ʻ��ͤϤ����ֽ�������Ƥ����褦�˸����ޤ���
+��:
+*1 mcpp V.2.7 ����� GCC-specific-build �� #pragma GCC system_header �ݡ��Ȥ�����
+ +�ʾ�˸��Ƥ����褦�ˡ�GCC 3.2 �Υ������Ͼ��ʤ��Ȥ�ץ�ץ�������ϡ�glibc 2.1.3 �ʤɤ���٤�Ȥ��ʤ꤭�줤�ʤ�ΤˤʤäƤ��ޤ���Traditional �ʽ����Ϥۤܰ��ݤ��졢��̣�Τʤ����ץ����ϻȤ��ʤ��ʤäƤ��Ƥ��ޤ���
+�ޤ���GCC 3.2 / cpp0 ���Τ�Τ⡢traditional �ʻ��ͤ� obsolete �ʤ�ΤȤ��ư�����token-based �ʸ�§�����Τˤ���ʤɡ�GCC 2 / cpp ����٤�ȳ��ʤ�ͥ�줿��ΤȤʤäƤ��ޤ����ɥ�����Ȥ� undocumented ����ʬ�������˸���ޤ������ޤ���Ű����̤�¿������ޤ����������Ȥ��Ƥ��ɤ������˸����äƤ���Ȼפ��ޤ���
������GNU �Υ����ƥ�Ǥϥ����ƥ�إå���ʣ������������ǡ������ɤ��ʤäƤ���Τ��ưפ��İ��Ǥ��ʤ��褦�ˤʤäƤ��ޤ������줬 GNU �Υ����ƥ�Υȥ�֥�κ�����װ��ȤʤäƤ���ΤǤϤʤ��Ǥ��礦����
+�⤦��Ļ�ǰ�ʤΤϡ��ץ�ץ�����������ѥ������Τ˵ۼ�����Ƥ��ޤä����ȤǤ������Τ��ᡢmcpp ��Ȥ��ˤ� gcc �� g++ �� -no-integrated-cpp �Ȥ������ץ������դ��ƸƤӽФ�ɬ�פ�����ޤ���ʣ���� makefile ��¿���� makefile ������礭�ʥ������ե����뷲��ѥ��뤹����䡢�����Υץ�����फ�� gcc ����ưŪ�˸ƤӽФ������ϡ�gcc, g++ �θƤӽФ��� shell-script ���֤������ơ����Υ��ץ����ưŪ���ղä����褦�ˤ��ʤ���Фʤ�ޤ���
+����Ū�ˤϡ�gcc, g++ ���֤���Ƥ���ǥ��쥯�ȥ�ʻ�� Linux ����Ǥ� /usr/local/gcc-3.2/bin�ˤ˼��Τ褦�� script �줾�� gcc.sh, g++.sh �Ȥ���̾�����֤��ޤ���
++#!/bin/sh +/usr/local/gcc-3.2/bin/gcc_proper -no-integrated-cpp "$@" ++
+#!/bin/sh +/usr/local/gcc-3.2/bin/g++_proper -no-integrated-cpp "$@" ++
�����ơ����Υǥ��쥯�ȥ�Ǽ��Τ褦�ˤ��ޤ���
++chmod a+x gcc.sh g++.sh +mv gcc gcc_proper +mv g++ g++_proper +ln -sf gcc.sh gcc +ln -sf g++.sh g++ ++
�ޤ���cpp ���֤���Ƥ���ǥ��쥯�ȥ�ʻ�� Linux ����Ǥ� /usr/local/gcc-3.2/lib/gcc-lib/i686-pc-linux-gnu/3.2�ˤǡ�GCC 2 �ξ���Ʊ�ͤˡ�cpp0 �θƤӽФ��� mcpp ���¹Ԥ����褦�ˤ��Ƥ����ޤ��� 3.9.5 ���ȡˡ�*1
+�������Ƥ����ȡ�gcc �� g++ ����ޤ� mcpp ���ƤӽФ��졢���θ�� cc1, cc1plus �� -fpreprocessed �Ȥ����ץ�ץ������ѤߤǤ��뤳�Ȥ����ץ������դ��ƸƤӽФ����褦�ˤʤ�ޤ���
�ʤ��������ƥ��ɸ��Ȱۤʤ�С������� GCC �ȡ��뤷�������ղ�Ū�� include directory �����꤬ɬ�פʤ��Ȥ�����ޤ�����mcpp �ǤϤ����� mcpp �Υ���ѥ�������Ȥ߹���Τǡ��̾�ϴĶ��ѿ������ꤹ��ɬ�פϤ���ޤ���
+�Ǥ���� cc1, cc1plus �Υץ�ץ�������ʬ�Ǥ��� cpplib �Υ������� mcpp �Τ�Τ��֤����������Ȥ����Ǥ�����cpplib �� cc1, cc1plus �Ȥ�����Ū�� interface ����� cpplib ��Ȥ��桼���ץ������Ȥγ���Ū�� interface ��������Ƥ��륽�����ե����뤬��碌�� 46KB �⤢�ꡢ�ȤƤ��֤��������Բ�ǽ�Ǥ����ɤ����Ƥ�������ʣ���� interface �ˤ���ɬ�פ�����ΤǤ��礦������ǰ�ʤ��ȤǤ���
+��:
+*1 configure ���� mcpp �ȡ��뤷�����ϡ�����餬��ưŪ�����ꤵ��롣
+ +�ɤ������˸����äƤ��� GCC V.3 �Ǥ�������V.3.3 �����̯��������ž�����Ƥ��ޤ��ޤ�����V.3.3 �� V.3.2 ����٤�ȡ����Τ褦�������礭���Ѥ�äƤ��ޤ���
+���ΤȤ��ơ����Ĥε���ʥ���ѥ���ˤ��٤Ƥ�ۼ����������ȤʤäƤ��ꡢ�ý����Ϥι����Τ������Ȥ��Ƥ⡢�����ץ����ν����Ϥγ�ȯ�������Ȥ��Ƥ⡢�礤�˵���Τ���Ȥ����Ǥ���
+mcpp �ΰܿ��Ǥϡ�gcc ����ɤ�ʥ��ץ�����Ϥ���Ƥ��뤫�狼��ʤ��Ȥ����Τ�����Ȥ����Ǥ����ְ�ä����ץ����⤹�٤ƥ����å�������̵�뤹��ΤǤϴ���������ޤ����Ȥꤢ���������Ф��дְ�ä��Ϥ���Ƥ��륪�ץ�����̵�뤹��褦�ˤ��ޤ�����������ʳ��Υ��ץ�����Ϥ����ȥ��顼�ˤʤ�Ϥ��Ǥ���
+����������ѹ��Ǥ⡢mcpp �ν���Υ��ץ�������ˤϻȤ��ʤ��ʤä���Τ�����ޤ���V.2.5 ����� -E ���ץ������ѻߤ���-m ���ץ����� -e �ˡ�-c �� -@compat ���ѹ����ޤ�����
+�ޤ���GCC V.3.2 �Ǥ� cpp0 �θƤӽФ��� mcpp ���֤�������Ф�����Ȥ����������٤� cc1 (cc1plus) �θƤӽФ��� mcpp �� cc1 (cc1plus) �Ȥ˿���ʬ���뤳�Ȥ�ɬ�פˤʤ�ޤ������Τ���� shell-script �� src/set_mcpp.sh ������Ѱդ��ޤ��������̤λ�������ޥ����ϣ��ģ����б����Ƥ���櫓�ˤϤ����ʤ��Τǡ�GCC �� -dM ���ץ����ν��Ϥ��礷�����Ѥ���褦�ˤ��ޤ�����*1, *2, *3
GCC V.3.4 �ǤϤ���ˡ�multi-byte character �Ϥ��٤� UTF-8 ���Ѵ����Ƥ����������褦���Ѥ��ޤ������ɥ�����Ȥˤ��ȡ�����Ū�ˤϼ��Τ褦�ˤʤäƤ��ޤ���*4
+�ֹ�ݲ��פȸ����� Unicode ���б������뤳�Ȥȹͤ�����Ĭ�������Ȥ˼ºݤ� multi-byte character ��Ȥ�ʤ������ο͡��δ֤ˤ���ޤ�����������Ĭ�� GCC �ˤ�ڤ�Ǥ��ޤä��褦�Ǥ���
+�����⡢���ͤ��ޤ���ʬ�˼�������Ƥ��ޤ��ºݤ˻ȤäƤߤ�ȡ����Τ褦�ˤʤ�ޤ���
+mcpp �� -e <encoding> ���ץ����� encoding ����ꤷ�ޤ�����GCC-specific-build �Ǥϡ�BIG5, shift-JIS, ISO2022-JP �Ǥ� <backslash> ���Ȱ��פ����ͤΥХ��Ȥ�ľ���� <backslash> ���������ƥ���ѥ���η�٤��䤤�ޤ�����������UTF-8 �ˤ��Ѵ����������� encoding �Τޤ��Ϥ��ޤ���-finput-charset ���ץ����� -e ���ץ�����Ʊ����ΤȤ��ư����ޤ�������ϼ��Τ褦����ͳ�Ǥ���*7
+��:
+
*1 ��������-dM ���ץ����ν��Ϥ�¾�Υ��ץ����ˤ�äƾ�����äƤ���ΤǤ��롣 +�����⡢�����λ�������ޥ�������Ⱦ�� undocumented �ʤ�ΤǤ��롣 +���Τ��ᡢ���ƤϤʤ��ʤ��İ��Ǥ��ʤ���
+*2 MinGW �Ǥ� symbolic link ���Ȥ��ʤ���ln -s �Ȥ������ޥ�ɤϤ��뤬�������ñ�˥��ԡ���������Τ�ΤǤ��롣�ޤ���MinGW �� GCC �Ϥ��Ȥ� cc1 �Ȥ���̾���Υե�����Ǥ��äƤ⤽�줬 shell-script �Ǥ���ȡ���ư����ݤ��롣���Τ��ᡢmcpp �� GCC-specific-build �Ǥϡ�MinGW �˸¤ä� cc1.exe �Ȥ���̾���μ¹ԥץ���������������ʤ���� cc1plus.exe �ˤ⥳�ԡ������ˡ������ơ������椫�� mcpp.exe �ޤ��� GCC �� cc1.exe �ʤ��� cc1plus.exe ��ư����褦�ˤ��Ƥ��롣
+*3 CygWIN / GCC �Ǥ� -mno-cygwin �Ȥ������ץ�����ꡢ�������ꤹ��� system include directory ���Ѥ�ꡢGCC �λ�������ޥ������Ѥ�롣���Τ��ᡢmcpp �� CygWIN GCC-specific-build �Ǥ� V.2.6.1 ����ϣ����åȤλ�������ޥ������Ѱդ���褦�ˤ�����
+*4 ��ΤȤ����� FreeBSD 6.3 �ǤϤʤ��� GCC �Τ����Ѵ��Ϥޤä���ư��ʤ���libiconv �ϥ����Ƥ���ΤǤ��뤬�� +FreeBSD 5.3, 6.2 �Ǥ⤽���Ǥ��ä���
+*5 �����Ѵ��ϥץ�ץ������ե������ǤϤʤ�������ѥ���ե������ǹԤ���褦�Ǥ��롣 +-E ���ץ����ν��Ϥ� UTF-8 �ΤޤޤǤ��롣
+*6 ��������GCC V.4.1-4.3 �Ǥϡ�-save-temps �ޤ��� -no-integrated-cpp ���ץ����� -f*-charset ���ץ�����Ʊ���˻��ꤹ��ȡ����顼�ˤʤ�Ȥ����Х������롣 +
*7 mcpp �ν��Ϥ� cc1 ���Ϥ����ˤ� -finput-charset �Ϥ������ -fexec-charset ���ץ������դ��ƤϤ����ʤ���
+ +glibc 2.4 (2006/03) �Υ�������ѥ��뤷�ơ��ץ�ץ�����������å����Ƥߤޤ����� +�����Ϥ� GCC 4.1.1 �ǡ��ץ�ץ����å��� mcpp 2.6.3 ���֤���������ΤǤ��� +�ޥ���� x86 �ϤʤΤǡ�¾�� CPU �ѤΥ����ɤϥ����å����Ƥ��ޤ���
+�����˻䤬�����å����� glibc 2.1.3 (2000/02) ���飶ǯ�Фä��С������ʤΤǡ��礭���Ѥ�ä��Ȥ�����������ޤ������ճ����Ѥ�äƤ��ʤ��Ȥ�����¿�������ޤ��� +���ΤȤ��Ƥϡ������ΥС������ˤĤ��ƻ䤬���夲�����������������줺�ˡ��ष�������뷹���ˤ���ޤ���
+ +�Ԥ�ޤ���ʸ�����ƥ��ϸ����ʤ��ʤ�ޤ�����
+ +���Υե�����ˤ� #include_next ������ޤ��� +��ǯȾ���ΥС���������٤�������Ƥ��ޤ���
+ ++catgets/config.h, +elf/tls-macros.h, +include/bits/dlfcn.h, +include/bits/ipc.h, +include/fpu_control.h, +include/limits.h, +include/net/if.h, +include/pthread.h, +include/sys/sysctl.h, +include/sys/sysinfo.h, +include/tls.h, +locale/programs/config.h, +nptl/sysdeps/pthread/aio_misc.h, +nptl/sysdeps/unix/sysv/linux/aio_misc.h, +nptl/sysdeps/unix/sysv/linux/i386/clone.S, +nptl/sysdeps/unix/sysv/linux/i386/vfork.S, +nptl/sysdeps/unix/sysv/linux/sleep.c, +sysdeps/unix/sysv/linux/ldsodefs.h, +sysdeps/unix/sysv/linux/siglist.h +
+ +���Υե������ make check �ǻȤ���ƥ����ѤΤ�ΤǤ����������ˤ� #include_next ������ޤ���
+ +sysdeps/i386/i686/tst-stack-align.h
+ +#warning �� sysvipc/sys/ipc.h �ˤ���ޤ���������˥���ѥ��뤵���Ȥ��ϥ����åפ����֥��å��ˤ���Τǡ��Ҥä����뤳�ȤϤ���ޤ���
+ +���Υե�����ˤϲ��Ѱ����ޥ��������������ޤ����������Ϥ��٤� GCC2 ����θŤ����ͤΥޥ����Ǥ��� +C99 �λ��ͤΤ�ΤϤ�������GCC3 ���ͤΤ�Τ����⸫������ޤ���
+ +elf/dl-lookup.c, +elf/dl-version.c, +include/libc-symbols.h, +include/stdio.h, +locale/loadlocale.c, +locale/programs/ld-time.c, +locale/programs/linereader.h, +locale/programs/locale.c, +locale/programs/locfile.h, +nptl/sysdeps/pthread/setxid.h, +nss/nss_files/files-XXX.c, +nss/nss_files/files-hosts.c, +sysdeps/generic/ldsodefs.h, +sysdeps/i386/fpu/bits/mathinline.h, +sysdeps/unix/sysdep.h, +sysdeps/unix/sysv/linux/i386/sysdep.h
+ +���ϥƥ����ѤΥ롼����Ǥ����������ˤ� GCC2 ���ͤβ��Ѱ����ޥ��������������ޤ���
+ +localedata/tst-ctype.c, +posix/bug-glob2.c, +posix/tst-gnuglob.c, +stdio-common/bug13.c
+ +������ºݤˤ����Υޥ�����ƤӽФ��Ȥ��ˤϡ����Ѱ��������Ĥ�ʤ��ʥ������������ʤ�����§Ū�ʸƤӽФ���������¿���ʤäƤ��ޤ��� +���μ����§Ū�ʥޥ����ƤӽФ��� 142 �ܤ�Υ������ե�����˸����ޤ��� +���Τ������ִ��ꥹ�ȤDz��Ѱ�����ľ���� ", ##" �Ȥ��� sequence �����äƤ��� ',' ���������륱�����ϡ�120 �ܤΥ������˸����ޤ���
+
���Ѱ����ޥ����� C99 �λ��ͤ�Ȥä��ۤ��� portable ���ɤ��ΤǤ�����GCC2 ���뤤�� GCC3 ���ͤβ��Ѱ����ޥ����� C99 ���ͤΤ�Τ˽�ľ���Τϡ�ɬ�������ñ�ǤϤ���ޤ��� +GCC2 ���뤤�� GCC3 ���ͤǤϼºݤΥޥ����ƤӽФ��Dz��Ѱ������ʤ���硢����ľ���Υ���ޤ���������Τǡ��ޥ����θƤӽФ����ˤ�äƤ� C99 ���ͤȤϣ��У����б����ʤ�����Ǥ��� +�ޥ�������� C99 ���ͤ˽�������硢����ޤ������ʤ��Ǥ���褦�ˤ��뤿��ˤϡ��ޥ����ƤӽФ��Τۤ����ľ��ɬ�פ�����ޤ���
+glibc 2.1.3 �ǤϤޤ������Υޥ����ο������ۤ�¿���Ϥʤ��ä��Τǡ��桼�����ܤdzΤ���ʤ��饨�ǥ����ǽ����뤳�Ȥ��Ǥ��ޤ�������glibc 2.4 �ǤϿ��������������⤽���Υޥ����θƤӽФ��Ľ꤬���������������ᡢ�桼���������뤳�Ȥ��Բ�ǽ�ˤʤ�ޤ�����
+���Τ��ᡢmcpp �Ǥ� V.2.6.3 ���� GCC-specific-build �˸¤äơ�GCC3 ���ͤβ��Ѱ����ޥ�����������ޤ����� +����� V.2.7 ����� GCC2 ���ͤΤ�Τˤ��б����ޤ����� +��������GCC2 ���ͤΤ�Τ� token-based �ʸ�§����ݤ�Υ��Ƥ���Τǡ������Ȥ��ޥ��������٤��ǤϤ���ޤ��� +GCC2 ���ͤ� GCC3 ���ͤȣ��У����б����Ƥ���Τǡ��ޥ�������� GCC3 ���ͤ˽�ľ�����Ȥ��ưפˤǤ����ޥ����ƤӽФ����ľ���ʤ��Ƥ⤹�ߤޤ��� +���Ǥ� GCC2 ���ͤǽ�Ƥ���ޥ����Ϥ����������ۤ����������餫�狼��䤹���ʤ�ޤ���*1
+GCC2 ���ͤβ��Ѱ����ޥ����� GCC3 ���ͤ˽�ľ���ˤϡ��㤨�м��Τ褦�ʤ�Τ�
+ ++#define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) ++ +
���Τ褦�ˤ��ޤ���
+ ++#define libc_hidden_proto(name, ...) hidden_proto (name, ## __VA_ARGS__) ++ +
���ʤ�����ѥ����� attrs... �� ... �ˤ����ִ��ꥹ����� attrs �� __VA_ARGS__ �ˤ��ޤ���
+ +��:
+*1 GCC2 ���ͤ���� GCC3 ���ͤβ��Ѱ����ޥ����ˤĤ��Ƥϡ�3.9.1.6, 3.9.6.3 �ȤΤ��ȡ�
+ +��������Τ���ޥ����ƤӽФ��Ϥ�����¿����488 �ܤ�Υ������ե�����˸����ޤ��� +�����ΥС���������٤Ƥ������������ޤ����� +C99 �ǥ����������ǧ���줿���Ȥ��ƶ����Ƥ���ΤǤ��礦����
+ +���Ȥ� math/bits/mathcalls.h �ˤ� 79 �Ĥ�Υ�������ޥ����ƤӽФ�������ޤ��� +�����Ȥۤ�Ʊ�ͤǤ���
+ +���Υե�����ˤ� function-like �ޥ�����̾�����ִ������ object-like �ޥ���������������ޤ���
+ +argp/argp-fmtstream.h, +hesiod/nss_hesiod/hesiod-proto.c, +intl/plural.c, +libio/iopopen.c, +nis/nss_nis/nis-hosts.c, +nss/nss_files/files-hosts.c, +nss/nss_files/files-network.c, +nss/nss_files/files-proto.c, +nss/nss_files/files-rpc.c, +nss/nss_files/files-service.c, +resolv/arpa/nameser_compat.h, +stdlib/gmp-impl.h, +string/strcoll_l.c, +sysdeps/unix/sysv/linux/clock_getres.c, +sysdeps/unix/sysv/linux/clock_gettime.c
+ +elf/link.h �ˤϼ��Τ褦�� function-like �ޥ�����̾�����ִ������ function-like �ޥ���������ޤ���
+ ++#define ELFW(type) _ElfW (ELF, __ELF_NATIVE_CLASS, type) + /* sysdeps/generic/ldsodefs.h:46 */ +#define _ElfW(e,w,t) _ElfW_1 (e, w, _##t) /* elf/link.h:32 */ +#define _ElfW_1(e,w,t) e##w##t /* elf/link.h:33 */ +#define __ELF_NATIVE_CLASS __WORDSIZE /* bits/elfclass.h:11 */ +#define __WORDSIZE 32 /* sysdeps/wordsize-32/bits/wordsize.h:19 */ +#define ELF32_ST_TYPE(val) ((val) & 0xf) /* elf/elf.h:429 */ ++ +
�嵭�Τ褦�ʥޥ������������ȡ�
+ ++ && ELFW(ST_TYPE) (sym->st_info) != STT_TLS /* elf/do-lookup.h:81 */ ++ +
���Υޥ����ƤӽФ��Ǥ� ELFW(ST_TYPE) �����Τ褦��Ÿ������Ƥ����ޤ���
+ ++ ELFW(ST_TYPE) + _ElfW(ELF, __ELF_NATIVE_CLASS, ST_TYPE) + _ElfW_1(ELF, 32, _ST_TYPE) + ELF32_ST_TYPE ++ +
�����ơ�ELF32_ST_TYPE ������� (sym->st_info) ������� ((sym->st_info) & 0xf) ��Ÿ������ޤ��� +���ʤ����_ElfW_1(ELF, 32, _ST_TYPE) �Ȥ��� function-like macro �θƤӽФ��� ELF32_ST_TYPE �Ȥ����̤� function-like macro ��̾����Ÿ�������ΤǤ���
+ +����ϣ��ĤΥޥ�������Τ褦�˽ơ�
+ ++#define ELFW( type, val) _ElfW( ELF, __ELF_NATIVE_CLASS, type, val) +#define _ElfW( e, w, t, val) _ElfW_1( e, w, _##t, val) +#define _ElfW_1( e, w, t, val) e##w##t( val) ++ +
���Τ褦�˸ƤӽФ����ۤ������狼��䤹���ʤ�ޤ��� +�������Ϥ�����������Ĺ�˸����뤫�⤷��ޤ����ؿ��ƤӽФ����ǥ�Ȥ��ƹͤ���С�������Τۤ��������Ǥ��礦��
+ ++ && ELFW(ST_TYPE, sym->st_info) != STT_TLS ++ +
���Υե�����ˤϡ��ִ��ꥹ����� 'defined' �Ȥ����ȡ�����νФƤ���ޥ��������������ޤ���*1
+ +iconv/skeleton.c, +sysdeps/generic/_G_config.h, +sysdeps/gnu/_G_config.h, +sysdeps/i386/dl-machine.h, +sysdeps/i386/i686/memset.S, +sysdeps/mach/hurd/_G_config.h, +sysdeps/posix/sysconf.c
+ +���Υե�����ǤϤ����Υޥ����� #if �ԤǻȤ��Ƥ��ޤ��� +�ޤ����嵭�Υե����뼫�Ȥ���Ǥ�Ȥ��Ƥ����礬����ޤ���
+ +elf/dl-conflict.c, +elf/dl-runtime.c, +elf/dynamic-link.h
+ +glibc 2.1.3 �� malloc/malloc.c �ˤ� HAVE_MREMAP �Ȥ�������Ϥ��ִ��ꥹ�Ȥ� 'defined' ���ФƤ���ޥ���������ޤ�������glibc 2.4 �ǤϤ���� portable �ʷ���ľ����Ƥ��ޤ��� +��������¾�Υ������ˤ��μ�Υޥ����������Ƥ��ޤ��ޤ�����
+#if �Ԥ��ִ��ꥹ����� 'defined' ���ФƤ���ޥ����ƤӽФ��η�̤ϵ��ʤǤ� undefined �Ǥ��ꡢ��������Ū�˽�������Τ� GCC �ξ�����ͤǤ��� +¾�ν����ϤǤ�����Ǥ��� portable �ʥ������ˤ��뤿��ˤϡ������Υޥ������������뤳�Ȥ�ɬ�פǤ��� +���ˤϥޥ����ƤӽФ�������ʤ���Фʤ�ޤ���*2
+���ν�����¿���ξ��ϡ�3.9.4.6 �ˤ�����ˡ�ǤǤ��ޤ��� +����������ˤϤ���Ǥ��б��Ǥ��ʤ���Τ⤢��ޤ��� +'defined MACRO' ��ɾ���������ߥˤ�äưۤʤ���Ǥ��� +�㤨�С�sysdeps/i386/dl-machine.h �ˤϼ��Τ褦�ʥޥ�����������ꡢ���Υޥ�����¾�Υե������ #if ����ǻȤ��Ƥ��ޤ���
+ ++#define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP ++ +
������������ΤǤϡ����ޤ������ޤ���
+ ++#if defined RTLD_BOOTSTRAP +#define ELF_MACHINE_NO_RELA 1 +#endif ++ +
RTLD_BOOTSTRAP �Ȥ����ޥ����� elf/rtld.c ���������ޤ��������줬 dl-machine.h ������ include �������ȸ�� include ������礬���ꡢ����ˤ�ä� 'defined RTLD_BOOTSTRAP' �η�̤���äƤ���ΤǤ��� +����� portable �˽�ľ���ˤϡ�ELF_MACHINE_NO_RELA �Ȥ����ޥ�����Ȥ����Ȥ���ơ����Τ褦�� #if �Ԥ�
+ ++#if ELF_MACHINE_NO_RELA ++ +
���Τ褦�ˤ��ޤ��� +ELF_MACHINE_NO_RELA �� #if �ԤǤ����Ȥ��Ƥ��ʤ�̵�Ѥʥޥ����ʤΤǤ���
+ ++#if defined RTLD_BOOTSTRAP ++ +
glibc �Ǥϼºݤˤ��ν����ˤʤäƤ���Ȥ�����¿������ΤǤ��������줬 ELF_MACHINE_NO_RELA ��Ȥ� undefined �ʽ����Ⱥ��ߤ��Ƥ��ޤ���
+ +��:
+*1 Linux �Ǥ� /usr/include/_G_config.h �� glibc �� sysdeps/gnu/_G_config.h �����ȡ��뤵�줿��ΤʤΤǡ������ˤ⼡�Τ褦��Ʊ���ޥ�����������롣
+ ++#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) ++ +
����Ϥ��������Ƥ����٤��Ǥ��롣
+ ++#if defined (_STATBUF_ST_BLKSIZE) +#define _G_HAVE_ST_BLKSIZE 1 +#endif ++ +
*2 mcpp V.2.7 ����� GCC-specific-build �� STD �⡼�ɤ˸¤äơ�#if �ԤΥޥ����˽ФƤ��� 'defined' �ȡ������ GCC ��Ʊ�ͤ˽�������褦�ˤ����� +���������������� bug-to-bug ���н�Ƥˤ��٤��ǤϤʤ���
+ +*.S �ե������ CPU ���Ȥ��Ѱդ���Ƥ���ΤǤ�����¿����1000 �ܤ��ޤ�⤢��ޤ���x86 ����������� CPU �ǻȤ���ΤϤ��Τ����ΰ����ˡ�
+*.S �ե�����ϥ�����֥饽������ C �� #if, #include ���� directive �䥳���Ȥ�ޥ����ߤ�������ΤǤ�����������֥饽������ C �� token sequence �η��Ƥ��ʤ��Τǡ������ C �ץ�ץ����å��ǽ������뤳�Ȥˤ�̵��������ޤ��� +�ץ�ץ����å��� C �ǻȤ�ʤ� %, $ ����ʸ���⤽�Τޤ��̤���space ��̵ͭ�⸶§�Ȥ��Ƥ��Τޤްݻ����ʤ���Фʤ�ޤ��� +����� C �Ǥϥ��顼�ˤʤ�Ȥ����顼�ˤ����ˤ��Τޤ��̤��褦�ˡ�ʸˡ�����å��������˴��¤��ʤ���Фʤ�ޤ��� +�����ơ����ΰ����� #if ��ޥ����Ͻ�����������Υ��顼�����å��⤷�ʤ���Фʤ�ʤ��ΤǤ��� +��ä����ʤ��ȤǤ��� +�����λ��ͤˤϤ��٤�����Ū�ʺ���ϲ���ʤ���GCC �� local �ʡ�¿���� undocumented �ʡ˻��ͤ�ȤäƤ���ˤ����ޤ���
+�㤨�� nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S �ˤϼ��Τ褦����ʬ������ޤ�
+ ++ .byte 8 # Return address register + # column. +#ifdef SHARED + .uleb128 7 # Augmentation value length. + .byte 0x9b # Personality: DW_EH_PE_pcrel + # + DW_EH_PE_sdata4 ++ +
'#ifdef SHARED' �� C �� directive �Ǥ������ƹԤθ�Ⱦ�� # �ǻϤޤ���ʬ�ϥ����ȤΤĤ��Τ褦�Ǥ���
+��������'# column.' �Τ褦�˹Ԥκǽ�� non-white-space-character �� # �ξ��ϡ�̵���� directive �ȹ�ʸ�塢���̤��Ĥ��ޤ���
+'# + DW_EH_PE_sdata4' �˻�äƤ� C �ǤϹ�ʸ���顼�ˤʤ��ΤǤ���
+¾�Υե�����ˤϼ��Τ褦����⤢��ޤ���
+������ '\'' �Ȥ���ʸ���� C �Ǥ� character constant ��ξü�˻Ȥ����ΤʤΤǡ����줬ñ�ȤǸ����� tokenization �Υ��顼�ˤʤ�ޤ���
+ movl 12(%esp), %eax # that `fixup' takes its parameters in regs. ++ +
����ˡ��嵭�� pthread_cond_wait.S �ˤϼ��Τ褦����ʬ������ޤ���������ϥޥ����θƤӽФ��Ǥ���
+ ++versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + GLIBC_2_3_2) ++ +
���Υޥ���������ϼ��Τ褦�ˤʤäƤ��ޤ���
+ ++# define versioned_symbol(lib, local, symbol, version) \ + versioned_symbol_1 (local, symbol, VERSION_##lib##_##version) + /* include/shlib-compat.h:65 */ +# define versioned_symbol_1(local, symbol, name) \ + default_symbol_version (local, symbol, name) + /* include/shlib-compat.h:67 */ +# define default_symbol_version(real, name, version) \ + _default_symbol_version(real, name, version) + /* include/libc-symbols.h:398 */ +# define _default_symbol_version(real, name, version) \ + .symver real, name##@##@##version + /* include/libc-symbols.h:411 */ +#define VERSION_libpthread_GLIBC_2_3_2 GLIBC_2.3.2 + /* make ����������� abi-versions.h:145 */ ++ +
����ˤ�äơ����Υޥ����Ϥ�������Ÿ����̤ˤʤ뤳�Ȥ����Ԥ���Ƥ��ޤ���
+ ++.symver __pthread_cond_wait, pthread_cond_wait@@GLIBC_2.3.2 ++ +
����� _default_symbol_version ������Ǥ��� +'@' �Ȥ���ʸ���� C �� token (pp-token) �ˤϤ���ޤ��� +�����ơ������ ## �黻�Ҥ�Ϣ�뤷�� pthread_cond_wait@@GLIBC_2.3.2 �Ȥ��� token �⤢��ޤ��� +Ϣ�������ˤ� illegal �� token ����������ޤ��� +���Υޥ����� C �� ## �黻�Ҥ�ȤäƤ��ޤ�����ʸˡ�� C �Ȥϳݤ�Υ�줿��ΤǤ���
+������֥饽�����ˤĤ��ƥץ�ץ������Τ褦�ʤ��Ȥ�ΤǤ���С���Ϥꥢ����֥��ѤΥޥ����ץ����å���Ȥ��٤��Ǥ��礦�� +C �ץ�ץ����å���Ȥ��ΤǤ���С�*.S �ǤϤʤ� *.c �Ȥ��ơ�������֥��ѤΥ����ɤ�ʸ�����ƥ���������� asm() �ʤ� __asm__() �ʤ�δؿ����Ϥ��٤��Ǥ��礦�� +libc-symbols.h �ˤϼ��Τ褦���̥С������Υޥ������Ѱդ���Ƥ��ơ�*.c �Ǥ���Ф����餬�Ȥ��ޤ��� +������ϵ��ʽ��� C �ץ�ץ����å�������ʤ������Ǥ��ޤ���
+ ++# define _default_symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@@" #version) ++ +
glibc �ˤ� asm() �� __asm()__ ��Ȥä� *.c, *.h �ե������¿������ޤ������ޤ���Ⱦ����§Ū�� *.S �ե�����ȤʤäƤ��ޤ���
+�ɤ����Ƥ⥢����֥饽������ C �ץ�ץ����å��ǽ�������ΤǤ���С�����ƥ����ȵ���Ȥ��Ƥ� # �ǤϤʤ� /* */ �� // ��Ȥ��٤��Ǥ��� +�ºݡ�glibc �Ǥ� /* */ �� // ��ȤäƤ��륽������¿���ΤǤ�����# ��ȤäƤ��륽�����⤤���Ĥ�����ޤ���
+�Ȥϸ�����glibc 2.4 �Ǥ� *.S �ե����뤬���ޤ�ˤ�¿���������� 2.1.3 �Τ������� C ��ʸˡ��̵�뤷����������¿���ʤäƤ���Τǡ�mcpp �Ǥ� V.2.6.3 ���� lang-asm �⡼�ɤǤ�ʸˡ�����å��������˴��¤�����������§�������������Ǥ���褦�ˤ��ޤ�����
+ +3.9.4.8 �˽� stdlib/isomac.c ��������Ѥ�äƤ��ޤ���
+rpcgen ��������Ѥ�äƤ��ޤ���
+����� glibc 2.4 �ˤ� scripts/versions.awk �Ȥ����ե����뤬����ޤ���������ϥץ�ץ����å��ν��Ϥι�Ƭ�� space �ο��ˤĤ��ơ�GCC �Ǥ������Ѥ��ʤ�������������Ǥ��ޤ��� +mcpp ��¾�Υץ�ץ����å���Ȥ�����ˤϡ����Υե�����Τ褦�˽������ʤ���Фʤ�ޤ���
+ ++$ diff -c versions.awk* +*** versions.awk 2006-12-13 00:59:56.000000000 +0900 +--- versions.awk.orig 2005-03-23 10:46:29.000000000 +0900 +*************** +*** 50,56 **** + } + + # This matches the beginning of a new version for the current library. +! /^ *[A-Z]/ { + if (renamed[actlib "::" $1]) + actver = renamed[actlib "::" $1]; + else if (!versions[actlib "::" $1] && $1 != "GLIBC_PRIVATE") { +--- 50,56 ---- + } + + # This matches the beginning of a new version for the current library. +! /^ [A-Za-z_]/ { + if (renamed[actlib "::" $1]) + actver = renamed[actlib "::" $1]; + else if (!versions[actlib "::" $1] && $1 != "GLIBC_PRIVATE") { +*************** +*** 65,71 **** + # This matches lines with names to be added to the current version in the + # current library. This is the only place where we print something to + # the intermediate file. +! /^ *[a-z_]/ { + sortver=actver + # Ensure GLIBC_ versions come always first + sub(/^GLIBC_/," GLIBC_",sortver) +--- 65,71 ---- + # This matches lines with names to be added to the current version in the + # current library. This is the only place where we print something to + # the intermediate file. +! /^ / { + sortver=actver + # Ensure GLIBC_ versions come always first + sub(/^GLIBC_/," GLIBC_",sortver) ++ +
-isystem, -I- ���ץ����ϻȤ��Ƥ��ޤ���
+��������-include ���ץ����϶�ü�����ˤ˻Ȥ��Ƥ��ޤ��� +include/libc-symbols.h �Ȥ����إå��ե����뤬 -include ���ץ����ˤ�ä� 7000 ��� include �����ΤǤ��� +���Υ��ץ����ϡ�����ϥ�������� #include �ǽ٤��Ԥ� makefile �˲����Ф��ƻȤ�����Τ�ΤǤ��� +���������Դ����ˤ���Τǡ��褷���ɤ����ȤǤϤ���ޤ���
+ +����� glibc ������ǤϤʤ���GCC ������Ǥ��� +GCC 2 �ǤϤ����Ĥ��ν��פʻ�������ޥ����� undocumented �Ǥ����������ξ��֤� GCC 3 �Dz�ä���ޤ����� +��������¾���� GCC 3.3 ����ϻ�������ޥ�������ü���������Τ�ȼ�äơ�undocumented �ʤ�Τ������������Ƥ��ޤ��ޤ�����
+ +debug/tst-chk1.c �ˤϴ�̯����ʬ�����ꡢ���Τ褦�˽������ʤ��� GCC �ʳ��Υץ�ץ����å��Ǥϰտ��̤�˽�������ޤ���
+ ++$ diff -cw tst-chk1.c* +*** tst-chk1.c 2007-01-11 00:31:45.000000000 +0900 +--- tst-chk1.c.orig 2005-08-23 00:12:34.000000000 +0900 +*************** +*** 113,119 **** + static int + do_test (void) + { +- int arg; + struct sigaction sa; + sa.sa_handler = handler; + sa.sa_flags = 0; +--- 113,118 ---- +*************** +*** 135,146 **** + struct A { char buf1[9]; char buf2[1]; } a; + struct wA { wchar_t buf1[9]; wchar_t buf2[1]; } wa; + + #ifdef __USE_FORTIFY_LEVEL +! arg = (int) __USE_FORTIFY_LEVEL; + #else +! arg = 0; + #endif +! printf ("Test checking routines at fortify level %d\n", arg); + + /* These ops can be done without runtime checking of object size. */ + memcpy (buf, "abcdefghij", 10); +--- 134,146 ---- + struct A { char buf1[9]; char buf2[1]; } a; + struct wA { wchar_t buf1[9]; wchar_t buf2[1]; } wa; + ++ printf ("Test checking routines at fortify level %d\n", + #ifdef __USE_FORTIFY_LEVEL +! (int) __USE_FORTIFY_LEVEL + #else +! 0 + #endif +! ); + + /* These ops can be done without runtime checking of object size. */ + memcpy (buf, "abcdefghij", 10); ++ +
���θ��������ϲ�����ů��ʤ������˸����ޤ������¤Ϥ����Ǥ� printf() ���ޥ����Ȥ����������Ƥ���ΤǤ��� +���Τ��ᡢ#ifdef ���Υǥ��쥯�ƥ��ֹԤ餷����Τ��̾�ϥޥ����ΰ����Ȥ��ư������̤ˤʤ�ޤ��� +�ޥ����ƤӽФ�����Ǥʤ���Хǥ��쥯�ƥ��ֹԤȤʤ��Τ�������˸��줿���η�̤ϡ����ʤǤ� undefined �Ǥ��� +�ǥ��쥯�ƥ��֤ν����ȥޥ���Ÿ����Ʊ�� translation phase �ǹԤ���Τǡ��ǥ��쥯�ƥ��֤���˽�������Τϡ�GCC �ξ�����ͤǤ��� +���⤽�⡢#ifdef __USE_FORTIFY_LEVEL �ν����ˤ�ޥ����ν�����ɬ�פʤΤǡ����ιԤ���˽������Ƥ��� printf() �ޥ�����Ÿ������Ȥ����Τϡ����������Ū�ʽ����Ǥ��� +C �ץ�ץ������Ȥ�����Τϡ�Ƭ���� sequentially �˽������Ƥ椯�٤���ΤʤΤǤ���
+ +glibc �� configure ����Ȥ��ˤ⡢GCC ���ü�� help message ��Ȥ���ʬ������ޤ��� +Help �� "-z relro" �Ȥ������ץ���ФƤ��뤫�ɤ������������ΤǤ��� +�ץ�ץ����å��� mcpp ��ȤäƤ���ȡ�����ϴ��Ԥ����̤ˤϤʤ�ޤ��� +������������Ǥ� glibc �Υ���ѥ���ȥƥ��Ȥ�����˹Ԥ��ޤ���
+ +�ʤ���GCC 3.2 �ޤǤ� gcc ��ư�����̵�Ѥ� -A ���ץ�����������ȥǥե���Ȥ��ղä���ޤ�������GCC 3.3 ����Ϥʤ��ʤ�ޤ�����
+ +glibc 2.4 ��ǯ���� glibc 2.1.3 ����٤�ȡ��䤬���ĤƼ��夲�� portability ������ϤۤȤ�ɲ�������Ƥ��餺���դ� portability ��礤���������������Ƥ��Ƥ��뤳�Ȥ��狼��ޤ���
+�������줿�Τϡ��Ԥ�ޤ���ʸ�����ƥ�뤬�ʤ��ʤä����ȡ�-isystem, -I- ���ץ���Ȥ��ʤ��ʤä����ȡ�GCC ��¦�� -A ���ץ���Ȥ��ʤ��ʤä����Ȥ��餤�Ǥ���
+#include_next��GCC2 ���ͤβ��Ѱ����ޥ�������Ǥ���Ѱ����� 0 �ĤΥޥ����ƤӽФ����ִ��ꥹ�Ȥ� 'defined' �Τ���ޥ�����*.S �ե����롢-include ���ץ�������������������ޤ������ޥ����ƤӽФ��Υ�������������ޤ����� +Portable �ʥ������˽�ľ�����Ȥ���ñ�ˤϤǤ��ʤ���Standard C �ȣ��У����б����ʤ��������������Τ⡢��ä����ʤȤ����Ǥ���
+����������Ϥ��٤� GCC �� local �ʻ��ͤؤΰ�¸�ˤ���ΤǤ��� +GCC �� undocumented ��ư��˰�¸���Ƥ�����ʬ��¿������ޤ��� +�絬�Ϥʥ��եȥ������Ǥ���������ʬ��ȯ������ȡ�¿���Υ������ե����뤬���߹礦���ᡢ����������ˤʤꡢ��ǯ�Ǥ�Ʊ���������Ѿ�����Ƥ椯���Ȥˤʤ꤬���Ǥ��� +�����ơ��������������⤽��˹�碌�ƽ�뤳�Ȥˤʤ�ޤ��� +���Ѱ����ޥ����� GCC2 ���ͤΤ�Τ����ǡ�C99 �λ��ͤΤ�ΤϤ����� GCC3 ���ͤΤ�Τ����Ȥ��Ƥ��ʤ����Ȥϡ����δط���üŪ��ɽ���Ƥ��ޤ��� +�ޤ������ä��������Υ������� unportable ����ʬ����ľ����Ƥ⡢¾�Υ������˸Ť������������˸�������¿�����ʤ��ʤ���������ޤ���
+�դ� GCC �Τۤ�����ͤ��ѹ����礭�ʱƶ���⤿�餹�Τǡ���ñ�ˤϤǤ��ʤ��ʤäƤ��ޤ��ޤ��� +�ɤ����������λפ��ڤä�������ɬ�פ��Ȼפ��ޤ���
+ +Linux �Ǥ� GCC �������ƥॳ��ѥ���Ǥ����˥饤�֥�꤬ glibc �Ǥ��뤿�ᡢ�����ƥ�إå��ˤ� GCC �������ꤷ�Ƥ��ʤ���ʬ���Ȥ����ɤ����ˤ���ޤ��� +���줬 compiler-independent-build �� mcpp �Τ褦��¾�ν����Ϥ�Ȥ����ξ㳲�ˤʤ�ޤ��� +��Ǥ� stddef.h ���Τ����Ĥ���ɸ��إå��ե����뤬 GCC �� version-specific �� include directory �ˤ������ä� /usr/include ��¸�ߤ��ʤ��Ȥ����ΤϤ������ʷ�٤Ǥ��ꡢmcpp �ˤȤäƤ��к���ɬ�פǤ��� +���Υ��������ǤϤ��������Ƥ���ޤ���
+Linux �Ǥ� GCC �ΥС�����Ȥ��㤨�� /usr/lib/gcc-lib/SYSTEM/VERSION/include �Ȥ��ä� include directory �������ƥ���ɲä���ޤ����������ˤ��� stddef.h, limits.h ���ϴ�̯�ʤ�ΤǤ��� +CygWIN �Ǥ�Ʊ���Ǥ��� +Mac OS X �ˤ⾯�����꤬����ޤ���
+ +�ޤ���C ��ɸ��إå��ե�����Τ��� float.h, iso646.h, stdarg.h, stdbool.h, stddef.h �Σ��Ĥ� Linux �ǤϤ��� GCC �Υǥ��쥯�ȥ�ˤ������ꡢ/usr/include �ˤ� /usr/local/include �ˤ�¸�ߤ��ޤ���Linux �Υ����ƥ�إå��Ͻ����Ϥ� GCC �Ǥ���� GCC ��ͭ�� include directory ��Ȥ���GCC �Ǥʤ���� /usr/include ������Ȥ��褦�˰����Ƥ���褦�Ǥ�����stddef.h �����ʤ��ΤǤϺ���ޤ���
+���Ȥ��äơ�GCC �ʳ��ν����Ϥ� GCC ��ͭ�� include directory ��Ȥ��褦�ˤ���ȡ����٤Ϥ��Υǥ��쥯�ȥ�ˤ��� limits.h �� GCC ��ͭ�γ�ĥ���ͤǤ��� #include_next �ˤ֤Ĥ���ޤ������Ȥ� #include_next ��������Ƥ⡢���٤� limits.h �ν���������������������꤬������ޤ������Ȥ� GCC V.3.3 �ʹߤǤ� limits.h ��������٤��������¾塢�����Ϥǻ����������Ȥ�����˽�ʤ��Ȥ���褦�ˤʤä����ᡢ¾�ν����ϤǤ� limits.h ���Ȥ��ʤ��Ȥ�����̤ˤʤäƤ��ޤ��ޤ���
+�ޤ���GCC ���Ȥ⡢���� limits.h �� #include_next �Ǥ��ԲIJ��ư��ޤ���
+�����������������Ȥ�䤳�����ΤǤ������ʤ�����ǯ��Τ��������֤���Ƥ�������ʤΤǡ������ˤޤȤ�Ƥ����ޤ���
+�ʤ�������� compiler-independent-build �� mcpp ������ˤʤ��ΤǤ��� +GCC-specific-build �Ǥ������ȯ�����ޤ���
+ +GCC �Ǥ� include directory ���̾�ϼ��Τ褦�ˤʤ�ޤ���
++/usr/local/include +/usr/lib/gcc-lib/SYSTEM/VERSION/include +/usr/include ++
�����Υǥ��쥯�ȥ꤬�夫�鲼�إ���������ޤ��� +���Σ����ܤ� GCC ��ͭ�� include directory �Ǥ������� SYSTEM ���㤨�� i386-vine-linux, i386-redhat-linux��VERSION �� 3.3.2, 3.4.3 ���Ȥʤ�ޤ���GCC ���̤ΥС������� /usr/local ���ɲå��ȡ��뤷�����Ϥ��� /usr/lib/gcc-lib �� /usr/local/lib/gcc �Ȥʤ�ޤ���C++ �Ǥ� /usr/local/include �����ˤ���ˤ����Ĥ��Υǥ��쥯�ȥ꤬�ä��ޤ���GCC V.3.*, 4.* �Ǥϼ��Τ�ΤǤ���
++/usr/include/c++/VERSION +/usr/include/c++/VERSION/SYSTEM +/usr/include/c++/VERSION/backward ++
�����Υǥ��쥯�ȥ��̾���� GCC ��ͭ�Τ�Τ˸����ޤ�����C++ ��ɸ��ǥ��쥯�ȥ�Ϥۤ���¸�ߤ��ʤ��Τǡ�¾�ν����Ϥ� /usr/include/c++/VERSION ��Ȥ���������ޤ���GCC V.2.95 �Ǥ� C++ �� include directory �ϼ��Τ�ΤǤ�����
++/usr/include/g++-3 ++
����� -I ���ץ�����Ķ��ѿ��ǻ��ꤵ�줿�ǥ��쥯�ȥ꤬�����Υꥹ�Ȥ������ɲä���ޤ���
+�ʲ��Ǥ�������狼��䤹�����뤿��� GCC V.3.3 �ʹߤǤ� C �� limits.h ���ä�¤�ޤ�����Ǥ� LONG_MAX ���������ˤȤ�ޤ���limits.h �� /usr/include �� GCC ���ѥǥ��쥯�ȥ�Σ��Ľ�ˤ���ޤ���
++#include <limits.h> ++
���ιԤ������ GCC �� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h �� include ���ޤ�������ȡ����Υե��������Ƭ��
++#ifndef _GCC_LIMITS_H_ +#define _GCC_LIMITS_H_ +#ifndef _LIBC_LIMITS_H_ +#include "syslimits.h" +#endif ++
�ȤʤäƤ���Τǡ�/usr/lib/gcc-lib/SYSTEM/VERSION/include/syslimits.h �� include ����ޤ������Υե�����ϼ��Τ褦��û����ΤǤ���
++#define _GCC_NEXT_LIMITS_H +#include_next <limits.h> +#undef _GCC_NEXT_LIMITS_H ++
���ơ������� limits.h ���Ƥ� include ����ޤ�����#include_next �ʤΤ� /usr/lib/gcc-lib/SYSTEM/VERSION/include ���åפ��� /usr/include �������������Ϥ��Ǥ���GCC �� cpp.info �ˤϼ��Τ褦�˽Ƥ���ޤ���
+This directive works like `#include' except in searching for the specified file: it starts searching the list of header file directories _after_ the directory in which the current file was found.+
�Ȥ����� GCC �Ϥʤ��� /usr/include/limits.h �ǤϤʤ� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h ��⤦���� include ���Ƥ��ޤ��ޤ���
+���٤� _GCC_LIMITS_H_ ���������Ƥ�����֤ʤΤ�
+#ifndef _GCC_LIMITS_H_ ++
�ʲ��Υ֥��å��ϥ����åפ��졢���Υ֥��å���ɾ������ޤ���
++#else +#ifdef _GCC_NEXT_LIMITS_H +#include_next <limits.h> +#endif +#endif ++
�ޤ����Ƥ� /usr/lib/gcc-lib/SYSTEM/VERSION/include/syslimits.h �ˤ��ä��ΤȤޤä���Ʊ�� #include_next <limits.h> �Ȥ����ԤǤ����ޤ� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h �������ʤ����ʬ���Ȥ� include �����Τ��Ȼפ��ȡ����٤� GCC �� /usr/include/limits.h �� include ����ΤǤ���GCC �� #include_next ��ư��ϰ���ˤ狼��ޤ���
+/usr/include/limits.h �Ǥ� <features.h> ���� include ����ޤ����ޤ������ιԤǻϤޤ�֥��å�������ޤ���
++#if !defined __GNUC__ || __GNUC__ < 2 ++
���Υ֥��å��Ǥ� <bits/wordsize.h> �� include ������ǡ�wordsize �� 32 �ӥåȤǤ��뤫 64 �ӥåȤǤ��뤫�˱����Ƶ��ʤ��ᤵ��Ƥ���Ƽ�������������褦�ˤʤäƤ��ޤ������Ȥ��� 32 �ӥåȤǤ���� LONG_MAX �ϼ��Τ褦���������ޤ���
++#define LONG_MAX 2147483647L ++
��������GCC �ǤϤ��Υ֥��å������������åפ���ޤ��������ơ����Υե����뤬����ꡢinclude ���� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h �����ޤ������Υե�����⤳��ǣ����ܤ� include ��ꡢ/usr/lib/gcc-lib/SYSTEM/VERSION/include/syslimits.h ����ꡢ���Υե�����⤳��ǽ���ä� /usr/lib/gcc-lib/SYSTEM/VERSION/limits.h �κǽ�� include �����ޤ������Υե�����Ͼ嵭����ʬ�Τ��Ȥ˳Ƽ���������������ޤ���LONG_MAX �ˤĤ��Ƥϼ��Τ褦�ˤʤäƤ��ޤ���
++#undef LONG_MAX +#define LONG_MAX __LONG_MAX__ ++
����Ǥ��Υե�����⽪���ޤ���
++#include <limits.h> ++
�ν����Ϥ���Ǥ��٤ƽ����Ǥ��� +��ɡ�LONG_MAX �� __LONG_MAX__ ���������ƥ����ޥ��ʤΤǤ���__LONG_MAX__ �ȤϤ��ä������ʤΤǤ��礦�����¤� GCC V.3.3 �ʹߤǤ� __LONG_MAX__ �䤽��¾��¿���Υޥ����������������Ƥ���ΤǤ���32 �ӥåȥ����ƥ�Ǥ� __LONG_MAX__ �� 2147483647L �Ȼ����������Ƥ��ޤ���LONG_MAX �ʳ��ε��ʤ��ᤵ��Ƥ���Ƽ�ޥ����ˤĤ��Ƥ⡢����������줿�ޥ������������Ƥ���Τǡ��������Ʊ���ۤǤ�������ʤ顢���Τ�䤳�����إå��ե������ #include_next �ν����Ϥ��ä������Τ���ʤΤǤ��礦����
+#include_next ��ư��� GCC V.2.95.3, V.3.2, V.3.4, V.4.0, V.4.1 �Ǥ� V.3.3 ��Ʊ���Ǥ������ʤ����
++#include_next <limits.h> ++
�� /usr/lib/gcc-lib/SYSTEM/VERSION/include/syslimits.h ���� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h �� include ���졢�����ˤ���Ʊ��
++#include_next <limits.h> ++
�� /usr/include/limits.h �� include ����ޤ���
++#include <limits.h> ++
�Ǥ� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h ������ include ����뤳�Ȥˤʤ�ޤ������Υե������ include ���Ƥ��̤��Ѥ�ޤ�������Ǥ��ꡢ�������ͤ�ư���äƤ��ꡢư���Ӥ��Ƥ��ޤ����Υե�����μ��Υ֥��å�������ϥ������ʬ�Ǥ���
++#else +#ifdef _GCC_NEXT_LIMITS_H +#include_next <limits.h> +#endif ++ +
�Ǥϼ��� GCC �ʳ��ν����Ϥ� Linux �Υ����ƥ�إå���Ȥ��Ȥɤ��ʤ�Ǥ��礦���� GCC ��ͭ�� include directory ��Ȥ�ʤ��ȡ�stddef.h �������Ĥ���ޤ�����ʤ� GCC �� include directory ��Ȥ��Ȥɤ��ʤ�Ǥ��礦���� stddef.h �ϸ��Ĥ���ޤ��������٤� limits.h �����������ʤ�ޤ���
++#include <limits.h> ++
���ιԤǥץ�ץ����å��� /usr/lib/gcc-lib/SYSTEM/VERSION/include/limits.h �� include ���ޤ����������� /usr/lib/gcc-lib/SYSTEM/VERSION/include/syslimits.h �� include ����ޤ��������ơ�
++#include_next <limits.h> ++
�ǥ��顼�ˤʤ�ޤ���
+�Ǥϡ��ץ�ץ����å��� #include_next �����������ɤ��ʤ�Ǥ��礦���� #include_next �������̤�˼�������Ƥ���С������� /usr/include/limits.h �� include ����ޤ��������ơ��嵭��
++#if !defined __GNUC__ || __GNUC__ < 2 ++
�ʲ��Υ֥��å����������졢LONG_MAX �����Τ褦��������졢����¾�Υޥ�����Ŭ�ڤ�������������ޤ���
++#define LONG_MAX 2147483647L ++
�����ơ�include ���� /usr/lib/gcc-lib/SYSTEM/VERSION/syslimits.h ����ꡢ���Υե����뤬����ä� /usr/lib/gcc-lib/SYSTEM/VERSION/limits.h �����ޤ�������ȡ�����
++#undef LONG_MAX +#define LONG_MAX __LONG_MAX__ ++
����Ǥ��ä���������������줿�ޥ����Ϥ��٤Ƥ��˻��ˤ���� __LONG_MAX__ ���Ȥ���̤�����̾���ˤʤäƤ��ޤ��ΤǤ���
+GCC V.3.2 �ޤǤʤ顢����Ǥ�ޤ�
++#define __LONG_MAX__ 2147483647L ++
�Ȥ����Ԥ����ä��Τǡ� +���˻��ˤ���Ƥ�⤦���١������������ľ����ޤ���������ϥ���ʽ����Ǥ�������̤��������ΤǻȤ����Ȥ��Ǥ��ޤ�������������V.3.3 �ʹߤΥإå��ե�����ǤϤ��٤Ƥ���ϫ�˽����ޤ���
+ +�ʾ��ޤȤ��ȡ�����ϼ������ˤ���ޤ���*1, *2, *3, *4
+����������κ����ˤ���Τϥ����ƥ�إå��ι����β���ʣ�����Ǥ��������ơ�#include_next �Ȥ�����ĥ�ǥ��쥯�ƥ��֤�������ؤ��Ƥ��ޤ������Υǥ��쥯�ƥ��֤����ӤϤ����¤��Ƥ��ꡢGCC �� glibc �Υ���ѥ���ȥ��ȡ���ǻȤ��Ƥ����ΤΡ����ȡ��뤵�줿�����ƥ�إå��Ǥ� limits.h �ˤ�������Ǥ������� limits.h �ν������������𤷤Ƥ���ΤǤϡ�����¸����ͳ�������ޤ���
+���ơ�Linux ����� CygWIN ��� mcpp �� compiler-independent �ǤǤϰʾ��������н褹�뤿�ᡢ�Ȥꤢ�����ϼ��Τ褦�����ꤹ��ɬ�פ�����ޤ���Compiler-independent �ǤǤϺ�����뤿�ᡢ#include_next �ϼ������ޤ���GCC ��ͭ�� include directory ���Ȥ߹��ߤޤ���
+GCC �����Ǥ� mcpp �Ǥ� GCC ��ͭ�� include directory ���Ȥ߹��ߡ�#include_next ������̤�˼��������ߴ��Τ���λ�������ޥ������������Τǡ����̤������ɬ�פ���ޤ���
+��:
+*1 ���� 3.9.9 �ε��ܤ� Linux / GCC 2.95.3, 3.2, 3.3.2, 3.4.3, 4.0.2, 4.1.1, 4.3.0 ����� CygWIN / GCC 2.95.3, 3.4.4 �dz�ǧ������ΤǤ��롣 +CygWIN / GCC 2.95.3 �Ǥ� #include_next ��ư��ϻ����̤�Ǥ��ä�����3.4.4 �Ǥ� Linux ��Ʊ���ˤʤä��� +�ޤ���CygWIN �� C++ �� include directory �� 2.95.3 �Ǥ� /usr/include/g++-3 �Ǥ��ä�����3.4.4 �Ǥ� /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++ �ʲ��ȤʤäƤ��롣
+*2 FreeBSD 6.2, 6.3 / GCC 3.4.6 �Ǥ� /usr/include �� C �Τ��٤Ƥ�ɸ��إå������ꡢGCC ��ͭ�� include directory �� C �Ǥ�¸�ߤ��ʤ���
+#include_next �⥷���ƥ�إå��ˤ�̵����
+������C++ �� include directory �� /usr/include/c++/3.4, /usr/include/c++/3.4/backward �� GCC �ΥС�������¸�ȤʤäƤ��롣
+FreeBSD �Ǥ��̥С������� GCC �ȡ��뤹��� GCC-version-specific �� include directory ������롣
+�����ˤǤ���إå��ե������¿���ϥ���ʤ�ΤǤ��롣
+��������/usr/include �Υإå��ե����뤬�������뤳�ȤϤʤ���
*3 Mac OS X Leopard / Apple-GCC 4.0.1 �Ǥ� GCC �� version-specific �� include directory �� Linux ��Ʊ�ͤǤ��롣 +#include_next �� limits.h ���ǻȤ��Ƥ��롣 +limits.h �ι����� Linux ��Ʊ�ͤǤ��뤬�������� syslimits.h �� #include_next �Ϻ������Ƥ��롣 +�ޤ���float.h, iso646.h, stdarg.h, stdbool.h, stddef.h �Ϥ��٤� /usr/include �ˤ���Τǡ�mcpp ��¦�Ǥ��к��Ϥ��ޤ�ɬ�פʤ��� +��������float.h, stdarg.h �� GCC �Ѥ� Metrowerks (for powerpc) �ѤʤΤǡ�mcpp �ǻȤ��ʤ� stdarg.h �� GCC �� version-specific �ʥǥ��쥯�ȥ���Υإå��� include ����褦�˥ǥ��쥯�ƥ��֤������float.h �Ǥϥޥ���������Ƥ����ʤ���Фʤ�ʤ��� +float.h �� x86 �� powerpc �ȤǤ����Ĥ����ͤ��ۤʤ뤳�Ȥ����ա�
+*4 MinGW / GCC 3.4.* �Ǥ� include directories �Ȥ���ͥ���̤�¾�Υ����ƥ�Ȱۤʤ뤬��GCC �� #include_next ��ư���Ʊ���Ǥ��ꡢ�ޤ�ɸ��� include directory �Ǥ��� /mingw/include �ˤ����Ĥ���ɸ��إå����ʤ��� version-specific-directory �ˤ������� CygWIN ����Ʊ���Ǥ��롣
+*5 GCC ������Ȥ��� i386 �Ǥ� float.h ��С����Τ褦�ˤʤ롣
++/* float.h */ + +#ifndef _FLOAT_H___ +#define _FLOAT_H___ + +#define FLT_ROUNDS 1 +#define FLT_RADIX 2 + +#define FLT_MANT_DIG 24 +#define DBL_MANT_DIG 53 +#define LDBL_MANT_DIG 64 + +#define FLT_DIG 6 +#define DBL_DIG 15 +#define LDBL_DIG 18 + +#define FLT_MIN_EXP (-125) +#define DBL_MIN_EXP (-1021) +#define LDBL_MIN_EXP (-16381) + +#define FLT_MIN_10_EXP (-37) +#define DBL_MIN_10_EXP (-307) +#define LDBL_MIN_10_EXP (-4931) + +#define FLT_MAX_EXP 128 +#define DBL_MAX_EXP 1024 +#define LDBL_MAX_EXP 16384 + +#define FLT_MAX_10_EXP 38 +#define DBL_MAX_10_EXP 308 +#define LDBL_MAX_10_EXP 4932 + +#define FLT_MAX 3.40282347e+38F +#define DBL_MAX 1.7976931348623157e+308 +#define LDBL_MAX 1.18973149535723176502e+4932L + +#define FLT_EPSILON 1.19209290e-7F +#define DBL_EPSILON 2.2204460492503131e-16 +#define LDBL_EPSILON 1.08420217248550443401e-19L + +#define FLT_MIN 1.17549435e-38F +#define DBL_MIN 2.2250738585072014e-308 +#define LDBL_MIN 3.36210314311209350626e-4932L + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define FLT_EVAL_METHOD 2 +#define DECIMAL_DIG 21 +#endif /* C99 */ + +#endif /* _FLOAT_H___ */ ++
mcpp �� V.2.7 ���� Mac OS X / GCC �⥵�ݡ��Ȥ���褦�ˤʤ�ޤ����������Υ����ƥ����������ʲ��ˤޤȤ�Ƥ����ޤ��� +������ɮ�ԤϤޤ����Υ����ƥ�ǤϤۤȤ�� mcpp �� firefox ���餤��������ѥ��뤷�Ƥ��ʤ��Τǡ��Τ�ʤ���ʬ��¿������ޤ��� +���Ȥ� Objective C / Objective C++ �ˤĤ��ƤϤޤä����Τ�ޤ���
+���� OS �� GCC ���ۤȤ��ͣ��Υ���ѥ���ȤʤäƤ��뤿�ᡢ���Υ����ƥ�إå��ˤ� GCC-local �ʻ��ͤؤΰ�¸�������˸����ޤ��� +�饤�֥�꤬ glibc �ǤϤʤ����������������٤� Linux �ۤɤǤϤ���ޤ��� +��������FreeBSD ����¿���褦�Ǥ��� +�⤦���������Ǥ���Ϥ����Ȼפ��ޤ���
+���Υ����ƥ�Τ⤦���Ĥ���ħ�� Apple �ˤ�äƤ��ʤ���ä���줿 GCC �������ƥॳ��ѥ���ȤʤäƤ��뤳�ȤǤ��� +Mac OS X �Υ����ƥ�إå��� Apple �Υ������Ǥϡ����̤� GCC-local �ʻ��ͤ���ष�� Apple-GCC-local �ʻ��ͤؤΰ�¸�Τۤ�����Ω���ޤ��� +��Ǥ⡢Intel-Mac �� PowerPC-Mac �������ĤΥޥ���ǥ��ݡ��Ȥ��뤿��γ�ĥ���ͤ���ħŪ�Ǥ���
+�ʤ��������Ǽ��夲��Τ� Mac OS X Leopard / Apple-GCC 4.0.1 �Ǥ���
+ +GCC-local �ʻ��ͤǤ��� #include_next ��¿���Ϥ���ޤ���/usr/include/ �� float.h, stdarg.h, varargs.h ����� /Developer/SDKs/MacOSX10.*.sdk/usr/include/ ��Ʊ̾�Υե�����ǻȤ��Ƥ��ޤ���
+�����Ϥ�����⥳��ѥ��餬 GCC �Ǥ��뤫 Metrowerks �Ǥ��뤫�ˤ�ä� include �����إå��ե������ʬ���뤿��Τ�ΤǤ���
+GCC ���� stdarg.h ����Ʊ̾�Υإå��ե����뤬 #include_next �����褦�ˤʤäƤ��ޤ���
+�ޤ���Linux ��Ʊ�ͤˡ�GCC �� version-specific �� include directory �Ǥ� limits.h �� #include_next ������ޤ�����syslimits.h �Τ�ΤϺ������ơ�����������������Ƥ��ޤ���
���Υǥ��쥯�ƥ��֤Ϲ����ܤ˻Ȥ��Ƥ��ޤ�����float.h, stdarg.h �� GCC �� Metrowerks �������ꤷ�Ƥ��ʤ��Τ�����Ǥ���
+FreeBSD ��Ʊ���Ȥ����ޤ� portable �˽��ȤϤǤ���Ϥ��Ǥ���*1
+�ޤ���/usr/include ��Υإå��ե������ GCC �Ѥ� #include_next ��ΤϥʥǤ���
+GCC �ǤϤ��Υǥ��쥯�ȥ�Τۤ��� version-specific �� include directory ���ͥ���̤��㤤����Ǥ���
+�������äơ����� #include_next �Ϸ褷�Ƽ¹Ԥ���뤳�ȤϤ���ޤ���
#warning �� /usr/include/ �� objc/, wx-2.8/wx/ ���Υǥ��쥯�ȥ�䤽����б����� /Developer/SDKs/MacOSX*.sdk/usr/include/ ��Υǥ��쥯�ȥ�˻��������ޤ���
+¿���� obsolete �ʤ��� deprecated �ʻȤ�����ե�����˴ؤ��륦�����˥Τ褦�Ǥ���
+/usr/include/c++/VERSION/backward/ ����Ӥ�����б����� /Developer/SDKs/MacOSX*.sdk/ ��� backward_warning.h �Ϥ�Ϥ� deprecated �ʥإå���Ȥ��ʤȤ��� #warning ��¹Ԥ��뤿��Υե�����Ǥ��������Υǥ��쥯�ȥ���Υإå��ե�����Ϥ��٤Ƥ��Υե������ include ����褦�ˤʤäƤ��ޤ���
+����� Linux �� FreeBSD ��Ʊ���Ǥ���
��:
+*1 mcpp �� compiler-independent-build �Ǥ����Υإå���Ȥ���ˡ�ˤĤ��Ƥϡ�3.9.9.4 ����Ӥ����� 3 �ȡ�
+ +/usr/include/sys/cdefs.h ����Ӥ�����б����� /Developer/SDKs/MacOSX*.sdk/ ���Ʊ̾�Υإå��ե�����ˤϡ����Τ褦�ʥޥ������������ޤ���
++#define __DARWIN_NO_LONG_LONG (defined(__STRICT_ANSI__) \ + && (__STDC_VERSION__-0 < 199901L) \ + && !defined(__GNUG__)) ++
�����ơ����Υޥ����� stdlib.h ���Ǽ��Τ褦�˻Ȥ��Ƥ��ޤ���
++#if __DARWIN_NO_LONG_LONG ++
���Υޥ����ϼ��Τ褦��������٤��Ǥ���*1
++#if defined(__STRICT_ANSI__) \ + && (__STDC_VERSION__-0 < 199901L) \ + && !defined(__GNUG__) +#define __DARWIN_NO_LONG_LONG 1 +#endif ++
��:
+*1 ������ͳ�� 3.9.4.6, 3.9.8.6 �ȡ�
+ +/System/Library/Frameworks/Kerberos.framework/Headers �� gssapi.h, krb5.h, profile.h �ˤϼ��Τ褦�ʴ���� #endif �Ԥ�����ޤ���
++#endif \* __KERBEROS5__ */ ++
���� \* __KERBEROS5__ */ �Ȥ����Τϥ����ȤΤ褦�Ǥ������ʤ��虜�虜����ʽ�����ȯ������Τ�������˶줷�ߤޤ��� +¾�Υ����ƥ�� GCC �ǤϤ���ˤϥ������˥��Фޤ�����Apple-GCC �ǤϤ��Ȥ� -pedantic ���Υ��ץ������դ��Ƥ⥦�����˥ϽФޤ��� +Apple-GCC �Ǥϼ��ν����ˤĤ��Ƥ⥦�����˥��Фޤ��� +C90 �����δ��Фޤ��ˤҤ����äƤ��ޤ���
++#endif __KERBEROS5__ ++ +
���Τ褦���ü�ʥޥ����λȤ����ϡ�glibc �Υ������� Linux �Υ����ƥ�إå��ʤɤǤ��Ф��и������ΤǤ������������ firefox 3.0b3pre �Υ�������ѥ��뤷���¤�Ǥϡ��������� include ����� Mac OS X �Υ����ƥ�إå���ˤϸ����ޤ���
+Apple-GCC �ˤϰ��̤� GCC �Ȱۤʤ��ȼ��λ��ͤ������Ĥ�����ޤ���
+Intel-Mac �� PowerPC-Mac �������ΥХ��ʥ�ĤΥޥ�����������뤿��Τ��
+Mac OS X �ˤ� x86 �Ѥ� ppc �Ѥ������Υ���ѥ��餬���ȡ��뤵��ޤ��������ϥͥ��ƥ��֥���ѥ��顢¾���ϥ���������ѥ���ˡ� +-arch �Ȥ����ȼ��Υ��ץ�����ꡢ-arch i386 -arch ppc �Ȥ����դ���ʣ���� CPU ����ꤹ��ȡ�gcc �����β�������ƤӽФ���ơ����줾��� CPU �ѤΥХ��ʥ꤬�������졢����ˤ����Ĥ˥Х�ɥ뤷�� universal binary �Ȥ�����Τ���������ޤ��� +�ޤ���-mmacosx-version-min= �Ȥ������ץ����⤢�ꡢ����� -isysroot �� --sysroot ���ץ����ȹ�碌�ƻȤ����Ȥǡ��Х��ʥ�θߴ������ϰϤ� Mac OS X �Τ������٤ε�С������ˤޤǹ����뤳�Ȥ��Ǥ���褦�ˤʤäƤ��ޤ��� +�����γ�ĥ���ͤ� Mac OS X �ѤΥХ��ʥꡦ�ѥå�����������ʤɤ������Ǥ���
+�ץ�ץ������˴ؤ��Ƥϡ�CPU �ˤ�äư����λ�������ޥ������㤦���Ȥ����դ�ɬ�פǤ���
+"framework" �ǥ��쥯�ȥ�
+Mac OS �ˤ� NeXTstep ����� framework �ǥ��쥯�ȥ�Ȥ�����Τ�����ޤ��� +framework �ϥإå��ե����롦�饤�֥�ꡦ�ɥ�����ȡ�����¾�ζ�ͭ������ĤˤޤȤ��ΤǤ��� +�����ˤ���إå��ե������ include ����ˤϼ��Τ褦�ʥǥ��쥯�ƥ��֤�Ȥ��ޤ���
++#include <Kerberos/Kerberos.h> ++
����ϼ��Υǥ��쥯�ƥ��֤�Ʊ�����Ƥ��ޤ���
++#include <sys/stat.h> ++
���Υǥ��쥯�ƥ��֤� include �����ΤϤɤ줫�� include directory�ʤ��ξ��� /usr/include�ˤ���� sys/stat.h �Ȥ����ե�����Ǥ�����<Kerberos/Kerberos.h> �Τۤ��Ϥ����ǤϤ���ޤ��� +Kerberos �ϥǥ��쥯�ȥ�̾�Ǥ����⤢��ޤ��� +������� /System/Library/Frameworks �Ȥ��� framework directory ����� Kerberos.framework/Headers/Kerberos.h �Ȥ����ե�����ʤΤǤ��� +�����ơ�Kerberos.framework/Headers �� Kerberos.framework/Versions/Current/Headers �ؤ� symbolic-link �ȤʤäƤ��ޤ��� +����ϺǤ�ñ�����ǡ�framework header �Τ��꤫�Ϥ�äȤ��ä�ʣ���ʤ�Τ�¿������ޤ���
+���ä������줬�����ʣ���ʥ����ƥ��ͤ����ΤǤ��礦���� +�ץ�ץ����å��� path-list �줳���Ȥ�Ω�Ƥʤ��饷���ƥ�إå��������ʤ���Фʤ�ʤ��Τǡ����ʤ����٤�������ޤ��� +�إå��ˤ�äƤϤ������餵���¿����¾�Υإå��� include �����Τ⤢��ޤ���
+"header map" �ե�����
+Mac OS X �� IDE �Ǥ��� Xcode.app �Ǥ� "header map file" �Ȥ�����Τ��Ȥ��ޤ��� +����� include �����إå��ե�����餫����������ơ����� path-list �� *.hmap �Ȥ���̾���Υե�����˵�Ͽ���Ƥ������ץ�ץ������ǤϤ���� include directory �Τ褦�˻��Ȥ���Ȥ�����ΤǤ��� +header map file ����������Τ� Xcode.app �Υġ���Ǥ���������� include directory �Τ褦���ɤ�Τ� Apple-GCC �γ�ĥ���ͤǤ���
+framework directory ��Υإå��ե�����Υ���������٤��礭���Τǡ������ڸ����뤿��˹ͤ���줿��ΤǤ��礦���� +��������header map file ���ȼ����ͤΥХ��ʥ�ե�����Ǥ��ꡢƩ������礤�Ƥ��ޤ��� +�ष�� framework directory �Τۤ�����������ñ�������ˤ��Ƥ�餤������ΤǤ���
+#endif �ԤΥȡ�����
+����Ǹ����褦�ˡ�#endif �Ԥ˲����������Ȥɤ�ʥ��ץ�����ꤵ��褦�ȡ�Apple-GCC �ϥ������˥����Ф��ޤ��� +��������δ��ФǤ���
+����������� ASCII ʸ��
+����� GCC ������ǤϤ���ޤ���framework header �Ǥϥ�������� ISO-8859-* (?) �� copyright mark (0xA9) ������ ASCII ʸ�������Ф��лȤ��Ƥ��ޤ��� +����ϥ�������Ȥϸ�����multibyte character ��Ȥ��Ķ��Ǥ����ǤǤ��� +ʸ���� encoding �˴ؤ���ռ����ϻ��äƤ�餤������ΤǤ��� +���μ��ʸ���� Linux �� /usr/include ���Ǥ���˸����ޤ�����Mac OS �� framework header �ˤ��ä�¿���褦�Ǥ���
+firefox �� developing version �Ǥ��� 3.0b3pre (2008/01) ���ʤ�� 3.0-beta3-prerelease �Υ�������Linux/x86 + GCC 4.1.2 ����� Max OS X + GCC 4.0.1 �ǥץ�ץ����å��� mcpp V.2.7 ���֤������ƥ���ѥ��뤷�Ƥߤޤ����� +mcpp �� -K ���ץ����Υƥ��Ȥ��ͤơ����٤� -Kv ���ץ������դ��Ƽ¹Ԥ������ν��Ϥ� cc1 (cc1plus) ���Ϥ��Ƥ��ޤ��� +���η�̡�����ѥ��뤬����˽�λ����firefox �ΥХ��ʥ꤬���������Τ�Τ���뤳�Ȥ��Ǥ��ޤ�����*1
+firefox �Υ������Υץ�ץ�������� portability �����ΤȤ��ƤϤ��ʤ�⤤��ΤǤ��� +glibc �Υ������ˤ褯������褦�� GCC-local �ʻ��ͤؤΰ�¸�Ϥ��ޤ긫���ޤ��� +Linux �� Mac OS X �� GCC��Windows �� Visual C ������ʥ������åȤȤ��Ƥ�������Τ��ȤϤ���ޤ���
+�Ȥϸ������ץ�ץ������� portability ������� GCC �� Visual C �����̤�Ф���櫓�Ǥ⤢��ޤ��� +�ʲ��˶���Ū�˸�Ƥ���Ƥߤޤ��� +�ʤ���GCC ������ˤĤ��ƤϽ�ʣ���뤿�ᡢ�����Ǥ��������ޤ��� +3.9.4, 3.9.8 ���Ȥ��Ƥ��������� +firefox �����椹�뤿�� glibc �Ф��а����礤�˽Ф��Ƥ��ޤ�����glibc �ˤĤ��ƤΥ����Ȥ⤳���Υ��������ˤ���ޤ���*2
+��:
+*1 �������� mozilla.org �� CVS ��ݥ��ȥ꤫�� checkout ������ΤǤ��롣 +�����ѥ��뤷�����Ĥ�ư���� mcpp �� -K ���ץ�����ƥ��Ȥ��뤿��Ǥ��ä��� +���Υ��ץ����� Taras Glek ����Ƥˤ���ΤǤ��뤬����� mozilla project �� C/C++ �������� refactoring �˼���Ȥ�Ǥ���Τǡ�mcpp �κ�Ԥ� firefox �Υ������Υ��ץ����Υƥ��Ȥ˻Ȥä��ΤǤ��롣 +-K (-Kv) ���ץ����ˤĤ��Ƥ� 2.4 �ȡ�
+*2 firefox �Υ����ǥ��������ɥ饤��ϼ��ΤȤ����ˤ��롣
+�����������ƤϤ��ʤ�Ť���ΤǤ��롣
+portable-cpp
glibc �Υ������ǻ����Ȥ��Ƥ��뼡�Τ褦�� GCC-local �ʻ��ͤϡ�firefox �Υ������ˤϸ����ޤ��� +��������Linux ��ǥ���ѥ��뤹����ϡ������ƥ�إå��� GCC2 ���ͤβ��Ѱ����ޥ����ʤɤ��ФƤ��ޤ�����������̤Ǥ���
+ +���Τ�Τ� glibc �Ǥ�Ƕ�ΥС������ǤϻȤ��ʤ��ʤäƤ����ΤǤ�����firefox �Ǥ�Ȥ��Ƥ��ޤ���
+��������#include_next �����ϣ��ĤΥǥ��쥯�ȥ�˸¤äƤ�������ޤ��� +����� configure �ˤ�ä���������� config/system_wrappers �Ȥ����ǥ��쥯�ȥ�Ǥ��� +����������������ΤϤ��٤�Ʊ�������� 900 �ܤΥإå��ե�����Ǥ��� +�㤨�� stdio.h �ϼ��Τ褦�ˤʤäƤ��ޤ���
++#pragma GCC system_header +#pragma GCC visibility push(default) +#include_next <stdio.h> +#pragma GCC visibility pop ++
����� GCC 4.* �� #pragma GCC visibility * �ε�ǽ�����Ѥ��뤿��Τ�ΤǤ��� +�����ǡ�config/gcc_hidden.h �Ȥ����ե����뤬����ޤ��� +����ϼ��Τ褦�ʤ�Τǡ����줬¿���� translation unit �� -include ���ץ����ˤ�ä���Ƭ���ɤ߹��ޤ�ޤ���
++#pragma GCC visibility push(hidden) ++
system_wrappers �ǥ��쥯�ȥ�Ϻ�ͥ��� include �ǥ��쥯�ȥ�Ǥʤ���Фʤ�ʤ��Τǡ���˺ǽ�� -I ���ץ����ǻ��ꤷ�ʤ���Фʤ�ʤ��Ȥ����Τ����դ��٤����Ǥ��������� #include_next �λȤ����ϴ����Ǥ��ꡢ�ä�����Ϥʤ��Ȼפ��ޤ���
+������nsprpub �ǥ��쥯�ȥ�Ǥ� -include gcc_hidden.h ������� -fvisibility=hidden ���ץ�����ꤵ����礬���Ф��Ф���ޤ��������ξ��� system_wrappers �Υإå��ե�����ϻȤ��ޤ��� +���Υǥ��쥯�ȥ�Ϥޤ���������Ƥ��ʤ��褦�Ǥ���
+ +��Ω�ĤΤ� C99 ����ꤻ���� C99 �λ��ͤ�Ȥ���ΤǤ��� +GCC �Ǥϥ������ե�����̾�� *.c ���ȥǥե���ȤǤ� gnu89 �Ȥ������ͤ��Ȥ��ޤ���������� C90 �ˤ����Ĥ��� C99 ���ͤ� GCC �ȼ��λ��ͤ�ä�������Ū�ʤ�ΤǤ��� +firefox �Υ������ˤϡ���������Ѥ��Ƽ��Τ褦�� C99 �λ��ͤ���ۤΤ����˻ȤäƤ����Τ�����ޤ���
+�ޥ����ƤӽФ��Υ������
+Linux �Υ����ƥ�إå����̤Ȥ���С�firefox ���ȤΥ������ǤΥ�������Ϥ鷺���Ǥ������ޤ����Σ��ܤΥե�����ˤ���ޤ��� +����������ºݤ˻Ȥ��Ƥ���Τ� NS_ENSURE_TRUE �Ȥ������ĤΥޥ��������Ǥ���
+layout/style/nsHTMLStyleSheet.cpp, layout/generic/nsObjectFrame.cpp, intl/uconv/src/nsGREResProperties.cpp
+�ޤ���gfx/cairo/cairo/src �μ��Υե�����ˤ⤢��ޤ��� +�����ºݤˤ� slim_hidden_ulp2 �Ȥ������ĤΥޥ��������Ǥ���
+cairoint.h, cairo-font-face.c, cairo-font-options.c, cairo-ft-font.c, cairo-ft-private.h, cairo-image-surface.c, cairo-matrix.c, cairo-matrix.c, cairo-pattern.c, cairo-scaled-font.c, cairo-surface.c, cairo-xlib-surface.c, cairo.c
+�����Υ�������� Linux �ǤϻȤ��ޤ�����Mac OS X �ǤϻȤ��ޤ��� +������ˤ��Ƥ⡢�ä�ʶ��路����ΤǤϤ���ޤ���
+C90 �ε����Ķ���� translation limits
+identifier ��Ĺ����#include �Υͥ��ȡ��ޥ�������ο��ʤɤ� C90 �κ����ݾڸ��٤�Ķ�����礬���Ф��Ф���ޤ���
+31 �Х��Ȥ�Ķ����Ĺ�� identifier �Ϥ��Ȥ� gfx/cairo/cairo/src/ ��¿�������ޤ���
+#include �Υͥ��Ȥ� 8 ��٥��Ķ�����ꡢ�ޥ�������� 1024 �Ĥ�Ķ������⤢��ޤ�����Linux �� Mac OS X �Ǥϥ����ƥ�إå������Ǥ��θ��ݤ����Ф��е�����ΤǤ��ʤ��Ǥ��礦��
C �Υ������Ǥ���ˤ⤫����餺 // �����Ȥ�ȤäƤ�����
+�Ȥ��ɤ������ޤ��� +����Ͼ嵭�� �����ɥ饤�� ���ػߤ��Ƥ����ΤǤ��������ޤϤۤȤ������Ϥʤ��Ǥ��礦��
+�����λ��ͤ� Visual C 2005, 2008 �Ǥ�Ȥ��ޤ��� +GCC �Ǥ� -std=c99 �Ȥ������ץ������Τǡ������Ȥ������Ȥ����Ǥ��� +��������Visual C �ˤϵ��ʤΥС���������ꤹ�륪�ץ����Ϥʤ��Τǡ����ۤΤ����˻Ȥ���������ޤ��� +�������äơ����ۤΤ����� C99 �λ��ͤ�Ȥ����ȤˤĤ��Ƥϡ����פʽ����Ϥθ����Ǥ� firefox �Υ��������դ�뤳�ȤϤǤ��ޤ���*1
+�Ȥ����ǡ����ۤΤ����� C99 ���ͤ�ȤäƤ��ʤ��顢���Ѱ����ޥ����Ϥʤ����Ȥ��Ƥ��ޤ��� +Visual C �Ǥ� 2005 �ǻȤ���褦�ˤʤä��ΤǤ�����2003 �ޤǤϻȤ��ʤ��ä��Τǡ��Ƥ����ΤǤ��礦����
+��:
+*1 C++ �Ǥ� GCC �� "gnu++98" �Ȥ������ͤ��ǥե���ȤǤ��롣 +����� C++98 + GCC extensions �Ȥ���Ƥ��뤬���ºݤˤ� C99 �λ��ͤ����ߤ��Ƥ��롣 +������Visual C �� C �Ǥ� C90��C++ �Ǥ� C++98 �˽��Ȥ���Ƥ��뤬���ºݤˤϤɤ���� C99 ���ͤ��ȼ��λ��ͤ����ߤ��Ƥ��ꡢVisual C 2005, 2008 �ǤϤ��Ȥˤ����Ǥ��롣 +���ʤ����GCC �� Visual C ������ʤ��ȼ����ͤ����ߤ��Ƥ���ΤǤ��롣 +�Ȥ�櫓 Visual C �ϵ��ʤΥС����������Ǥ��ʤ��Τ�����Ȥ����Ǥ��롣
+ +Function-like �ޥ�����̾�����ִ������ object-like �ޥ����������¾�Υץ������ˤ�褯�������ΤǤ��� +firefox �Υ������ˤ⤢�ޤ�¿���Ϥ���ޤ������ΤȤ����˸����ޤ���
+content/base/src/nsTextFragment.h, +modules/libimg/png/mozpngconf.h, +modules/libjar/zipstub.h, +modules/libpr0n/src/imgLoader.h, +nsprpub/pr/include/obsolete/protypes.h, +nsprpub/pr/include/private/primpl.h, +nsprpub/pr/include/prtypes.h, +parser/expat/lib/xmlparse.c, +security/nss/lib/jar/jarver.c +security/nss/lib/util/secport.h, +xpcom/glue/nsISupportsImpl.h + +�ޤ���firefox �� make ���뤳�Ȥ�¿���Υإå��ե�����ؤΥ����ȯ�Ķ��ѤΥǥ��쥯�ȥ�˺��졢������ firefox �γ�ȯ�Ķ��ȡ��뤹��� /usr/include/firefox-VERSION/ �����äƤ����ޤ�����������ˤϾ嵭�Υե�����ؤΥ���ܥ�å���������Ĥ�����ޤ��� +configure �ˤ�ä���������� mozilla-config.h �ˤ⤳�μ�Υޥ������������ޤ���
+�����Ϥ�Ϥ� function-like �ޥ����Ȥ��ƽ��ۤ��������������狼��䤹���ʤ�ޤ��� +�ºݡ�firefox �Υ������ˤ⤽�ν�����¿������ޤ��� +�ͤˤ�äƽ������ۤʤ�ΤǤ��礦��������ˤĤ��Ƥϥ����ǥ��������ɥ饤�����ۤ����ɤ������Ǥ���
+ +glibc �ǻ��˸������ִ��ꥹ����� 'defined' �Ȥ����ȡ�����νФƤ���ޥ�������firefox �ˤ⣱�Ĥ�������ޤ���
+modules/oji/src/nsJVMConfigManagerUnix.cpp +�Ȥ����ե�����Ǥϼ��Τ褦�ʥޥ�����������ơ� +
+#define NS_COMPILER_GNUC3 defined(__GXX_ABI_VERSION) && \ + (__GXX_ABI_VERSION >= 102) /* G++ V3 ABI */ ++��ʬ���Ȥ���Ǽ��Τ褦�˻ȤäƤ��ޤ��� +
+#if (NS_COMPILER_GNUC3) ++
���Υޥ������ѻߤ��ơ�#if �Ԥϼ��Τ褦�˲����٤��Ǥ���
++#if defined(__GXX_ABI_VERSION) && (__GXX_ABI_VERSION >= 102) /* G++ V3 ABI */ ++
���Υե����뤬 GCC �Ǥ�������ѥ��뤵��ʤ���Τ��Ȥϸ����������Ϥθ����ͤ����Ѥ���Τ��ɤ����ȤǤϤ���ޤ���*1
+��:
+*1 mcpp �� V.2.7 ����� GCC-specific-build �Ǥ� #if �ԤΥޥ����˽ФƤ��� 'defined' �� GCC ��Ʊ�ͤ˽�������褦�ˤ����� +���������������˥��Ф�Τǡ����������������ۤ����ɤ���
+ +jpeg �ǥ��쥯�ȥ����μ��Υե�����ˤϡ����� #endif �Ԥ˥����Ȥ������ȥޡ����ʤ��˽�Ƥ���Ԥ�����ޤ��� +�������Ƕ�Υ��ץǡ��Ȥ�ȯ��������ΤǤ���
++jmorecfg.h, jconfig.h, jdapimin.c, jdcolor.c, jdmaster.c ++
���ν����� 1990 ǯ����椴���ޤǤ� UNIX �ϤΥ��եȥ������˸����ޤ����������ޤǤϤܾۤü����Ƥ����ΤǤ��� +���� glibc �������Ǥ�����Ȥ��Ƥ��ޤ��� +�������� GCC �⤳��ˤϥ������˥�Ф��ޤ��� +�������������Υ������Ϥ���ʤ��ȤˤϤ����ޤ��ʤ��Τ褦�Ǥ��� +Apple-GCC �ϥ������˥�Ф��ޤ�������� Mac OS ��ǥ��ǥ��åȤ��줿��ΤʤΤǤ��礦����
+ +������֥饽������ *.s (*.asm) �Ȥ���̾���ˤʤäƤ��ơ���ˤϥޥ������Ȥ��Ƥ����Τ⤢��ޤ������ץ�ץ����å����ƤӽФ���뤳�Ȥϸ�§�Ȥ��Ƥ���ޤ���
+��������Mac OS X / ppc �Ǥϣ��Ĥ����㳰�����ꡢxpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_rhapsody.s �ǥץ�ץ����å����ƤӽФ���ޤ��� +���Υե�����ˤϤ��ä����Ԥ� #if �֥��å������Ĥ��뤫��Ǥ��������ȤʤäƤ�ɬ�פʤ��Ȼפ���֥��å��Ǥ���
+ +firefox �Υ���ѥ���Ǥ� configure �� mozilla-config.h �Ȥ����إå��ե����뤬��������ޤ�������Ⱦ�Υ������Υ���ѥ���Ǥ��Υإå��� -include ���ץ����ǻ��ꤷ�Ƥ��ޤ��� +config/gcc_hidden.h �ˤĤ��Ƥ�Ʊ�ͤǤ��� +�ʤ�������������Ƭ�� #include ���ʤ��ΤǤ��礦����
+ +�ޥ������ۤäƺ��������뤳�Ȥ����ˤ���ޤ���
+firefox �� make �Ǥ�¿���ξ�� -DZLIB_INTERNAL �Ȥ������ץ�����ղä���� gcc (c++) ���ƤӽФ���ޤ��� +���ʤ����ZLIB_INTERNAL �� 1 ���������ޤ��� +�Ȥ��������Υޥ����� modules/zlib/src/ �β��ܤ��Υ�������
++#define ZLIB_INTERNAL ++
�� 0 �ĤΥȡ�������������Ƥ���ΤǤ��� +�����ơ����Τ褦�˻Ȥ��Ƥ��ޤ���
++# ifdef ZLIB_INTERNAL ++
���ξ��ϼ³��Ϥ���ޤ����ޥ����������äƤ���Τϴ������ޤ��� +���֤� Makefile �Υ��ץ����Τۤ���;�פʤΤǤ��礦��
+xpcom/build/nsXPCOMPrivate.h �Ǥ� MAXPATHLEN �Ȥ����ޥ���������� /usr/include/sys/param.h �Ȱۤʤ�Ȥ������꤬����ޤ��� +����ϴ�Ϣ����إå��ե�����ˤ�ä� /usr/include/sys/param.h �� include �����ꤷ�ʤ��ä�����ꤷ�Ƥ��ʤ�����Ǥ��� +�إå��ե������������ɬ�פǤ���
+Mac OS X �Ǥ� netwerk/dns/src/nsIDNKitInterface.h �� /usr/include/assert.h ��������줿 assert �ޥ��������������ޤ��� +����� #undef assert ����˽٤��Ǥ���
+Mac OS X �Ǥ� modules/libreg/src/VerReg.c �� VR_FILE_SEP �Ȥ����ޥ����δ�̯����������������ޤ���
++#if defined(XP_MAC) || defined(XP_MACOSX) +#define VR_FILE_SEP ':' +#endif +#ifdef XP_UNIX +#define VR_FILE_SEP '/' +#endif ++
Mac OS X �Ǥ� configure �� XP_MACOSX �� XP_UNIX ���������������뤫��Ǥ��� +�տ�Ū���������Τ褦�˸����ޤ�����ʶ��路���Τǡ�XP_UNIX ��ͥ�褹�뤳�Ȥ��狼��褦�˼��Τ褦�˽��ۤ����ɤ��Ǥ��礦��
++#ifdef XP_UNIX +#define VR_FILE_SEP '/' +#elif defined(XP_MAC) || defined(XP_MACOSX) +#define VR_FILE_SEP ':' +#endif ++
���Υե�����ˤϿ�ɴ�ʾ�ˤ����Ĺ��ʥ����Ȥ�����ޤ���
+extensions/universalchardet/src/base/Big5Freq.tab, extensions/universalchardet/src/base/EUCKRFreq.tab,intl/unicharutil/src/ignorables_abjadpoints.x-ccmap, layout/generic/punct_marks.ccmap
+���Ȥ� intl/uconv/ucv*/ �Ȥ����ǥ��쥯�ȥ�ˤ�Ĺ��ʥ����Ȥ���ĥե����뤬¿������ޤ��� +��ˤϣ��ĤΥ����Ȥ� 8000 �Ԥ�Ķ�����ΤޤǤ���ޤ��� +�����Ϥ��٤� *.uf, *.ut �Ȥ���̾���ˤʤäƤ��ޤ��� +������� unicode �ȥ������γƼ� encoding �Ȥδ֤� mapping table �Τ褦�ǡ��ġ���ˤ�äƼ�ư����������ΤǤ��� +C/C++ �Υ������ˤϸ����ޤ���C++ �Υ��������� include ����ޤ��� +�����ȤϤ����Υɥ�����Ȥ�¾�Υġ���Τ����ɽ�Τ褦�Ǥ���
+Ĺ��ʥɥ�����Ȥ�ɽ���ȤȤ��ƥ�������˴ޤ��Τϡ��������ʤ�ΤǤ��礦���� +�������ĥ�˴ޤ��Ȥ��Ƥ⡢�������Ȥ��̤Υե������ʬΥ���٤��Ǥ��礦��
+�ʾ�Υե�����Ϥ������ Linux �ǤϻȤ��ޤ�����Mac OS X �ǤϻȤ��ޤ��� +¾���� Mac OS X �Ǥ� framework �ǥ��쥯�ȥ���Υ����ƥ�إå������Ф��лȤ��ޤ�����������ˤϥ����Ȥ���Ⱦ�����Ƥ����̯�ʥե����뤬���������ޤ���
+ +firefox �Υ������β��ԥ����ɤ� [LF] �Ǥ�����[CR][LF] �ιԤ����������äƤ���ե����뤬���ܤ���ޤ��� +�����Ϥ������û���֥��å��ǡ��������˥ѥå�������������ˡ�������ʬ���� [CR][LF] �ˤʤäƤ��ޤä���ΤΤ褦�Ǥ��� +�������� Windows ����Խ�������ϡ����ԥ������Ѵ��ġ���ǥ����å����٤��Ǥ��礦��
+Visual C++ 2003, 2005, 2008 �Ǥ����Ĥ��Υ���ץ�ץ������Υץ�ץ������� mcpp ��ȤäƤߤޤ��������Υ����ƥ�Υ����ƥ�إå��ˤϡ��ץ�ץ�������θߴ���������Ȥʤ�褦�ʤ�ΤϤ������ʤ��褦�Ǥ������Τ褦�ʤ�ΤϤ���ޤ�����������¾�ν����ϤǤ⤷�Ф��и������Τǡ��ä�����Ȥʤ��ΤǤϤ���ޤ���
+Linux �Υ����ƥ�إå��� glibc �ˤ� GCC local �ʻ��ͤ����Ф��лȤ��Ƥ��ޤ�����Visual C++ �Υ����ƥ�إå��ˤ� Visual C++ local �ʽ����Ϥ��ޤ긫���ޤ���
+ +��������Visual C++ �ˤϣ��Ĥ����Ȥ�Ǥ�ʤ��ޥ���������ޤ���Visual C++ 2003 �� Vc7/PlatformSDK/Include/wtypes.h �ˤϼ��Τ褦�ʥޥ������������ޤ���*1
++#define _VARIANT_BOOL /##/ ++
�����ơ�Vc7/PlatformSDK/Include/ �� oaidl.h, propidl.h �Ǽ��Τ褦�˻Ȥ��Ƥ��ޤ���
++_VARIANT_BOOL bool; ++
����Ϥ��ä������Ǥ��礦����
+����� _VARIANT_BOOL �� // ��Ÿ������ơ����η�̡����ιԤ������ȥ����Ȥ���뤳�Ȥ���Ԥ��Ƥ����ΤΤ褦�Ǥ��������ơ��ºݤ� Visual C �� cl.exe �ǤϤ����ʤäƤ��ޤ��ޤ���
��������// �ϥȡ����� (preprocessing-token) �ǤϤ���ޤ��ޤ����ޥ����������Ÿ���ϡ����������ȡ������ʬ�쥳���Ȥ����ĤΥ��ڡ������Ѵ����줿���ȤΥե������ǽ���������ΤǤ����������äơ��ޥ����ˤ�äƥ����Ȥ��������뤳�ȤϷ褷�ƤǤ��ʤ��ΤǤ������Υޥ����� // ��Ÿ�����줿�Ȥ����ǡ�// ��ͭ���� preprocessing-token �ǤϤʤ��ΤǷ�̤� undefined �Ȥʤ�Ϥ��Τ�ΤǤ���
+mcpp �Ǥ����Υإå��ե������Ȥ�����ˤϡ����Υޥ���������ȥ����Ȥ��������ꤢ�� _VARIANT_BOOL �����ΤȤ����Τ褦�˽����ʤ���Фʤ�ޤ���
++#if !__STDC__ && (_MSC_VER <= 1000) + _VARIANT_BOOL bool; +#endif ++
Visual C 5.0 �ʹߤΥС�������Ȥ�ʤ��ΤǤ���С����ιԤϼ��Τ褦�������˥����ȥ����Ȥ��Ƥ��ޤ��ޤ���
++// _VARIANT_BOOL bool; ++
���Υޥ����������Ǥ���������ʾ������ʤΤϡ�������ȤȤ��ƽ������Ƥ��ޤ� Visual C / cl.exe �Υץ�ץ������μ����Ǥ���������ˤϡ����Υץ�ץ����å��μ��Τ褦�ʿ�������꤬Ϫ�褷�Ƥ��ޤ���
+�����餯��cl.exe �Υץ�ץ����å������˸Ť����ɤ��餫�ȸ�����ʸ���١����Υץ�ץ����å��Υ������ˤ��Ƥ���ΤǤ��礦���������ʬŪ�˼��ä��ʤ���С�����åפ��֤��Ƥ��Ƥ��뤳�Ȥ���¬����ޤ���
+�����������˸Ť��ץ�����¤����äƤ���ȿ�¬�����ץ�ץ����å���¿������ޤ���3.9 �Ǹ��� GCC 2 / cpp �⤽�Σ��ĤǤ������������ץ�ץ����å��Ǥϡ���ʬŪ�˼��ä���вä���ۤɥץ�����¤�������㥴���㤷�Ƥ���Τǡ���������ɤ��Ƥ⤢��Ȥ������ʼ���Ƭ�Ǥ��Ȥʤ�ޤ����Ť���������ΤƤơ���ᤫ���ľ���ʤ��¤ꡢ���ä��ꤷ���ץ�ץ����å��ˤϤʤ�ʤ��Ȼפ��ޤ���
+GCC 3 / cpp �Ǥϥ���������������ľ����ơ�GCC 2 �Ȥ��̤Υץ�ץ����å��Ȥʤ�ޤ�����mcpp �⡢DECUS cpp �Ȥ����Ť��ץ�ץ����å��Υ����������ȯ���ʤ��顢��ȯ���Ƥޤ�ʤ�����Ū�˽�ľ���줿��ΤǤ���
+��:
+*1 Visual C++ 2005 express edition �ˤ� Platform SDK �ϴޤޤ�Ƥ��ʤ�����"Platform SDK for Windows 2003" �����������ɤ��ƻȤ����Ȥ��Ǥ��롣���� PlatformSDK/Include �ǥ��쥯�ȥ�� wtypes.h, oaidl.h, propidl.h �Ǥ⡢���Υޥ�����Ʊ���Ǥ��롣
+Visual C++ 2008 express edition �� Microsoft SDKs/Windows/v6.0A/Include �ǥ��쥯�ȥ��Ʊ̾�Υإå��ե�����Ǥ�Ʊ�ͤǤ��롣
�⤦��Ĥ�����ϡ�Visual C++ 2008 �Υ����ƥ�إå��Ǥϥޥ���̾�� '$' ��Ȥ����������������������ȤǤ��� +����� Visual C++ 2005 �ޤǤˤ�ʤ��Ϥ���ޤ���Ǥ��������㳰Ū�ʤ�ΤˤȤɤޤäƤ��ޤ����� +��������2008 �ǤϤ��������˽ФƤ��Ƥ��ޤ���
+�Ǥ���Ω�ĤΤ� Microsoft Visual Studio 9.0/VC/include/sal.h �Ȥ����إå��Ǥ��� +����� Visual C++ �� SAL (standard source code annotation language) �ʤ��Τ�����˵��Ҥ��뤿��Υޥ�����������Ƥ����ΤǤ��� +�����Ǥ� '$' ��ޤ�̾�������̤˻Ȥ��Ƥ��ޤ��� +���Υإå���¿����ɸ��إå��ե����뤫�� Microsoft Visual Studio 9.0/VC/include/crtdefs.h �Ȥ����إå���𤷤� #include ����ޤ��� +�������äơ�¿���Υ������Υ���ѥ���ǤϤ����Υޥ������Τ�ʤ������˻Ȥ��뤳�Ȥˤʤ�ޤ���
+-Za ���ץ������դ��� cl�ʥ���ѥ���ˤ�ư����ȡ�SAL ��̵���ˤʤꡢsal.h �� '$' ��ޤ�̾���Ϥ��٤ƾä���褦�ˤϤʤäƤ��ޤ������ʤ������̾����ɬ�פʤΤ�����˶줷�ߤޤ��� +GCC �Ǥ� identifier �� '$' ���Ȥ���Τ��ǥե���ȤˤʤäƤ��ޤ������ºݤˤϻȤ��Ƥ�����ϤۤȤ�ɸ��ݤ��ʤ��ʤäƤ��ޤ���
+Microsoft SDKs/Windows/v6.0A/Include �ǥ��쥯�ȥ�ˤ⤳�μ��̾������ĥإå��ե����뤬����ޤ��� +specstrings*.h �Ȥ����إå��Ǥ��� +�����Υإå��� WinDef.h ��𤷤� Windows.h ���� include ����ޤ������������ -Za ���ץ�������ꤷ�Ƥ� '$' ���ä���褦�ˤϽ�Ƥ��餺��ñ�˥��顼�ˤʤ�����Ǥ��� +�������äơ�Windows.h �� include ���륽������ -Za ���ץ����ǥ���ѥ��뤹�뤳�ȤϤǤ��ޤ���
+�ø���Υץ�ץ��������ͤ���줳���˽櫓�ˤϤ椭�ޤ���cpp-test.html �� Standard C �Υץ�ץ������ˤĤ��ƾܤ��������Ƥ���Τǡ���������ɤ�Ǥ���������mcpp �γƼ�⡼�ɤ�ư����ͤˤĤ��Ƥϡ� 2.1 �Ƥ��������������Ǥ� Standard C �ǽ���������Ȥ���Ƥ����Τ�ޤ�ơ��ץ�ץ������μ��դΤ����Ĥ��λ��ͤ�Ҥ٤ޤ�������ˤ��ޤ��ʽ�����������ͤˤĤ��Ƥϡ�5 ���ǥ�å������˽Ƥ���ޤ���
+mcpp ��λ���˿ƥץ��������֤��ͤ� internal.H �Ȥ����إå����������Ƥ��ޤ������顼���ʤ��ä����� 0 ���֤������顼�����ä����� errno != 0 �ʤ� errno �� errno == 0 �ʤ� 1 ���֤��ޤ���
+#include directive �� include ����ե�����ϼ��ν���ǥ���������ޤ���
+-I- (GCC �Ǥ� -nostdinc��Visual C �Ǥ� -X) ���ץ�������ꤹ��ȡ��嵭�� 4.4 �ʹߤΥ������ϹԤ��ޤ���
+�ѥ��δ����ȥǥ��쥯�ȥ�Ȥ���Τϡ�ANSI C Rationale �ǤϰѰ���Ρְտ� (intent)�פǤ���Ȥ���Ƥ��ޤ������ǥ��쥯�ȥ꤬ư�����Ȥ��ʤ����ͤ����ΤʤΤǡ��������Ȼפ��ޤ�����������UNIX �Ϥν��������Ǥϡ����ʤ��Ȥ� #include "header" �η����Ǥ� include ���Υ������ե�����Τ���ǥ��쥯�ȥ����Ȥ��뽬��������褦�Ǥ���mcpp �� compiler-independent �ǤǤ������˽��äƥ������ե�����Υǥ��쥯�ȥ����Ȥ��ޤ�����
+Header-name �Ȥ��� pp-token �ι���ˡ�ȡ���������ºݤ� include file �Υե�����̾����Ф���ˡ�ϡ������̤�Ǥ���
+#if ����ɾ���ϥۥ��Ƚ����ϡ�mcpp ��ѥ��뤷�������ϡˤȥ������åȽ����ϡ�mcpp ��Ȥ������ϡˤ����ĺ�����������ˤ�äƷ�ޤ�ޤ��������η����ۤʤ���ϡ��������ۤ��η��� #if ���η��ˤʤ�ޤ���Compiler-independent �Ǥ� mcpp �Ǥϥ������åȽ����Ϥ�¸�ߤ��ʤ��Τǡ��ۥ��Ƚ����Ϥˤ�äƷ�ޤ�ޤ���
+pre-Standard �⡼�ɤǤ� #if ���� (signed) long ������ɾ�����ޤ���
+long long ������ʤ������Ϥ� Standard �⡼�ɤǤϡ�long ����� unsigned long �ǹԤ��ޤ���
+long long ����Ľ����Ϥ� Standard �⡼�ɤǤϡ�#if ���� long long / unsigned long long ��ɾ�����ޤ���C90, C++98 �Ǥ� long / unsigned long ��ɾ������Τ�����Ǥ�����mcpp �Ǥ� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ������long / unsigned long ���ϰϤ�Ķ������ϥ������˥�Ф��ޤ���*1
+Visual C, Borland C 5.5 �Ǥ� long long �Ϥ���ޤ��������Ʊ�������� __int64 �Ȥ�����������Τǡ�#if ���� __int64 / unsigned __int64 ��ɾ�����ޤ��ʤ�������Visual C++ 2002 �ޤǤ� Borland C 5.5 �Ǥ� LL, ULL �Ȥ��� suffix ���Ȥ��ʤ��Τǡ������� suffix �� #if �ԤǤϻȤ��뤬�Ϥ�ʸ�ǻȤäƤϤ����ʤ��ˡ�
+�ޤ���-+ ���ץ����� C++ �Υץ�ץ���������ϡ�#if ����� true, false �Ȥ��� pp-token ���ͤϤ��줾�� 1L, 0L ��ɾ�����ޤ���
+Standard �⡼�ɤǤζ���Ū��ɾ���Τ������ʲ����������ޤ���long long ������ʤ������Ϥξ��ϡ��ʲ��� 4.4, 4.5 �ε��ܤϤ��٤ơ�long long / unsigned long long �줾�� long / unsigned long ���ɤ��ؤ��Ƥ���������Pre-Standard �⡼�ɤǤϤ��٤� long ���ɤ��ؤ��Ƥ���������
+�ɤ���ˤ��Ƥ���������ȡ�����Ͼ��������ͤ�Ȥ�ޤ���
+pre-Standard �⡼�ɤǤ���������ȡ������ɾ��������� long ���ϰϤǹԤ��������ۤ����ͤ� out of range �Ȥ��ޤ������α黻�⤹�٤� long �ǹԤ��ޤ���
�ޤ����ۥ��Ȥ� unsigned long long �Τۤ����������åȤ����ϰϤ��������ϡ������Ķ�����ͤ� out of range �Ȥʤ�ޤ���
+���Ʊ�Τα黻��̤��ϰϳ��Ȥʤä����ϡ�long long �Ǥ� out of range �Υ��顼�Ȥʤꡢunsigned long long �Ǥϥ������˥��Фޤ����黻����ַ�̤ˤĤ��Ƥ�Ʊ�ͤǤ���
����α��ӥåȥ��եȤ������ޤ��껻�ˤϰܿ������ʤ��Τǡ��������˥�Ф��ޤ������ʤ��������Ĥ����κ���黻�ˤ�ä����Ĥ���������ͤ����ʤ����������ͤ��Ѵ����줿���⡢�������˥�Ф��ޤ����ºݤα黻�ϡ��ۥ��Ƚ����ϤΥ���ѥ������Τλ��ͤ˽����ޤ���
+C90, C++98 �Ǥϥץ�ץ������Ǥ� #if ����ɾ���Ϥ��٤� long / unsigned long �ǡ�C99 �ǤϤ��ν����Ϥκ�����������ǡ˹Ԥ����ȤˤʤäƤ��ޤ���mcpp �Ǥ� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ������long / unsigned long ���ϰϤ�Ķ������ϥ������˥�Ф��ޤ����ɤ���ˤ��Ƥ⡢����ѥ������ΤǤ� if (expression) ��ɾ���λ��������礶�äѤʤ�ΤǤ�������ĥ���ط�������ˤϡ�����ѥ������ΤȤϰ㤦��̤ˤʤ뤳�Ȥ������ˤ��Ƥ���ޤ���
+�ޤ���Standard C �Υץ�ץ������Ǥ� keyword �Ȥ�����Τ�¸�ߤ��ʤ��Τǡ�sizeof �䥭�㥹�ȤϻȤ��ޤ���������ѿ�������������ư���������ϻȤ��ޤ���Standard �⡼�ɤǤ� #if ���� defined �黻�Ҥ��Ȥ���#elif �ǥ��쥯�ƥ��֤�Ȥ��ޤ������Ȥϥ���ѥ������ΤǤ� if (expression) ��Ʊ�ͤˡ��Ʊ黻�Ҥ�ͥ���̤ȥ��롼�ԥ�§�ʤ������絬§�ˤ˽��ä�ɾ�����Ԥ��ޤ�������黻�Ҥ�¿���Ǥϡ�ξ�դ�Ʊ���ˤ��뤿��λ����Ѵ����Ԥ�졢������ unsigned long long �ξ���¾���� long long �Ǥ��äƤ� unsigned long long ���Ѵ�����ޤ���
+��:
+*1 mcpp V.2.5 �ޤǤ� C90, C++98 �Ǥ�����Ū�ˤ� long long / unsigned long long ��ɾ�����ʤ��顢long / unsigned long ���ϰϤ�Ķ������ϥ��顼�Ȥ��Ƥ�������V.2.6 ����� GCC �� Visual C �Ȥθߴ����Τ���˥��顼�����˥˳ʲ���������
+#if ��������ȡ�����Ȥ��Ƥϼ��̻ҡʥޥ�������ޥ����ˡ������ο��ͥȡ�����ʸ�����������ޤ��������Τ���ʸ�������ɾ���λ����ϤۤȤ�� implementation-defined �Ǥ��ꡢportability �Ϥ��ޤꤢ��ޤ���#if 'const' �� compiler-proper �Ǥ� if ('const') �Ȥδ֤Ǥ������̤��㤦��礬����ޤ���Standard C �Ǥ⡢���줬Ʊ���Ǥ��뤳�Ȥ��ݾڤ���Ƥ��ʤ��ˡ�
+POSTSTD �⡼�ɤǤϤ��ΤۤȤ�ɰ�̣�Τʤ� #if �����ʸ�������ɾ���ϹԤ��ޤ���ʥ��顼�Ȥʤ�ˡ�
+ʸ�������ɾ����¾����������ȡ������Ʊ�ͤˡ�long long, unsigned long long ���ϰϤǾ�������ͤ�ɾ�����ޤ���pre-Standard �⡼�ɤǤ� long ���ϰϤǤ���
+Single character �Ǥʤ� multi-byte character ����� wide character �ϡ�encoding �� UTF-8 �ξ��ϣ��Х��ȡ�����ʳ��ǤϤ��٤ƣ��Х��Ȥη���ɾ�����ޤ���UTF-8 �ϥ����������ѤʤΤǡ����Х��Ȥη���ɾ�����ޤ���EUC-JP �Σ��Х��� encoding �ˤ��б����Ƥ��ޤ���ʣ��Х���ʸ���ϣ��Х��ȡܣ��Х��ȤΣ�ʸ���Ȥ���ǧ������롣���η�̡��ͤ�������ɾ������뤳�Ȥˤʤ�ˡ����Х��Ȥ� encoding �Ǥ���ʤ��顢wchar_t �����Х��Ȥη��Ǥ�������Ϥ⤢��ޤ�����mcpp �� wchar_t �ˤϴ��Τ��ޤ��ʲ��Ǥϣ��Х��Ȥ� multi-byte character encoding �ξ��ˤĤ����������ޤ���
+'��' �Ȥ����褦�� multi-byte character constant �� ((���Х����ܤ��� << 8) + ���Х����ܤ���) ��ɾ�����ޤ���8 �� <limits.h> �� CHAR_BIT ���͡ˡ�
+'ab', '\x12\x3', '\x123\x45' �Ȥ����褦�� multi-character character constant �Ǥϡ�'a', 'b', '\x12', '\x3', '\x123', '\x45' ���줾�죱�Х��ȤȤ��� [0, 0xFF] ���ϰϤ�ɾ���������η�̤��̥Х��Ȥ���缡 8 ���ĺ����եȤ����ʤ������Ƥ椭�ޤ���0xFF �� <limits.h> �� UCHAR_MAX ���͡ˡ����Ĥ� escape sequence ���ͤ� 0xFF ��Ķ�������ϡ�out of range �Υ��顼�Ȥʤ�ޤ����������äơ�ʸ�����åȤ� ASCII �Ǥ���С����Σ��ĤΥȡ�������ͤϤ��줾�� 0x6162, 0x1203, ���顼�Ȥʤ�ޤ���
+L'��' �� '��' ��Ʊ���ͤȤʤ�ޤ���L'ab', L'\x12\x3', L'\x123\x45' ���� multi-character wide character constant �ˤĤ��Ƥϡ�L'a', L'b', L'\x12', L'\x3', L'\x123', L'\x45' �줾�죱�Ĥ� wide character �Ȥ��� [0, 0xFFFF] ���ϰϤ�ɾ���������η�̤��̤� wide character ����缡 16 ���ĺ����եȤ����ʤ������Ƥ椭�ޤ������Ĥ� escape sequence ���ͤ����Х������ʤ������κ����ͤ�Ķ�������ϡ�out of range ���顼�Ȥʤ�ޤ����������äơ�ʸ�����åȤ� ASCII �Ǥ���С����Σ��ĤΥȡ�������ͤϤ��줾�� 0x00610062, 0x00120003, 0x01230045 �Ȥʤ�ޤ���
+Multi-character character constant, multi-character wide character constant ���ͤ� unsigned long long ���ϰϤ�Ķ�������� out of range ���顼�Ȥʤ�ޤ���
+__STDC_VERSION__ �ޤ��� __cplusplus ���ͤ� 199901L �ʾ�ξ��ϡ�\uxxxx, \Uxxxxxxxx �η��� UCN (universal-character-name) ���� escape sequence �Ȥ���ɾ�����ޤ��ʤ�������ɾ���Ƥⲿ�ΰ�̣��ʤ���������������ɾ�����뤷���ʤ��ΤǤ���ˡ�
+�������åȽ����ϤΥ���ѥ������Τ� char �� wchar_t ����椢��ξ��ϡ�#if ���Ǥ�ʸ�������ɾ���ȥ���ѥ������ΤǤ� if (expression) �ˤ��ʸ�������ɾ���Ȥϡ���̤���äƤ��뤳�Ȥ�����ޤ����ϰϥ��顼�Ȥʤ��ϰϤ�㤦��ǽ��������ޤ����ޤ���multi-character character constant, multi-byte character constant ��ɾ���ϡ��ץ�ץ����å������Ǥʤ�����ѥ������ΤǤ�����Ϥˤ�äƤޤ��ޤ��Ǥ���CHAR_BIT �����Ǥ��äƤ⡢'ab' �� 'a' * 256 + 'b' ��ɾ�����뤫������Ȥ� 'a' + 'b' * 256 ��ɾ�����뤫�����⡢Standard C �ǤϷ����Ƥ��ޤ���
+���̤ˡ�#if ���Ǥ�ʸ������Ϥ����������ʤ�����¤�ϻȤ��٤��ǤϤ���ޤ������������ʤ��ʤ����Ȥ����Τϡ���ˤϻפ��դ��ޤ���
+Standard C �Ǥϥץ�ץ������ϼ¹Ի��Ķ��䥳��ѥ������Τλ��ͤ�����Ω����ʸ���̤�Υץ�ץ������Ȥ��Ƶ��꤬���Τˤ��졢���η�̡�#if �ԤǤ� sizeof �ȥ��㥹�ȤϻȤ��ʤ����Ȥˤʤ�ޤ�������������pre-Standard �⡼�ɤǤ� #if �Ԥ� sizeof (type) ���Ȥ���褦�ˤʤäƤ��ޤ�������� DECUS cpp ��Ѿ����ơ������ long long, long double �ν������ɲä������μ��ä�����ΤǤ��ʤ������˥��㥹�Ȥ��������Τ��ѻ��ʤΤǡ���äƤ��ʤ�����뵤��ʤ��ˡ�
+eval.c �� S_CHAR ���� S_* �Ȥ����ޥ����ǤϳƷ��Υ��������������Ƥ��ޤ����������������ϤǻȤ����ϡ��⤷�ۥ��Ȥȥ������åȤȤǤ����η��ΰ������ۤʤ�ʤ顢�����ͤȤ��ƥ������åȽ����ϤΤ����η��Υ������������ͤ�ľ�ܽ�ɬ�פ�����ޤ���
+mcpp �� #if sizeof �ˤϼ�ȴ��������ޤ���char, short, int, long, long long ��Ƭ���դ� signed, unsigned ��ñ��̵�뤷�ޤ����ޤ���sizeof (void *) �ϥ��ݡ��Ȥ��ޤ�������������Ⱦü�Ǥ���������������������ε�ǽ�Τ���� system.H �Υե饰�����䤷���ѻ��ˤ������ʤ��ΤǤ����ɤ������㥹�Ȥ⥵�ݡ��Ȥ��ʤ��Τ����� sizeof �Ϻ�����褦���Ȥ�פ��ޤ����������ä������Ǥˤ��ä���ΤʤΤǡ��㴳�μ��ä��������ǻĤ��Ƥ���ޤ���
+mcpp �� translation phase 3 �� tokenization �˺ݤ��ơ�token separator �Ȥ��Ƥ�ʣ���� white spaces �� sequence �ϡ����ԥ����ɰʳ��ϸ�§�Ȥ��� one space �˰��̤��ޤ��� +��������STD �⡼�ɤ� -k �ޤ��� -K ���ץ�����ꤵ�줿�Ȥ��ϡ����̤����ˤ��Τޤ��Ϥ��ޤ��� +�ޤ��������� white space sequence �Ϻ�����ޤ��� +
��Ƭ�� white spaces �� POSTSTD �⡼�ɤǤϺ������¾�Υ⡼�ɤǤ����̰����ǡ����Τޤ��Ϥ��ޤ��� +��ԤϿʹ֤����Ϥ��ɤ���ΤĤ����˹�碌�Ƥ���ޤ���*1
+������������ϥץ�ץ�����������ʳ����äǤ������θ�� phase 4 �����äơ��ޥ���Ÿ���ȥץ�ץ������ǥ��쥯�ƥ��ֹԤν������Ԥ��ޤ����ޥ���Ÿ���θ�ǤϤ��������ʣ���� spaces ���Ǥ��뤳�Ȥ�����ޤ����������space �������Ĥ������ȡ�����ѥ���η�̤ϲ����Ѥ��ޤ���
+Standard C �Ǥ� translation phase 3 �Ǥ���� one space �˰��̤��뤫�ɤ����� implementation-defined �Ȥ���Ƥ��ޤ������̾�ϥ桼���Ϥޤä������ˤ���ɬ�פϤ���ޤ���Portability ������ˤʤ�Τϡ�preprocessing directive �Ԥ� <vertical-tab> �ޤ��� <form-feed> ������������Ǥ������ξ��� Standard C �Ǥ� undefined �Ǥ���mcpp �ǤϤ����� space ���Ѵ����ޤ���
+��:
+*1 V.2.6.3 �ޤǤϸ�§�Ȥ��� one space �˰��̤��Ƥ�������V.2.6.4 �����ѹ�������
+noconfig �ǥ��쥯�ȥ�ˤ���ƽ������Ѥκ�ʬ�ե������ makefile ��Ȥäƥǥե���Ȥ�����ǥ���ѥ��뤷������ mcpp �¹ԥץ������λ��ͤ��˽Ƥ����ޤ���Configure ������ץȤ�������������ƥ���ѥ��뤷������ configure �η�̤ˤ�äư�äƤ��ޤ�����OS �Ƚ����ϤΥС������Ʊ��Ǥ���С����ʤ��Ȥ⥤�롼�ɥǥ��쥯�ȥ�ʳ���Ʊ����̤ˤʤ�Ϥ��Ǥ���
+Compiler-independent �Ǥ� mcpp �λ��ͤˤϽ����Ϥˤ�����ϤۤȤ�ɤ���ޤ���OS �� CPU �ˤ����㤬��������ޤ���
+mcpp �ˤ� compiler-independent-build �� compiler-specific-build �Ȥ����ꡢ���Τɤ���Ǥ⤤���Ĥ���ư��⡼�ɤ�����ޤ�������ˤĤ��Ƥ� 2.1 �Ƥ��������������Ǥ� STD �⡼�ɤ��濴���������ޤ���
+�����κ�ʬ�ե������ makefile �ϼ��ν������ѤΤ�ΤǤ���
++++
++ FreeBSD 6.3 GCC V.3.4 + Vine Linux 4.2 / x86 GCC V.2.95, V.3.2, V.3.3, V.3.4, V.4.1 + Debian GNU/Linux 4.0 / x86 GCC V.4.1 + Ubuntu Linux 8.04 / x86_64 GCC V.4.2 + Fedora Linux 9 / x86 GCC V.4.3 + Mac OS X Leopard / x86 GCC V.4.0 + CygWIN 1.3.10 (GCC V.2.95), 1.5.18 (GCC 3.4) + MinGW & MSYS GCC 3.4 + WIN32 LCC-Win32 2003-08, 2006-03 + WIN32 Visual C++ 2003, 2005, 2008 + WIN32 Borland C++ V.5.5
���Τۤ�����λ��äƤ��ʤ����ν����ϤˤĤ��Ƥ⡢�桼������ contribute ���줿��ʬ�ե����뤬��Ͽ����Ƥ��ޤ���
++++
++ WIN32 Visual C++ V.6.0, 2002 + WIN32 Borland C++ V.5.9 (C++Builder 2007)
������⤽���ν����ϼ��Ȥǥ���ѥ��뤵��ޤ��� +
+noconfig.H, system.H ����������ޥ����Τ��������Τ�ΤϤɤν������Ѥ⤹�٤�Ʊ������ˤ��Ƥ���ޤ���
+DIGRAPHS_INIT == FALSE �ǥ���ѥ��뤵��Ƥ���Τǡ�digraph �� -2 (-digraphs) ���ץ�����ͭ���Ȥʤ�ޤ���
+TRIGRAPHS_INIT == FALSE �Ȥ��Ƥ���Τǡ�trigraph �� -3 (-trigraphs) ���ץ�����ͭ���Ȥʤ�ޤ���
+OK_UCN �� TRUE �ˤ��Ƥ���Τǡ�C99, C++ �� UCN (universal character name) ���Ȥ��ޤ���
+OK_MBIDENT �� FALSE �Ȥ��Ƥ���Τǡ����̻���� multi-byte-character �ϻȤ��ޤ���
+STDC �� 1 �Ȥ��Ƥ���Τǡ�__STDC__ �ν���ͤ� 1 �Ȥʤ�ޤ���
�Ƽ�� translation limits �ϼ��Τ褦�ˤ��Ƥ��ޤ���
++++
++ NMACPARS�ʥޥ����ΰ����κ������ 255 + NEXP ��#if ����������κ���ͥ��ȥ�٥�� 256 + BLK_NEST��#if section �κ���ͥ��ȥ�٥�� 256 + RESCAN_LIMIT�ʥޥ����������κ���ͥ��ȥ�٥�� 64 + IDMAX ��identifier ��ͭ��Ĺ�� 1024 + INCLUDE_NEST��#include �κ���ͥ��ȥ�٥�� 256 + NBUFF�ʥ������κ����Ĺ��*1 65536 + NWORK�ʽ��Ϥκ����Ĺ�� 65536 + NMACWORK�ʥޥ���Ÿ�����������Хåե��Υ������� 262144
��������GCC �ǡ�Visual C �ǤǤϽ��Ϥκ����Ĺ�� NWORK �ǤϤʤ� NMACWORK �Ǥ���
+���Υޥ����� OS �ˤ�äưۤʤä�����ˤ��Ƥ��ޤ���build type �ˤϴط����ޤ���
+MBCHAR �ʥǥե���Ȥ� multi-byte character encoding��
++++
++ FreeBSD, Linux, Mac OS X EUC_JP + Win32, CygWIN, MinGW SJIS
���Υޥ����Ͻ����Ϥˤ�äưۤʤä�����ˤ��Ƥ��ޤ��� +
+STDC_VERSION ��__STDC_VERSION__ �ν���͡�
++++
++ Compiler-independent, GCC 2 199409L + ����¾ 0L
HAVE_DIGRAPHS ��digraphs �Τޤ��Ϥ��뤫��
++++
++ Compiler-independent, GCC, Visual C TRUE + ����¾ FALSE
EXPAND_PRAGMA ��C99 �� #pragma �Ԥΰ�����ޥ���Ÿ�����뤫��
++++
++ Visual C, Borland C TRUE + ����¾ FALSE
GCC 2.7-2.95 �Ǥ� __STDC_VERSION__ �� 199409L �ȤʤäƤ��ޤ�������3.*, 4.* �Ǥ� __STDC_VERSION__ �ϥǥե���ȤǤϻ���������줺���¹Ի����ץ����˱�������������褦�ˤʤ�ޤ�����mcpp �� GCC �Ѥ�����Ϥ�����б�������ΤǤ���
+STDC_VERSION �� 0L �Τ�ΤǤϡ�__STDC_VERSION__ �ϥǥե���ȤǤ� 0L �� pre-define ����ޤ���-V199409L ���ץ����� __STDC__ �� 1 �� __STDC_VERSION__ �� 199409L����������ޥ����� '_' �ǻϤޤ��Τ����Ȥ�������̩�� C95 �⡼�ɤȤʤ�ޤ����ޤ���-V199901L ���ץ����� C99 �⡼�ɤȤʤ�ޤ���
+C99 �⡼�ɤǤ� __STDC_HOSTED__ �� 1 �� pre-define ����ޤ���__STDC_ISO_10646__, __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__ �� mcpp ���Ȥ� pre-define ���ޤ������ϤΥ����ƥ�إå���Ǥ���ޤ����ºݤˤϡ�glibc 2 / x86 �Υ����ƥ�Ǥϥ����ƥ�إå��ˤ�ä� __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__ �� 1 ��������졢¾�ν����ϤǤϤɤ���������ޤ���
+HAVE_DIGRAPHS �� FALSE �Τ�ΤǤϡ�digraph ��������Ƥ��ʤ������ϡˡ�digraph �� mcpp ���̾�� token ���Ѵ�����Ƥ�����Ϥ���ޤ���
+EXPAND_PRAGMA �� TRUE �Ǥ��äƤ⡢STDC, MCPP, GCC �Τɤ줫�ǻϤޤ� #pragma �Ԥϥޥ���Ÿ�����ޤ���
+Include �ǥ��쥯�ȥ�ϼ��Τ褦�����ꤷ�Ƥ���ޤ���
+�ޤ���UNIX ���Ǹ��������� system-specific �ʤ�Τ���� site-specific �ʤ�Τϼ����̤�Ǥ�������� compiler-independent �ǤǤ�Ʊ���Ǥ���
+++
++ FreeBSD, Linux, Mac OS X, CygWIN /usr/include, /usr/local/include
Mac OS X �ǤϤ��Τۤ���framework �ǥ��쥯�ȥ꤬ /System/Library/Frameworks, /Library/Frameworks �����ꤵ��ޤ���
+MinGW �Ǥ� /mingw/include ��ɸ��� include �ǥ��쥯�ȥ�ˤʤ�ޤ���
+�����Ϥ䤽�ΥС������ˤ�äưۤʤ� implementation-specific �ʤ�ΤˤĤ��Ƥ� *.dif �ե�����Ƥ���������Compiler-independent �ǤǤϤ������������ޤ���Windows �ν����ϤǤϤ������ä����ꤻ�����Ķ��ѿ��Ȥ��ޤ����Ķ��ѿ��� INCLUDE, CPLUS_INCLUDE �Ǥ���Compiler-independent �ǤǤ�Ʊ�͡�
+����ǤĤ�����������С�������Ѥ��� mcpp ��ꥳ��ѥ��뤹�뤫���Ķ��ѿ��ǻ��ꤹ�뤫��-I ���ץ����ǻ��ꤹ�뤫���Ƥ���������
mcpp �� GCC ��, Visual C �ǰʳ��Ǥϡ��ץ�ץ�����������̤� NWORK-1 ��Ķ������ϡ�����ʲ���Ĺ���˹Ԥ�ʬ�䤷�ƽ��Ϥ��ޤ���ʸ�����ƥ���Ĺ���� NWORK-2 �ʲ��Ǥʤ���Фʤ�ޤ���
+ǰ�Τ���˷����֤��ޤ������ʾ�� italic ��ɽ������Ƥ���ޥ����Ϥ������ mcpp ��ѥ��뤷�����Τ�ΤǤ��ꡢmcpp �μ¹ԥץ�����ब���äƤ����Ȥ߹��ߥޥ����ǤϤ���ޤ���
+���ϥե��������ꤻ���� mcpp ��ư���ơ�#pragma MCPP put_defines ���Ǥ�����ȡ��Ȥ߹��ߥޥ����ΰ�����ɽ������ޤ���
+__STDC__ �� 1 �ʾ�ξ��֤Ǥϡ�_ �ǻϤޤ�ʤ��Ȥ߹��ߥޥ����Ϻ������ޤ���-N (-undef) ���ץ����Ǥ� __MCPP �ʳ������٤ƺ������ޤ������ξ�� -D ���ץ��������ꤷľ���Ƥ⤫�ޤ��ޤ������ϤΥС���������㤦������ include directory �����ʤ����ϡ�mcpp ��ꥳ��ѥ��뤷�ʤ��Ƥ⡢������ˡ�ǥС������ޥ������������뤳�Ȥ��̥С��������б������뤳�Ȥ��Ǥ��ޤ���-N �� -U ��Ȥ�ʤ��Ƥ⡢-D ������Υޥ���������������뤳�Ȥ��Ǥ��ޤ���
+-+ (-lang-c++) ���ץ����� C++ �Υץ�ץ���������ꤷ�����ϡ�__cplusplus �������������ޤ��������ν���ͤ� 1L �Ǥ������Τۤ��ˤ���ˤ����Ĥ��Υޥ����������������ޤ���
+GCC �Ǥ� V.3.2 �ޤǤϻ�������ޥ����ȸ��äƤ� GCC ��������������ΤϾ��ʤ���¿���� gcc ���� cpp �� -D ���ץ������Ϥ�����ΤǤ���������Ȥθߴ����Τ���ˤ� mcpp ���������ɬ�פϤʤ��ΤǤ�����mcpp ���"pre-preprocess" ���ǡ�ñ�Τ�ư���������ص��Τ���� mcpp ���������Ƥ��ޤ���
+GCC V.3.3 �ʹߤ�������60 �Ĥ��� 70 �ĤΥޥ�����������������褦�ˤʤ�ޤ�����mcpp V.2.5 �ʹߤǤ� GCC �����ǤǤϤ��ʤ�����������Ǥ��ޤ����������äơ�GCC V.3.3 �ʹ��Ѥ� mcpp �ǤϾ嵭�Τۤ���¿���Υޥ����������������ޤ����������Ƥ� mcpp �ȡ��뤹�������������� mcpp_g*.h �Ȥ����إå��ե�����Ǥ狼��ޤ���
FreeBSD, Linux, CygWIN, MinGW / GCC, LCC-Win32, Visual C 2008 �� long long ����äƤ���Τǡ�#if ���� long long, unsigned long long ��ɾ�����ޤ���Visual C 6.0, 2002, 2003, 2005, Borland C 5.5 �Ǥ� long long �Ϥ���ޤ���__int64, unsigned __int64 �Ȥ�����������ΤǤ����Ȥ��ޤ���
+�����ν����ϤǤ� long ���ϰϤϤ������
++[-2147483647-1, 2147483647] ([-0x7fffffff-1, 0x7fffffff]) ++
�Ǥ���unsigned long �Ϥ������
++[0, 4294967295] ([0, 0xffffffff]) ++
���ϰϤǤ��� +
+long long ����Ľ����ϤǤϤ������ long long ���ϰϤ�
++[-9223372036854775807-1, 9223372036854775807] +([-0x7fffffffffffffff-1, 0x7fffffffffffffff]) ++
�ǡ�unsigned long long ���ϰϤ�
++[0, 18446744073709551615] ([0, 0xffffffffffffffff]) ++
�Ǥ��� +
+�����ν��������ΤǤϤ���������Ĥ�������������ɽ���ϣ�������Ǥ��ꡢ�ӥåȱ黻�⤽����б����Ƥ���Τǡ�mcpp �� #if ���Ǥ�Ʊ�ͤǤ���
+��������α����եȤϤ������ѥ��եȤǤ��ꡢmcpp �� #if ���Ǥ�Ʊ�ͤǤ��ʣ��ӥåȤα����եȤ��ͤ����Ĥ��Τޤ� 1/2 �ˤʤ�ˡ�
+�����ν�������;���� operand �������ޤ�����������Ǥ�����Ϥ������ Standard C �� ldiv() �ؿ���Ʊ�����Ū�黻���Ԥ���Τǡ�mcpp �� #if ���Ǥ�Ʊ�ͤǤ���
�����Υ����ƥ�ʣϣӡˤǤϤ���������ʸ�����åȤ� ASCII �ʤΤǡ�mcpp �Ǥ�Ʊ�ͤǤ���
+�䤬�� kmmalloc �Ȥ�����������롼�����ꡢmalloc(), free(), realloc() ����ޤ�Ǥ��ޤ�����CygWIN, Visual C 2005, 2008 �ʳ��ǤϤ��줬���ȡ��뤵��Ƥ�����ϡ�make ������� MALLOC=KMMALLOC�ʤޤ��� -DKMMALLOC=1�ˤȤ������ץ�������ꤹ��Ȥ��줬 link ����ޤ����ҡ��ץ���ΥǥХå��ѥ롼����������褦�ˤʤäƤ��ޤ���errno ���ֹ� EFREEP, EFREEBLK, EALLOCBLK, EFREEWRT, ETRAILWRT �ˤ� Linux, LCC-Win32 �ǤϤ��줾�� 2120, 2121, 2122, 2123, 2124 ����ʳ��ǤϤ��줾�� 120, 121, 122, 123, 124 �������ƤƤ��ޤ��� mcpp-porting.html#4.extra ���ȡˡ�*2
+GNU �Υ����ƥप��� Visual C �ʳ��Ǥϡ��Ķ��ѿ� TZ �Ϥ��餫���� JST-9 �˥��åȤ��Ƥ���ɬ�פ�����ޤ����������ʤ��ȡ�__DATE__, __TIME__ �ޥ������ͤ�����Ƥ��ޤ��ޤ���
+��:
+*1 ����� <backslash><newline> �ˤ�����³����ι�Ĺ�ˤ⡢�����Ȥ� a space ���Ѵ�������ι�Ĺ�ˤ�Ŭ�Ѥ���롣�����Ȥ�ʣ���Ԥˤޤ����äƤ����硢�����Ȥ��Ѵ��ˤ�äƤ��줬���Ԥ�Ϣ�뤵��뤳�Ȥ����ա�
+*2 CygWIN 1.3.10, 1.5.18 �Ǥ� malloc() �� _malloc_r() ���Ȥ��ä������롼�����ꡢ¾�Υ饤�֥��ؿ��ˤϤ�����ƤӽФ���Τ������Ĥ����롣���Τ��ᡢ¾�� malloc() ��Ȥ����Ȥ��Ǥ��ʤ���Visual C 2005, 2008 �Ǥ⡢�ץ�����ཪλ�����Υ롼���� Visual C �� malloc() �������롼�����ƤӽФ��Τǡ���Ϥ�¾�� malloc() ��Ȥ����Ȥ��Ǥ��ʤ���
+mcpp ���Ф����ǥ�å������Ȥ��ΰ�̣�ϡ��ʲ����̤�Ǥ������ǥ�å������Ϥ������ɸ�२�顼���Ϥ˽��Ϥ��졢-Q ���ץ����ǥ����ȥǥ��쥯�ȥ���� mcpp.err �Ȥ����ե�����˥�����쥯�Ȥ���ޤ���
+���ǥ�å������ϼ��η���ȤäƤ��ޤ���
+ɽ�������Ԥ��̾�ϡ��������Ρ�ʪ���ԡפ������� \ �ˤ�ä���³���줿���ȤΡ������ԡפ��餵��˥����Ȥ� a space ���Ѵ�������Τ�ΤǤ��ꡢ�����Ȥ��Ԥ�ޤ����Ǥ������ʣ���������Ԥ�Ϣ�뤵�줿��ΤȤʤ롣���ֹ��Ϣ�뤵�줿�Ǹ��ʪ���Ԥ��ֹ�Ǥ��롣�������������Ƚ����������� translation phase �ǤΥ��顼���Ǥϡ����� phase �ιԤ�ɽ������롣
+��������-j ���ץ�������ꤷ�����ϡ��嵭�Σ��ȣ��Ͻ��Ϥ��ޤ���
+���ǥ�å������ˤϼ��Σ��ĤΥ�٥뤬����ޤ���
++++
++ fatal error �ץ�ץ�������ʾ�³���Ƥ��̣���ʤ���� + error ��ʸ�����ˡ���ְ�äƤ����� + warning Portability �Τʤ�����ְ㤤�β�ǽ���Τ�����
Warning +�ˤϤ���˼��Σ��ĤΥ��饹������ޤ���Class 1, 2 �ʳ��Ϥ���ü�ʤ�ΤǤ���
++++
++ class 1 �ְ㤤�β�ǽ���Τ��롢�ޤ��� portability ��礤�������� + class 2 ���ʾ�����꤬���뤬�ºݤˤϤ��֤�����Τʤ������� + class 4 �ºݤˤϤ��֤����꤬�ʤ� portability �˴ؤ��� warning + class 8 �����åפ���� #if group �䡢#if �����ɾ�����åפ�����������ˤĤ��ƤΤ����� warning + class 16 trigraph, digraph �ˤĤ��Ƥ� warning
mcpp �Ϥ�����¿��ο��ǥ�å��������Ѱդ��Ƥ��ޤ���STD �⡼�ɤǤϼ��Τ褦�ʼ���ˤΤܤäƤ��ޤ���
++++
++ fatal error 17 �� + error 76 �� + warning class 1 49 �� + warning class 2 15 �� + warning class 4 17 �� + warning class 8 30 �� + warning class 16 2 ��
�����ˤĤ��ơ���§�Ȥ��Ƥ��ιԤ�����������ʬ�����Ū�˻�Ŧ���ޤ���
+�ʤ����ʲ��������Ǥϡ����ǥ�å������ǰ��Ѥ���륽������Υȡ��������ͤ���ʬ�ˤ���Ȥ��Ʋ����Υȡ������Ϥᤳ��Ǥ��ޤ������Τ��������ͤΤ����˥ޥ���̾��Ƥ���Ȥ����ϡ��ºݤˤϤ��Υޥ�����Ÿ�������ͤ�ɽ������ޤ���
+�ޤ������ˤ�äƥ��顼�Ȥ��ƽФ��ꥦ�����˥Ȥ��ƽФ��ꤹ���å������⤢��ޤ����ʲ��������Ǥ�Ʊ��Υ�å������ˤĤ��ƤϺǽ�˵��ܤ���Ȥ����Ǥ��������ä������Ȥ�ñ�˥�å��������¤٤�����ˤ��ޤ���
�ʲ��Υ��顼����ˤϡ��Хåե��Υ����С��ե������� mcpp �λ��;�����¤ˤ���Τ�����ޤ����Хåե����������� translation limits �� system.H �Υޥ������������Ƥ��ޤ���ɬ�פʾ��Ϥ���������礭������ mcpp ��ꥳ��ѥ��뤷�Ƥ��������ʤ�����������ξ��ʤ������ƥ�Ǥϡ����ޤ���ͤ��礭������� out of memory ��ȯ�����䤹���ʤ�Τǡ��ۤɤۤɤˡˡ�
+I/O ���顼������������ץ�ץ�������ʾ�³���뤳�Ȥ��Ǥ��ʤ���硢�Хåե������С��ե��������ץ�ץ�������³���Ƥ��̣���ʤ����ˡ����Υ��顼��å��������Фơ��ץ�ץ���������ߤ��ޤ����ƥץ������ˤϡּ��ԡפξ����ͤ��֤��ޤ���
+���Σ��ĤΥ��顼�ϥȡ������ۤ�Ĺ���ʤ��Ƥ⡢�ޥ���Ÿ����ˤ��Υȡ�����ΤȤ����ǥХåե������С��ե����ˤʤä����ˤⵯ����ޤ������ξ��ϥޥ����ƤӽФ���ʬ�䤷�Ƥ���������
+ʸˡŪ�ʴְ㤤��������ˤ��Υ��顼��å��������Фޤ���
+Standard C �Ǥϡ�violation of syntax rule or constraint �����ä����Ͻ����Ϥϲ��餫�ο��ǥ�å�������Ф��ʤ���Фʤ�ʤ����ȤˤʤäƤ��ޤ�����Standard �⡼�ɤǤϤ��� violation ���Ф��Ƥϸ�§�Ȥ��ƥ��顼��å��������Фޤ��������ϥ������˥Ǥ���
�ޤ���Standard C �� undefined �Ȥ���Ƥ����Τ�¿���ˤĤ��Ƥ� error ��å������ޤ��� warning ���Фޤ���Undefined �Ǥ���ʤ��� error �� warning ��Фʤ��Τϡ����Τ�Τ����Ǥ���
+Standard C �Υץ�ץ������Ƕ���Ū�˲��� violation of syntax rule or constraint �ǡ����� undefined �Dz��� unspecified �Dz��� implementation-defined �Ǥ��뤫�ˤĤ��Ƥϡ�cpp-test.html �Ȥ��Ƥ���������
+Fatal �Ǥʤ� error ��å��������ФƤ�ץ�ץ�������³���ޤ�����λ����ȡ����顼�ο���ɽ�������ƥץ������ˡּ��ԡפξ����ͤ��֤��ޤ���
+ +���ϥȡ�����Υ��顼�Ǥ������Σ��ĤϤ�����⤽�ιԤ��åפ��ƽ�����³���ޤ������Σ��Ĥ�ʸ�����ƥ�����Υȡ�����ǡ������Ԥι����ޤǤ˰����䤬�Ĥ����Ƥ��ʤ����Ȥ��ޤ���
++#error I can't understand. ++
�ʤɤȡ�preprocessing-token sequence �η��������ʤ��ƥ����Ȥ�ʸ�����ƥ��Ǥ⥳���ȤǤ�ʤ��Ȥ����˽ȡ����μ�Υ��顼�Ȥʤ�ޤ���Pre-processing-token ������Ρʥ���ѥ������ΤǤΡˣä� token ��ꤪ���ޤ��ʤ�Τǡ�ʸ���� source character set �˴ޤޤ�Ƥ�������ФۤȤ�ɤ� character sequence �����餫�� pp-token sequence �Ȥ����̤�Τǡ�preprocessing-token ���顼�Ȥʤ�ΤϤ�������Ǥ���
+�ʤ��������åפ���� #if group ����Ǥ� pp-token ���顼�ϥ��顼�Ȥʤ�ޤ���
+���Υ�å������ϥ������ե����뤬���뤷�ʤ� #if section���ޥ����ƤӽФ����ǽ���äƤ�����˽Фޤ������Υե���������Ϥ������ξ���include ���줿�ե�����Ǥʤ����ˤϡ�"End of file" �ǤϤʤ� "End of input" ��ɽ������ޤ���
+�����ο��ǥ�å������� mcpp �Υ⡼�ɤˤ�äơ����顼�Ȥʤ���ȥ������˥Ȥʤ���Ȥ���ޤ���
+Standard �⡼�ɤǤϤ����Ϥ��٤ƥ��顼�Ǥ������Υޥ����ƤӽФ��ϥ����åפ���#if section ���б��ط��Ϥ��Υե����뤬 include ���줿���ν�����֤��ᤷ�ޤ���
+pre-Standard �⡼�ɤǤϤ��٤ƥ������˥Ǥ���pre-Standard �⡼�ɤǤ⡢OLDPREP �⡼�ɤǤ� unterminated macro call �ʳ��ϥ������˥�����Фޤ���
���� #if, #else ���� group ���б��ط��Υ��顼�Ǥ��������ιԤ�̵�뤷�ơʤ���ޤǤ� group ��³���Ƥ����ΤȤ��ơ˽�����³���ޤ��������Υ����å��Ϥ��Ȥ������åפ���� #if group ����ˤ��äƤ�Ԥ��ޤ���
+�ʤ���#if (#ifdef) section �Ȥ� #if, #ifdef, #ifndef ���� #endif �ޤǡ�#if (#elif, #else) group �Ȥϣ��Ĥ� #if (#ifdef) section �Τ����� #if (#ifdef, #ifndef), #elif, #else, #endif ���ǤϤ��ޤ줿���Ĥιԥ֥��å���ؤ��ޤ���
���Σ��Ĥ� #asm, #endasm ���б��ط��Υ��顼�Ǥ����������pre-Standard �⡼�ɤ�����ν����Ϥξ������Ǥ���
+����ʹߡ�5.4.12 �ޤǡˤΥ��顼�ϥ����åפ���� #if group ����Ǥϵ�����ޤ����-W8 ���ץ����ǵ�ư����ȡ�Unknown directive �ˤĤ��Ƥϥ������˥�Ф��ˡ�
+���� # �ǻϤޤ�ǥ��쥯�ƥ��ֹԤ�ñ���ʸˡ���顼�Ǥ��������ιԤ�̵�뤷�ƽ�����³���ޤ��ʤ��ʤ����#if �� section �γ��ϤȤߤʤ�����#line �ǤϹ��ֹ���Ѥ��ʤ����ˡ�#include, #line �Ԥΰ������ޥ����Ǥ���С������Ÿ�����������ǥ����å����Ԥ��ޤ���pre-Standard �⡼�ɤǤ�Ÿ�����ʤ��ˡ�
+�����Υ�å��������Τ�Τˤϥǥ��쥯�ƥ���̾���ФƤ��ޤ��������³����ɽ������륽�����Ԥǥǥ��쥯�ƥ��֤��狼��ޤ��ʥǥ��쥯�ƥ��ֹԤϥ����Ȥ� space ���Ѵ������ȡ�ɬ�����Ԥˤʤ�ˡ�
���Υ��顼�� Standard �⡼�ɤξ������ǡ������Υǥ��쥯�ƥ��֤�̵�뤵��ޤ���OLDPREP �⡼�ɤǤϥ��顼�⥦�����˥�Ф���KR �⡼�ɤǤϥ������˥Ȥʤꡢ���� "junk" ���ʤ��ä���ΤȤ��ƥץ�ץ�������³���ޤ���
+���� #if, #elif, #assert �ǥ��쥯�ƥ�����μ��ι�ʸ�˴ؤ��륨�顼�Ǥ���
+#if (#elif) �ǥ��顼�������ä����ϡ����� #if (#elif) �Ԥϵ���ɾ�����줿��ΤȤ��ơʤ��ʤ������ group ���åפ��ơˡ��ץ�ץ�������³���ޤ���
+�����åפ���� #if (#ifdef, #ifndef, #elif, #else) group �ˤĤ��Ƥϡ����줬�ä� legal �� preprocessing token ������Ω�äƤ��뤫�ɤ����ȡ�#if ���� group ���б��ط��ϥ����å����ޤ���������¾��ʸˡ���顼�ϥ��顼�ˤϤʤ�ޤ���
+#if �Ԥ��Τ�Τ���Ǥϡ�ɾ�����åפ������ʬ��������ޤ����㤨�� #if a || b �Τ褦�ʼ��� a �����Ǥ�����ϡ�b ��ɾ���ϹԤ��ޤ������������Σ������ʸˡ���顼�ʤ��� translation limit �Υ��顼�Ϥ��Ȥ�ɾ�����åפ������ʬ����ˤ��äƤ�����å�����ޤ���
+���� #if sizeof �˴ؤ��륨�顼�Ǥ����������pre-Standard �ξ������Ǥ���
+���Υ��顼��ɾ�����åפ������ʬ���ˤ�����ϵ�����ޤ����-W8 ���ץ����ǤϤ����ˤĤ��Ƥ⥦�����˥��Ф�ˡ�
+#if ���� C99 �ǤϤ��ν����Ϥλ��ĺ�����������ǡ�C90, C++98 �Ǥ� long / unsigned long ��ɾ������Τ�����Ǥ�����mcpp �Ǥ� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ�����ޤ�����������C90, C++98 �� long / unsigned long ���ϰϤ�Ķ�������ϥ������˥�Ф��ޤ���
+long long �Τʤ������ϤǤϡ�������� long long / unsigned long long �� long / unsigned long ���ɤ��ؤ��Ƥ���������pre-Standard �ǤϤ��٤� (signed) long ���ɤ��ؤ��Ƥ���������POSTSTD �Ǥ� #if ����ʸ������ϻȤ��ʤ��Τǡ��̤Υ��顼�ˤʤ�ޤ���
���� sizeof �˴ؤ��륨�顼�Ǥ��������åפ������ʬ���ǤϽФޤ����-W8 ���ץ����Ǥϥ������˥��Ф�ˡ�pre-Standard �ξ��Ǥ���
+���� #define �˴ؤ��륨�顼�Ǥ��� +�ޥ������������ޤ���
+#, ## �黻�Ҥ˴ؤ��륨�顼�� Standard �⡼�ɤΤ�ΤǤ���
+__VA_ARGS__ �˴ؤ��륨�顼�� Standard �⡼�ɤξ��Ǥ���
+���Ѱ����ޥ����� C99 �λ��ͤǤ�����GCC, Visual C++ 2005, 2008 �Ȥθߴ����Τ���� C90 �Ǥ� C++ �Ǥ�ͭ���Ȥ��Ƥ��ޤ��ʤ��������������˥��Ф�ˡ�
GCC-specific-build �� STD �⡼�ɤǤ� GCC2 ���ͤβ��Ѱ����ޥ������Ȥ��ޤ��������Υޥ�������� __VA_ARGS__ ���Ȥ��Ƥ���ȡ����Υ��顼�ˤʤ�ޤ��� +__VA_ARGS__ ��Ȥ��ʤ� GCC3 ���ͤ� C99 ���ͤǽʤ���Фʤ�ޤ���
+���� #undef �˴ؤ��륨�顼�Ǥ���
+���ϥޥ���Ÿ���˴ؤ��륨�顼�Ǥ��������Υޥ��������ɽ�����졢���Υޥ�������Τ��륽�����ե�����̾�ȹ��ֹ��ɽ������ޤ���#, ## �黻�Ҥ˴ؤ��륨�顼�� Standard �⡼�ɤ����Ǥ���
+�ʲ��Υ��顼�Ǥϡ����Υޥ����ƤӽФ��ϥ����åפ���ޤ���
+���Υ��顼�� STD �⡼�ɤ� -K ���ץ�������ꤷ���Ȥ������Τ�ΤǤ��� +�Ȥ�ˡ��ޥ�������ü��ʣ���ʤ��ᡢmacro notification �Τ���ΥХåե�����ʤ��ʤä����Ȥ��̣���Ƥ��ޤ��� +�ºݤˤϤޤ����������ޤ���
+���Σ��Ĥ� Standard �⡼�ɤ� C99 �����Τ�ΤǤ��� +C++ �Ǥ� -V199901L ���ץ����ǵ�ư��������Ʊ�ͤǤ���
+ʸˡŪ�ˤϴְ㤤�ǤϤʤ��������νְ㤤�β�ǽ����������� portability ������Τ�����ˡ�warning ���Фޤ���Warning �ˤ� 1, 2, 4, 8, 16 �Σ��Ĥ� class ������ޤ���mcpp �ε�ư���� -W <n> �Ȥ������ץ�������ꤹ�뤳�Ȥǡ�����餬ͭ���ˤʤ�ޤ���<n> �� 1, 2, 4, 8, 16 �Τ�����Ǥ�դΤ�Τ� OR ��Ȥä���ΤǤ����ʤ����ʲ��������� -W4 ���ȸ��äƤ���Τϡ�-W<n> �� <n> & 4 �����ξ��Τ��Ȥǡ�1|4, 1|2|4, 2|4, 1|4|8, 4|8, 4|16 ����ޤߤޤ���
+Standard �⡼�ɤǤ� Standard C �� undefined �Ȥ���Ƥ���ư��������������������¿���� error �ˤ��ޤ����������ˤĤ��Ƥ� warning ��Ф��ޤ���
+Ʊ�ͤ� Standard �⡼�ɤǤ� Standard C �� unspecified �Ȥ���Ƥ�����ͤ�Ȥ����������Ф��Ƥϡ��������ʳ���ɬ�� warning ��Ф��ޤ���
+Standard �⡼�ɤǤϡ�implementation-defined �Ȥ���Ƥ���ư���¿���ˤĤ��Ƥ� warning ��Ф��ޤ���Implementation-defined �Ǥ���ʤ��� warning �νФʤ��Τϡ������������Ǥ���
+�������äơ�mcpp �Ǥϥץ�ץ������Υ�٥�Ǥ� portability �Υ����å���ܴۤ����˹Ԥ����Ȥ��Ǥ��ޤ���
+POSTSTD �⡼�ɤǤϡ� 2.1 �ˤ�����ͤΰ㤤������� STD �⡼�ɤ�Ʊ�ͤǤ��� +
+�������˥������ĽФƤ⡢�������פξ����ͤ��֤��ޤ���-W0 �Υ��ץ����ǵ�ư����ȡ��������˥ϽФޤ���
+ +++ISO-2022-JP �ˤ�ʸ�������ɤΤۤ��� shift sequence �Ȥ�����Τ�����ޤ���Shift sequence ���̤ˤ���ȡ�UTF-8 �ʳ��Ϥ��٤� multi-byte character �ϣ��Х��ȤǤ���+
++ encoding first byte second byte + shift-JIS 0x81-0x9f, 0xe0-0xfc 0x40-0x7e, 0x80-0xfc + EUC-JP 0x8e, 0xa1-0xfe 0xa1-0xfe + KS C 5601 0xa1-0xfe 0xa1-0xfe + GB 2312-80 0xa1-0xfe 0xa1-0xfe + Big Five 0xa1-0xfe 0x40-0x7e, 0xa1-0xfe + ISO-2022-JP 0x21-0x7e 0x21-0x7e
�������ե�����κǸ�ιԤ�����Ⱦü�Ǥ�����ˡ����Υ������˥��Фޤ���old_prep �⡼�ɤǤϥ������˥�Фޤ���
+���Υ������˥� pre-Standard �⡼�ɤǤ����Фޤ����Standard �⡼�ɤǤϥ��顼�ˡ����Ϥν����Ǥʤ����ϡ������Υ������˥�̵�뤷�ƽ�����³���ޤ��������η�̤Ϥ����̯�ʥ��顼������������Ǥ��礦��OLDPREP �⡼�ɤǤ� unterminated macro call �ʳ��ϥ������˥�����Фޤ���
+���� Standard �⡼�ɤξ������Ǥ���
+���� STD �⡼�ɤξ������Ǥ���
+#define THIS$AND$THAT(a, b) ((a) + (b))+�Ȥ����դ��˥ޥ���̾�˵��ʳ���ʸ�����Ȥ��Ƥ���ȡ�
#define THIS $AND$THAT(a, b) ((a) + (b))+�Ȳ�ᤵ��ơ����Υ������˥��Фޤ���
���� lang-asm �⡼�ɤξ������Ǥ���
+�ʲ��� #pragma �˴ؤ��륦�����˥� Standard �⡼�ɤξ������Ǥ����������˥ϽФƤ⤽�ιԤϸ�§�Ȥ��Ƥ��Τޤ��Ϥ���ޤ�����#pragma MCPP, #pragma GCC �ǻϤޤ�ԤΤ������ץ�ץ������ǽ��������٤���ΤϽ��Ϥ��ޤ��� +#pragma GCC visibility * �Τ褦�˥���ѥ�����Τ���ιԤϡ��������˥ʤ��ˤ��Τޤ��Ϥ���ޤ���
+GCC �ǤǤϼ��Υ������˥��Фޤ���
+��������GCC �ѤǤ� #pragma GCC �� poison, dependency �Τɤ줫��³���Ԥ� class 2 �Υ������˥�Ф��������ǼΤƤޤ�������� GCC V.3 �Ǥϥץ�ץ����å������������ΤǤ�����mcpp �Ͻ������ޤ���
+���� pre-Standard �⡼�ɤǽФޤ���Standard �⡼�ɤǤϥ��顼�ˡ�
+���� KR �⡼�ɤξ��ȡ�Standard �⡼�ɤ� #pragma once, #pragma MCPP push_macro, #pragma MCPP pop_macro, #pragma push_macro, #pragma pop_macro, #pragma __setlocale, #pragma setlocale, #pragma MCPP put_defines, #pragma MCPP debug, #pragma MCPP end_debug �ξ�硢����� GCC �ѤǤ� STD �⡼�ɤ� #endif �Ԥξ������Фޤ���Standard �⡼�ɤΤ���¾�ξ��ϥ��顼��OLDPREP �Ǥϥ��顼�⥦�����˥�Фʤ��ˡ�
+���Σ��Ĥ� #if, #elif, #assert �ΰ����˴ؤ��륦�����˥Ǥ���
+���� #if, #elif, #assert �ΰ����˴ؤ��륦�����˥Ǥ�����ɾ�����åפ������ʬ���ǤϽФޤ����-W8 ���ץ����ǤϽФ�ˡ�
+���� #if (#elif, #assert) �Ԥ�������α黻�ȷ��˴ؤ��륦�����˥Ǥ�����Ϥꥹ���åפ������ʬ���˴ؤ��ƤϽФޤ����-W8 ���ץ����ǤϽФ�ˡ�
+Standard �⡼�ɤǤ� #if ���� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ�����ޤ�����������C90, C++98 �� long / unsigned long ���ϰϤ�Ķ�������ϥ������˥�Ф��ޤ���LL �Ȥ��� suffix �ˤĤ��Ƥ�Ʊ�ͤˡ�C99 �ʳ��Ǥϥ������˥��Фޤ��������Υ������˥� compiler-independent-build �Ǥ� class 1 �ǡ�compiler-specific-build �Ǥ� class 2 �Ǥ���
+POSTSTD �⡼�ɤǤ�ʸ������� #if ���ˤϻȤ��ʤ��Τǡ��������˥�Фޤ���ʥ��顼�ˤʤ�ˡ�
�����Υ������˥ǤϤ��Υޥ��������ɽ�����졢���Υޥ�������Τ��륽�����ե�����̾�ȹ��ֹ��ɽ������ޤ���
+���Σ��Ĥ� OLDPREP �⡼�ɤ����Ǥ���¾�Υ⡼�ɤǤϥ��顼�ˡ�
+���Ϲ��ֹ�˴ؤ��륦�����˥Ǥ���
+C90 �Ǥ� #line �� 32767 ���Ͼ�����������˶ᤤ�ֹ����ꤷ����硢���λ����Ǥϥ��顼�ˤʤ�ʤ���ΤΡ������줳���ϰϤ��С����ޤ��������С�������硢mcpp �Ǥ� warning ��Ф�����ǹ��ֹ�Τޤ����䤷³���Ƥ����ޤ�����������������ѥ������Τˤ�äƤϤ����������ʤ����⤷��ޤ���#line �λ��꤬���ߤ��礭�����Ȥ�����Ǥ���
+�ְ㤤�ǤϤʤ��� portability ������Τ��륱�����ˤĤ��ƤΥ������˥Ǥ���
+#if ���� Standard �⡼�ɤǤ� C90, C++98 �Ǥ� long long / unsigned long long ��ɾ�����ޤ�����������C90, C++98 �� long / unsigned long ���ϰϤ�Ķ�������ϥ������˥�Ф��ޤ���LL �Ȥ��� suffix �ˤĤ��Ƥ�Ʊ�ͤˡ�C99 �ʳ��Ǥϥ������˥��Фޤ���Visual C, Borland C �� compiler-specific-build �Ǥ� I64 �Ȥ��� suffix ���Ȥ��ޤ���������ˤĤ��Ƥ�Ʊ�ͤǤ��������Υ������˥� compiler-independent-build �Ǥ� class 1 �ǡ�compiler-specific-build �Ǥ� class 2 �Ǥ���
+���Σ��Ĥ� Standard �⡼�ɤξ������Ǥ���
++#define EMPTY ++���Ȥ��ơ����� EMPTY ���������ʬ�˽Τ��ɤ��Ǥ��礦��
���� POSTSTD �⡼�ɤξ������Ǥ���
+���Σ��ĤΥ������˥�����Υ����ƥ�����Τ�ΤǤ��������Υ����ƥ�Ǥ��������ץ������Ǥ�����portability ���ʤ��Τǡ�ǰ�Τ���˥������˥�Ф��ޤ���
+Standard C �ǤϤ����Ĥ��� translation limits �ˤĤ��ơ�������ݾڤ��٤��ͤ��ꤷ�Ƥ��ޤ����ץ�ץ����å��Ϥ����ͤ�Ķ���� translation limits ����äƤ���ۤ������ͤ��ɤ��Ȥ�����ޤ���������������˰�¸���륽������ portability �����¤���ޤ���mcpp �ǤϤ����� translation limits �� system.H �Υޥ�����������뤳�Ȥ�Ǥ�դ�����Ǥ���褦�ˤʤäƤ��ޤ�����Standard �⡼�ɤǤϤ����ͤ� Standard C �κǾ��ͤ�Ķ���Ƥ�����ϡ����Τ��Ȥ����Ѥ��륽�������Ф��Ƥϥ������˥�Ф��ޤ����������������Ϥ�ɸ��إå��䥽�����ˤ�äƤ���ȯ�����̤ˤʤ�Τǡ�class 1, 2 ���鳰���Ƥ���ޤ���
+���Υ������˥ϥ����åפ���� #if group �ǤϽФޤ���
+__STDC_VERSION__ >= 199901L �ξ��Ϥ����� translation limits �ϼ����̤�Ǥ���Identifier ��Ĺ���Ǥϡ�UCN �� multi-byte-character �Ϥ��줾�죱ʸ���ȿ����ޤ��ʥ������ΥХ��ȿ��ǤϤʤ�����̯�ʵ���Ǥ���ˡ�
++++
++ �������������Ԥ�Ĺ�� 4095 �Х��� + ʸ�����ƥ�롢ʸ�������header name ��Ĺ�� 4095 �Х��� + Identifier ��Ĺ�� 63 ʸ�� + #include �Υͥ��� 15 ��٥� + #if, #ifdef, #ifndef �Υͥ��� 63 ��٥� + #if ���Υ��å��Υͥ��� 63 ��٥� + �ޥ����Υѥ����ο� 127 �� + ����Ǥ���ޥ����ο� 4095 ��
-+ ���ץ����� C++ �Υץ�ץ���������ꤷ�����ϡ����Τ褦�� translation limits �Ȥ��ޤ������������ޥ����Υѥ����κ������ mcpp �Ǥ� 255 �ޤǤ��������Ǥ��ʤ��Τǡ�256 �ĤǤϥ��顼�Ȥʤ�ޤ���
++++
++ �������������Ԥ�Ĺ�� 65536 �Х��� + ʸ�����ƥ�롢ʸ�������header name ��Ĺ�� 65536 �Х��� + Identifier ��Ĺ�� 1024 ʸ�� + #include �Υͥ��� 256 ��٥� + #if, #ifdef, #ifndef �Υͥ��� 256 ��٥� + #if ���Υ��å��Υͥ��� 256 ��٥� + �ޥ����Υѥ����ο� 256 �� + ����Ǥ���ޥ����ο� 65536 ��
���Υ������˥�ºݤˤϤ��뤵���Τǡ�class 1, 2 ���鳰���Ƥ���ޤ���
+���Σ��Ĥ� Standard �⡼�ɤξ������Фޤ���
+���� STD �⡼�ɤ� -k �ޤ��� -K ���ץ�������ꤷ���Ȥ������Τ�ΤǤ���
+�������δְ㤤�Ǥ����ǽ���Ͼ��ʤ���ǰ�Τ�������դ�¥����̣�ǡ����Υ�å��������Фޤ������������å�����Τ� -W8 �Υ��ץ����ǵ�ư���줿�������Ǥ���
+�����åפ���� #if group ����� preprocessing directive ���̾�� #if, #ifdef, #ifndef, #elif, #else, #endif ���б��ط����������å����ޤ���-W8 �Ǥ� Illegal directive, Unknown directive �Υ����å��⤷�ޤ����ޤ���Standard �⡼�ɤǤ� #if �Υͥ��Ȥ�����٥��Ķ�������⥦�����˥�Ф��ޤ���
+���� #if ���˴ؤ��륦�����˥Ǥ����㤨�� #if a || b �Ȥ������Ǥϡ�a �����Ǥ���� b ��ɾ���ϹԤ��ޤ���������-W8 �Ȥ��Ƶ�ư����ȡ�ɾ������ʤ���ʬ���˴ؤ��Ƥ⤳���Υ������˥��Ф���ޤ������ξ��Ϥ������ (in non-evaluated sub-expression) �Ȥ������������դ����ޤ���
+Trigraph �� digraph �ϻȤ�ɬ�פΤʤ��Ķ��ǤϤޤä����Ȥ�ʤ���ΤǤ������δĶ��Ǥ⤷����餬���Ф����С����դ��פ���Ǥ��礦��-W16 ���ץ����Ϥ���Ф����ΤǤ���¾���ǡ�trigraph ���뤤�� digraph �����Ѥ���Ƥ��륽�����ǤϤ��Υ������˥���ȯ���뤳�ȤˤʤäƤ��뤵���Ǥ��礦���顢�����¾�Υ������˥Ȥ��̤Υ��饹�ˤ��Ƥ���ޤ����ɤ���ˤ��Ƥ⡢������ trigraph ���뤤�� digraph ��ͭ���ʾ��֤Ǥ������Ф���ޤ���Digraph �� Standard �⡼�ɤξ��ǡ�trigraph �� STD �⡼�ɤ����Ǥ���
++<% -> { <: -> [ %: -> # +%> -> } :> -> [ %:%: -> ## ++��������POSTSTD �⡼�ɤǤ� translation phase 1 ���̾�� pp-token ���Ѵ����Ƥ��ޤ��ޤ������ΰ㤤�ϡ�digraph �� # �黻�Ҥˤ��ʸ�����оݤˤʤä����˸���ޤ����ǥե���ȤǤ� digraph sequence �Τޤ�ʸ�����ޤ�����POSTSTD �Ǥ��̾�� pp-token ���Ѵ����줿��Τ�ʸ������ޤ����ޤ���ʸ�����ƥ������ digraph sequence ���������� character sequence �����ä���硢�ǥե���ȤǤϤ��ΤޤޤǤ�����POSTSTD �ǤϤ�����б����� pp-token �� character sequence ���Ѵ�����ޤ���
���ǥ�å����� | Fatal error | Error | Warning class | 1 | 2 | 4 | 8 | 16 | +
---|---|---|---|---|---|---|---|
"..." isn't the last parameter | 5.4.7 | ||||||
"/*" in comment | 5.5.1 | ||||||
"and" is defined as macro | 5.5.3 | ||||||
"defined" shouldn't be defined | 5.4.7 | ||||||
"MACRO" has not been defined | 5.5.3 | ||||||
"MACRO" has not been pushed | 5.5.3 | ||||||
"MACRO" is already pushed | 5.5.3 | ||||||
"MACRO" wasn't defined | 5.8 | ||||||
"op" of negative number isn't portable | 5.5.4 | 5.8 | |||||
"__STDC__" shouldn't be redefined | 5.4.7 | ||||||
"__STDC__" shouldn't be undefined | 5.4.8 | ||||||
"__VA_ARGS__" without corresponding "..." | 5.4.7 | ||||||
"__VA_ARGS__" cannot be used in GCC2-spec variadic macro | 5.4.7 | ||||||
## after ## | 5.4.7 | ||||||
#error | 5.4.10 | ||||||
#include_next is not allowed by Standard | 5.6 | 5.8 | |||||
#warning | 5.5.7 | ||||||
'$' in identifier "THIS$AND$THAT" | 5.6 | ||||||
16 bits can't represent escape sequence L'\x12345' | 5.4.6 | 5.8 | |||||
2 digraph(s) converted | 5.9 | ||||||
2 trigraph(s) converted | 5.9 | ||||||
8 bits can't represent escape sequence '\x123' | 5.4.6 | 5.8 | |||||
_Pragma operator found in directive line | 5.4.12 | ||||||
Already seen #else at line 123 | 5.4.3 | ||||||
Bad defined syntax | 5.4.5 | ||||||
Bad pop_macro syntax | 5.5.3 | ||||||
Bad push_macro syntax | 5.5.3 | ||||||
Buffer overflow expanding macro "macro" at "something" | 5.4.9 | ||||||
Buffer overflow scanning token "token" | 5.3.3 | ||||||
Bug: | 5.3.1 | ||||||
Can't open include file "file-name" | 5.4.11 | ||||||
Can't use a character constant 'a' | 5.4.5 | ||||||
Can't use a string literal "string" | 5.4.5 | ||||||
Can't use the character 0x24 | 5.4.5 | ||||||
Can't use the operator "++" | 5.4.5 | ||||||
Constant "123456789012" is out of range of (unsigned) long | 5.5.4 | 5.6 | 5.8 | ||||
Constant "1234567890123456789012" is out of range | 5.4.6 | 5.8 | |||||
Converted 0x0c to a space | 5.7 | ||||||
Converted [CR+LF] to [LF] | 5.5.1 | 5.6 | |||||
Converted \ to / | 5.6 | ||||||
Division by zero | 5.4.6 | 5.8 | |||||
Duplicate parameter names "a" | 5.4.7 | ||||||
Empty argument in macro call "MACRO( a, ," | 5.6 | ||||||
Empty character constant '' | 5.4.1 | 5.5.1 | |||||
Empty parameter | 5.4.7 | ||||||
End of file with no newline, supplemented the newline | 5.5.2 | ||||||
End of file with unterminated #asm block started at line 123 | 5.4.2 | 5.5.2 | |||||
End of file with unterminated comment, terminated the comment | 5.5.2 | ||||||
End of file with \, deleted the \ | 5.5.2 | ||||||
End of file within #if (#ifdef) section started at line 123 | 5.4.2 | 5.5.2 | |||||
End of file within macro call started at line 123 | 5.4.2 | 5.5.2 | |||||
Excessive ")" | 5.4.5 | ||||||
Excessive token sequence "junk" | 5.4.4 | 5.5.3 | |||||
File read error | 5.3.2 | ||||||
File write error | 5.3.2 | ||||||
Header-name enclosed by <, > is an obsolescent feature | 5.6 | ||||||
GCC2-spec variadic macro is defined | 5.6 | ||||||
I64 suffix is used in other than C99 mode "123i64" | 5.6 | 5.8 | |||||
Identifier longer than 31 bytes "very_very_long_name" | 5.7 | ||||||
Ignored #ident | 5.5.3 | 5.8 | |||||
Ignored #sccs | 5.5.3 | 5.8 | |||||
Illegal #directive "123" | 5.4.4 | 5.5.3 | 5.8 | ||||
Illegal control character 0x1b in quotation | 5.5.1 | ||||||
Illegal control character 0x1b, skipped the character | 5.4.1 | ||||||
Illegal digit in octal number "089" | 5.5.1 | ||||||
Illegal multi-byte character sequence "XY" in quotation | 5.5.1 | ||||||
Illegal multi-byte character sequence "XY" | 5.4.1 | ||||||
Illegal parameter "123" | 5.4.7 | ||||||
Illegal shift count "-1" | 5.5.4 | 5.8 | |||||
Illegal UCN sequence | 5.4.1 | ||||||
In #asm block started at line 123 | 5.4.3 | ||||||
Integer character constant 'abcde' is out of range of unsigned long | 5.5.4 | 5.6 | 5.8 | ||||
Integer character constant 'abcdefghi' is out of range | 5.4.6 | 5.8 | |||||
Less than necessary N argument(s) in macro call "macro( a)" | 5.4.9 | 5.5.5 | |||||
Line number "0x123" isn't a decimal digits sequence | 5.4.4 | 5.5.6 | |||||
Line number "2147483648" is out of range of 1,2147483647 | 5.4.4 | ||||||
Line number "32768" got beyond range | 5.5.6 | ||||||
Line number "32768" is out of range of 1,32767 | 5.5.6 | ||||||
Line number "32769" is out of range | 5.5.6 | ||||||
LL suffix is used in other than C99 mode "123LL" | 5.5.4 | 5.6 | 5.8 | ||||
Logical source line longer than 509 bytes | 5.7 | ||||||
Macro "MACRO" is expanded to "defined" | 5.5.4 | ||||||
Macro "MACRO" is expanded to "sizeof" | 5.5.4 | ||||||
Macro "MACRO" is expanded to 0 token | 5.5.4 | ||||||
Macro "macro" needs arguments | 5.8 | ||||||
Macro started at line 123 swallowed directive-like line | 5.5.5 | ||||||
Macro with mixing of ## and # operators isn't portable | 5.7 | ||||||
Macro with multiple ## operators isn't portable | 5.7 | ||||||
Misplaced ":", previous operator is "+" | 5.4.5 | ||||||
Misplaced constant "12" | 5.4.5 | ||||||
Missing ")" | 5.4.5 | ||||||
Missing "," or ")" in parameter list "(a,b" | 5.4.7 | ||||||
More than 1024 macros defined | 5.7 | ||||||
More than 31 parameters | 5.7 | ||||||
More than 32 nesting of parens in #if expression | 5.7 | ||||||
More than 8 nesting of #if (#ifdef) sections | 5.7 | 5.8 | |||||
More than 8 nesting of #include | 5.7 | ||||||
More than BLK_NEST nesting of #if (#ifdef) sections | 5.3.3 | ||||||
More than INCLUDE_NEST nesting of #include | 5.3.3 | ||||||
More than necessary N argument(s) in macro call "macro( a, b, c) | 5.4.9 | ||||||
More than NEXP*2-1 constants stacked at "12" | 5.4.5 | ||||||
More than NEXP*3-1 operators and parens stacked at "+" | 5.4.5 | ||||||
More than NMACPARS parameters | 5.4.7 | ||||||
Multi-character or multi-byte character constant '��' isn't portable | 5.7 | 5.8 | |||||
Multi-character wide character constant L'ab' isn't portable | 5.7 | 5.8 | |||||
Negative value "-1" is converted to positive "18446744073709551615" | 5.5.4 | 5.8 | |||||
No argument | 5.4.4 | 5.5.3 | |||||
No header name | 5.4.4 | ||||||
No identifier | 5.4.4 | ||||||
No line number | 5.4.4 | ||||||
No space between macro name "MACRO" and repl-text | 5.5.3 | ||||||
No sub-directive | 5.5.3 | ||||||
No token after ## | 5.4.7 | ||||||
No token before ## | 5.4.7 | ||||||
Not a file name "name" | 5.4.4 | ||||||
Not a formal parameter "id" | 5.4.7 | ||||||
Not a header name "UNDEFINED_MACRO" | 5.4.4 | ||||||
Not a line number "name" | 5.4.4 | ||||||
Not a valid preprocessing token "+12" | 5.4.9 | 5.6 | |||||
Not a valid string literal | 5.4.9 | ||||||
Not an identifier "123" | 5.4.4 | 5.5.3 | |||||
Not an integer "1.23" | 5.4.5 | ||||||
Not in a #if (#ifdef) section | 5.4.3 | ||||||
Not in a #if (#ifdef) section in a source file | 5.4.3 | 5.5.3 | |||||
Old style predefined macro "linux" is used | 5.5.5 | ||||||
Operand of _Pragma() is not a string literal | 5.4.12 | ||||||
Operator ">" in incorrect context | 5.4.5 | ||||||
Out of memory (required size is 0x1234 bytes) | 5.3.2 | ||||||
Parsed "//" as comment | 5.6 | ||||||
Preprocessing assertion failed | 5.4.10 | ||||||
Quotation longer than 509 bytes "very_very_long_string" | 5.7 | ||||||
Recursive macro definition of "macro" to "macro" | 5.4.9 | ||||||
Removed ',' preceding the absent variable argument | 5.5.5 | ||||||
Replacement text "sub(" of macro "head" involved subsequent text | 5.5.5 | 5.8 | |||||
Rescanning macro "macro" more than RESCAN_LIMIT times at "something" | 5.4.9 | ||||||
Result of "op" is out of range | 5.4.6 | 5.8 | |||||
Result of "op" is out of range of (unsigned) long | 5.5.4 | 5.6 | 5.8 | ||||
Shift count "40" is larger than bit count of long | 5.5.4 | 5.6 | 5.8 | ||||
sizeof is disallowed in C Standard | 5.8 | ||||||
sizeof: Illegal type combination with "type" | 5.4.6 | 5.8 | |||||
sizeof: No type specified | 5.4.5 | ||||||
sizeof: Syntax error | 5.4.5 | ||||||
sizeof: Unknown type "type" | 5.4.6 | 5.8 | |||||
Skipped the #pragma line | 5.6 | ||||||
String literal longer than 509 bytes "very_very_long_string" | 5.7 | ||||||
The macro is redefined | 5.5.4 | ||||||
This is not a preprocessed source | 5.3.4 | ||||||
This preprocessed file is corrupted | 5.3.4 | ||||||
Too long comment, discarded up to here | 5.7 | ||||||
Too long header name "long-file-name" | 5.3.3 | ||||||
Too long identifier, truncated to "very_long_identifier" | 5.5.1 | ||||||
Too long line spliced by comments | 5.3.3 | ||||||
Too long logical line | 5.3.3 | ||||||
Too long number token "12345678901234" | 5.3.3 | ||||||
Too long pp-number token "1234toolong" | 5.3.3 | ||||||
Too long quotation "long-string" | 5.3.3 | ||||||
Too long source line | 5.3.3 | ||||||
Too long token | 5.3.3 | ||||||
Too many magics nested in macro argument | 5.4.9 | ||||||
Too many nested macros in tracing MACRO | 5.4.9 | ||||||
UCN cannot specify the value "0000007f" | 5.4.1 | 5.8 | |||||
Undefined escape sequence '\x' | 5.5.4 | 5.8 | |||||
Undefined symbol "name", evaluated to 0 | 5.7 | 5.8 | |||||
Unknown #directive "pseudo-directive" | 5.4.4 | 5.5.4 | 5.8 | ||||
Unknown argument "name" | 5.5.3 | ||||||
Unterminated character constant 't understand. | 5.4.1 | ||||||
Unterminated expression | 5.4.5 | ||||||
Unterminated header name | 5.4.1 | ||||||
Unterminated macro call "macro( a, (b,c)" | 5.4.9 | ||||||
Unterminated string literal | 5.4.1 | ||||||
Unterminated string literal, catenated to the next line | 5.5.1 | ||||||
Variable argument macro is defined | 5.6 | ||||||
Wide character constant L'abc' is out of range of unsigned long | 5.5.4 | 5.6 | 5.8 | ||||
Wide character constant L'abc' is out of range | 5.4.6 | 5.8 |
�ץ�ץ������� Standard C Ŭ���٤ڤ��뤿��� Validation Suite �� mcpp �Υ������ȤȤ�˸������Ƥ��ޤ���Standard C �Υץ�ץ������Τ��٤Ƥε���ڤǤ����Τˤ����Ĥ��Ǥ����������mcpp �Ϥ����Ȥäƥ����å����Ƥ���ޤ��������¿���ν����Ϥǥ���ѥ��뤷�ƥ����å����Ƥ���ޤ����������äơ��Х�������ͤϤۤȤ�ɤʤ��Ĥ��Ǥ��������������ޤ������Ĥ��ĤäƤ��붲��Ͻ�ʬ����ޤ���
+�⤷���ԲIJ��ư�ȯ�����줿�顢���Ҥ���𤯤�������
+�⤷��
+"Bug: ..." �Ȥ������ǥ�å��������Ф��顢����ϴְ㤤�ʤ� mcpp �ޤ��Ͻ����ϤΡʤ��֤� mcpp �Ρ˥Х��Ǥ����ޤ������Ȥ�����㤯����ʡ֥������פǤ⡢����碌�뤳�Ȥ� mcpp ��˽������ʤ顢�����Х��Ǥ���
�Х����ˤϼ��Τ褦�ʥǡ������դ��Ƥ�������褦���ꤤ���ޤ���
+�Х����Τۤ��ˤ⡢mcpp �λȤ����ꡢ���ǥ�å����������Υɥ�����Ȥν������ʤɤˤĤ��Ƥ��ո�����������
+���ո��Ⱦ����
�� "Open Discussion Forum" �ޤ��ϥ��Ǥ��ꤤ���ޤ��� +
+ + +