From 4961bee8d79e960588d27facdf9617e0671ff1c7 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 4 May 2009 14:25:03 +0200 Subject: [PATCH] Install gcc-4.4.0-tdm-1-core-2.tar.gz Signed-off-by: Johannes Schindelin --- mingw/CHANGELOG-gcc-4.4.0-tdm-1.txt | 4 + mingw/COPYING-gcc-tdm.txt | 674 + mingw/COPYING.lib-gcc-tdm.txt | 502 + mingw/README-gcc-tdm.txt | 242 + mingw/bin/cpp.exe | Bin 0 -> 205312 bytes mingw/bin/gcc.exe | Bin 0 -> 204288 bytes mingw/bin/gccbug | 558 + mingw/bin/gcov.exe | Bin 0 -> 29715 bytes mingw/bin/libgcc_s_sjlj-1.dll | Bin 0 -> 239840 bytes mingw/bin/mingw32-gcc-4.4.0.exe | Bin 0 -> 204288 bytes mingw/bin/mingw32-gcc.exe | Bin 0 -> 204288 bytes mingw/bin/pthreadGC2.dll | Bin 0 -> 35840 bytes mingw/bin/pthreadGCE2.dll | Bin 0 -> 90112 bytes mingw/include/pthread.h | 1368 + mingw/include/sched.h | 178 + mingw/include/semaphore.h | 166 + mingw/info/cpp.info | 5351 +++ mingw/info/cppinternals.info | 1036 + mingw/info/gcc.info | 44016 +++++++++++++++++++ mingw/info/gccinstall.info | 4236 ++ mingw/info/gccint.info | 43972 ++++++++++++++++++ mingw/info/libgomp.info | 2455 ++ mingw/lib/gcc/mingw32/4.4.0/crtbegin.o | Bin 0 -> 1001 bytes mingw/lib/gcc/mingw32/4.4.0/crtend.o | Bin 0 -> 730 bytes mingw/lib/gcc/mingw32/4.4.0/crtfastmath.o | Bin 0 -> 3447 bytes mingw/lib/gcc/mingw32/4.4.0/include-fixed/README | 14 + mingw/lib/gcc/mingw32/4.4.0/include-fixed/limits.h | 125 + .../gcc/mingw32/4.4.0/include-fixed/syslimits.h | 8 + mingw/lib/gcc/mingw32/4.4.0/include/ammintrin.h | 88 + mingw/lib/gcc/mingw32/4.4.0/include/avxintrin.h | 1426 + mingw/lib/gcc/mingw32/4.4.0/include/bmmintrin.h | 1261 + mingw/lib/gcc/mingw32/4.4.0/include/cpuid.h | 177 + mingw/lib/gcc/mingw32/4.4.0/include/cross-stdarg.h | 73 + mingw/lib/gcc/mingw32/4.4.0/include/emmintrin.h | 1513 + mingw/lib/gcc/mingw32/4.4.0/include/float.h | 238 + mingw/lib/gcc/mingw32/4.4.0/include/immintrin.h | 59 + mingw/lib/gcc/mingw32/4.4.0/include/iso646.h | 45 + mingw/lib/gcc/mingw32/4.4.0/include/mm3dnow.h | 215 + mingw/lib/gcc/mingw32/4.4.0/include/mm_malloc.h | 74 + .../gcc/mingw32/4.4.0/include/mmintrin-common.h | 155 + mingw/lib/gcc/mingw32/4.4.0/include/mmintrin.h | 921 + mingw/lib/gcc/mingw32/4.4.0/include/nmmintrin.h | 37 + mingw/lib/gcc/mingw32/4.4.0/include/omp.h | 105 + mingw/lib/gcc/mingw32/4.4.0/include/pmmintrin.h | 128 + mingw/lib/gcc/mingw32/4.4.0/include/smmintrin.h | 724 + mingw/lib/gcc/mingw32/4.4.0/include/ssp/ssp.h | 65 + mingw/lib/gcc/mingw32/4.4.0/include/ssp/stdio.h | 100 + mingw/lib/gcc/mingw32/4.4.0/include/ssp/string.h | 167 + mingw/lib/gcc/mingw32/4.4.0/include/ssp/unistd.h | 84 + mingw/lib/gcc/mingw32/4.4.0/include/stdarg.h | 130 + mingw/lib/gcc/mingw32/4.4.0/include/stdbool.h | 50 + mingw/lib/gcc/mingw32/4.4.0/include/stddef.h | 416 + mingw/lib/gcc/mingw32/4.4.0/include/stdfix.h | 204 + mingw/lib/gcc/mingw32/4.4.0/include/tgmath.h | 171 + mingw/lib/gcc/mingw32/4.4.0/include/tmmintrin.h | 244 + mingw/lib/gcc/mingw32/4.4.0/include/unwind.h | 276 + mingw/lib/gcc/mingw32/4.4.0/include/varargs.h | 7 + mingw/lib/gcc/mingw32/4.4.0/include/wmmintrin.h | 120 + mingw/lib/gcc/mingw32/4.4.0/include/x86intrin.h | 70 + mingw/lib/gcc/mingw32/4.4.0/include/xmmintrin.h | 1251 + .../gcc/mingw32/4.4.0/install-tools/fixinc_list | 1 + .../gcc/mingw32/4.4.0/install-tools/gsyslimits.h | 8 + .../gcc/mingw32/4.4.0/install-tools/include/README | 14 + .../mingw32/4.4.0/install-tools/include/limits.h | 125 + .../lib/gcc/mingw32/4.4.0/install-tools/macro_list | 6 + .../gcc/mingw32/4.4.0/install-tools/mkheaders.conf | 5 + mingw/lib/gcc/mingw32/4.4.0/libgcc.a | Bin 0 -> 232056 bytes mingw/lib/gcc/mingw32/4.4.0/libgcc_eh.a | Bin 0 -> 78646 bytes mingw/lib/gcc/mingw32/4.4.0/libgcc_s.a | Bin 0 -> 57700 bytes mingw/lib/gcc/mingw32/4.4.0/libgcov.a | Bin 0 -> 75032 bytes mingw/lib/gcc/mingw32/4.4.0/libgomp.a | Bin 0 -> 69232 bytes mingw/lib/gcc/mingw32/4.4.0/libgomp.dll.a | Bin 0 -> 142150 bytes mingw/lib/gcc/mingw32/4.4.0/libgomp.la | 41 + mingw/lib/gcc/mingw32/4.4.0/libgomp.spec | 3 + mingw/lib/gcc/mingw32/4.4.0/libiberty.a | Bin 0 -> 211980 bytes mingw/lib/gcc/mingw32/4.4.0/libssp.a | Bin 0 -> 9508 bytes mingw/lib/gcc/mingw32/4.4.0/libssp.dll.a | Bin 0 -> 10558 bytes mingw/lib/gcc/mingw32/4.4.0/libssp.la | 41 + mingw/lib/gcc/mingw32/4.4.0/libssp_nonshared.a | Bin 0 -> 660 bytes mingw/lib/gcc/mingw32/4.4.0/libssp_nonshared.la | 41 + mingw/lib/gcc/mingw32/bin/libgomp-1.dll | Bin 0 -> 84198 bytes mingw/lib/gcc/mingw32/bin/libssp-0.dll | Bin 0 -> 53050 bytes mingw/lib/libpthread.a | Bin 0 -> 89608 bytes mingw/lib/libpthreadGC2-static.a | Bin 0 -> 47978 bytes mingw/lib/libpthreadGCE2.a | Bin 0 -> 89614 bytes mingw/libexec/gcc/mingw32/4.4.0/cc1.exe | Bin 0 -> 7513088 bytes mingw/libexec/gcc/mingw32/4.4.0/collect2.exe | Bin 0 -> 94720 bytes .../gcc/mingw32/4.4.0/install-tools/fixinc.sh | 2 + .../gcc/mingw32/4.4.0/install-tools/fixincl.exe | Bin 0 -> 94208 bytes .../gcc/mingw32/4.4.0/install-tools/mkheaders | 109 + .../gcc/mingw32/4.4.0/install-tools/mkinstalldirs | 158 + mingw/libexec/gcc/mingw32/4.4.0/libcloog-0.dll | Bin 0 -> 103936 bytes .../libexec/gcc/mingw32/4.4.0/libgcc_s_sjlj-1.dll | Bin 0 -> 231383 bytes mingw/libexec/gcc/mingw32/4.4.0/libgmp-3.dll | Bin 0 -> 343040 bytes mingw/libexec/gcc/mingw32/4.4.0/libgmpxx-4.dll | Bin 0 -> 512000 bytes mingw/libexec/gcc/mingw32/4.4.0/libiconv-2.dll | Bin 0 -> 915968 bytes mingw/libexec/gcc/mingw32/4.4.0/libmpfr-1.dll | Bin 0 -> 262144 bytes mingw/libexec/gcc/mingw32/4.4.0/libppl-7.dll | Bin 0 -> 1317888 bytes mingw/libexec/gcc/mingw32/4.4.0/libppl_c-2.dll | Bin 0 -> 3500544 bytes mingw/man/man1/cpp.1 | 979 + mingw/man/man1/gcc.1 | 15351 +++++++ mingw/man/man1/gcov.1 | 635 + mingw/man/man7/fsf-funding.7 | 192 + mingw/man/man7/gfdl.7 | 591 + mingw/man/man7/gpl.7 | 849 + mingw/pthreads-win32-README | 593 + 106 files changed, 135243 insertions(+) create mode 100644 mingw/CHANGELOG-gcc-4.4.0-tdm-1.txt create mode 100644 mingw/COPYING-gcc-tdm.txt create mode 100644 mingw/COPYING.lib-gcc-tdm.txt create mode 100644 mingw/README-gcc-tdm.txt create mode 100644 mingw/bin/cpp.exe create mode 100644 mingw/bin/gcc.exe create mode 100644 mingw/bin/gccbug create mode 100644 mingw/bin/gcov.exe create mode 100644 mingw/bin/libgcc_s_sjlj-1.dll create mode 100644 mingw/bin/mingw32-gcc-4.4.0.exe create mode 100644 mingw/bin/mingw32-gcc.exe create mode 100644 mingw/bin/pthreadGC2.dll create mode 100644 mingw/bin/pthreadGCE2.dll create mode 100644 mingw/include/pthread.h create mode 100644 mingw/include/sched.h create mode 100644 mingw/include/semaphore.h create mode 100644 mingw/info/cpp.info create mode 100644 mingw/info/cppinternals.info create mode 100644 mingw/info/gcc.info create mode 100644 mingw/info/gccinstall.info create mode 100644 mingw/info/gccint.info create mode 100644 mingw/info/libgomp.info create mode 100644 mingw/lib/gcc/mingw32/4.4.0/crtbegin.o create mode 100644 mingw/lib/gcc/mingw32/4.4.0/crtend.o create mode 100644 mingw/lib/gcc/mingw32/4.4.0/crtfastmath.o create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include-fixed/README create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include-fixed/limits.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include-fixed/syslimits.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/ammintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/avxintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/bmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/cpuid.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/cross-stdarg.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/emmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/float.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/immintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/iso646.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/mm3dnow.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/mm_malloc.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/mmintrin-common.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/mmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/nmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/omp.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/pmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/smmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/ssp/ssp.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/ssp/stdio.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/ssp/string.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/ssp/unistd.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/stdarg.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/stdbool.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/stddef.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/stdfix.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/tgmath.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/tmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/unwind.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/varargs.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/wmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/x86intrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/include/xmmintrin.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/fixinc_list create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/gsyslimits.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/include/README create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/include/limits.h create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/macro_list create mode 100644 mingw/lib/gcc/mingw32/4.4.0/install-tools/mkheaders.conf create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgcc.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgcc_eh.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgcc_s.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgcov.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgomp.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgomp.dll.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgomp.la create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libgomp.spec create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libiberty.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libssp.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libssp.dll.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libssp.la create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libssp_nonshared.a create mode 100644 mingw/lib/gcc/mingw32/4.4.0/libssp_nonshared.la create mode 100644 mingw/lib/gcc/mingw32/bin/libgomp-1.dll create mode 100644 mingw/lib/gcc/mingw32/bin/libssp-0.dll create mode 100644 mingw/lib/libpthread.a create mode 100644 mingw/lib/libpthreadGC2-static.a create mode 100644 mingw/lib/libpthreadGCE2.a create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/cc1.exe create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/collect2.exe create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/install-tools/fixinc.sh create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/install-tools/fixincl.exe create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/install-tools/mkheaders create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/install-tools/mkinstalldirs create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libcloog-0.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libgcc_s_sjlj-1.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libgmp-3.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libgmpxx-4.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libiconv-2.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libmpfr-1.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libppl-7.dll create mode 100644 mingw/libexec/gcc/mingw32/4.4.0/libppl_c-2.dll create mode 100644 mingw/man/man1/cpp.1 create mode 100644 mingw/man/man1/gcc.1 create mode 100644 mingw/man/man1/gcov.1 create mode 100644 mingw/man/man7/fsf-funding.7 create mode 100644 mingw/man/man7/gfdl.7 create mode 100644 mingw/man/man7/gpl.7 create mode 100644 mingw/pthreads-win32-README diff --git a/mingw/CHANGELOG-gcc-4.4.0-tdm-1.txt b/mingw/CHANGELOG-gcc-4.4.0-tdm-1.txt new file mode 100644 index 00000000..b62c77cf --- /dev/null +++ b/mingw/CHANGELOG-gcc-4.4.0-tdm-1.txt @@ -0,0 +1,4 @@ +>>>>> Changes for 4.4.0-tdm-1: + + * Support for the Graphite loop optimizations has been included. See the notes + in README-gcc-tdm.txt for more details. diff --git a/mingw/COPYING-gcc-tdm.txt b/mingw/COPYING-gcc-tdm.txt new file mode 100644 index 00000000..818433ec --- /dev/null +++ b/mingw/COPYING-gcc-tdm.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/mingw/COPYING.lib-gcc-tdm.txt b/mingw/COPYING.lib-gcc-tdm.txt new file mode 100644 index 00000000..0f295d99 --- /dev/null +++ b/mingw/COPYING.lib-gcc-tdm.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/mingw/README-gcc-tdm.txt b/mingw/README-gcc-tdm.txt new file mode 100644 index 00000000..7aa90948 --- /dev/null +++ b/mingw/README-gcc-tdm.txt @@ -0,0 +1,242 @@ +===== TDM's Experimental GCC/MinGW32 Builds ===== + +NOTICE: +TDM-GCC is an unofficial replacement for the official GCC binaries distributed +by the MinGW project; please note the following caveats: + * TDM-GCC is not formally affiliated with or endorsed by the MinGW project + (although several MinGW team members make use of it) + * No level of support for TDM-GCC is in any way guaranteed (although a best + effor is made to fix bugs as they are found or forward them to GCC Bugzilla) + +BUGS: +If you encounter a problem while using a TDM-GCC build that isn't present in a +previous MinGW or TDM release, you are encouraged to submit a helpful bug +report. Please see for further +instructions. + + +>>>>> INSTALLATION + +*** TDM/MinGW Installer *** + +Using the TDM/MinGW installer is highly recommended; it can automatically +install TDM-GCC (or the official MinGW GCC) as well as all supplementary MinGW +base system packages. The installer uses a standard wizard interface with +reasonable defaults. + +*** Manual Installation *** + +These binary packages are designed as drop-in replacements for the MinGW +project's official gcc packages. When using these packages, you are encouraged +to start with a clean slate and install only the MinGW packages which are +necessary to you. You'll need the following packages for basic Windows +development: + * binutils (binutils-2.19.1-mingw32-bin.tar.gz) + * mingw-runtime (mingwrt-3.15.2-mingw32-dev.tar.gz) + * w32api (w32api-3.13-mingw32-dev.tar.gz) +You might also want to install: + * mingw-utils (mingw-utils-0.3.tar.gz) + * mingw32-make (mingw32-make-3.81-20080326-3.tar.gz) + * gdb (gdb-6.8-mingw-3.tar.bz2) +You'll need GDB particularly if you want to use an IDE with debugging support. + +Decide whether to use the SJLJ or DW2 (Dwarf-2) exception model. Then, for the +exception model of your choice, download at least the "core" TDM-GCC package, +which includes the required base files as well as support for the C language. +You can also download any or all of the other TDM-GCC packages, depending on +which of GCC's supported languages you'd like to use. + +Extract the MinGW packages to an empty directory -- typically C:\MinGW. Then, +extract the TDM-GCC package(s) and choose to overwrite any duplicate files that +may exist. Finally, consider adding the bin directory to your Windows PATH +environment variable. + + +>>>>> USAGE NOTES + +*** "Graphite" Loop Transformations *** + +The TDM release of GCC 4.4.0 includes support for GCC 4.4's Graphite loop +transformation infrastructure. Because support for these optimizations is +currently optional, they are not enabled at any of the -O optimization levels. +If you are interested in using them, the relevant options are +"-floop-interchange", "-floop-strip-mine", and "-floop-block", and they are +documented at + + +*** Dwarf-2 vs. SJLJ unwinding *** + +GCC supports two methods of stack frame unwinding: Dwarf-2 (DW2) or SJLJ +(setjmp/longjmp). Until recently, only SJLJ has been available for the Windows +platform. This affects you, the end user, primarily in programs that throw and +catch exceptions. Programs which utilize the DW2 unwind method handle exceptions +much more quickly than programs which utilize the SJLJ method. However, the DW2 +method increases code size by a noticeable amount, and additionally cannot yet +unwind (pass exceptions) through "foreign" stack frames: stack frames compiled +by another non-DW2-enabled compiler, such as OS DLLs in a Windows callback. + +This means that you should in general choose the SJLJ version of the TDM-GCC +builds unless you know you need faster exception handling and can be certain you +will never throw an exception through a foreign stack area. + +As distributed, the SJLJ and DW2 packages of TDM-GCC can coexist peacefully +extracted to the same directory (e.g. any files in common are for all intents +and purposes identical), because the driver executables (the ones in the "bin" +directory) are suffixed with "-dw2" for the DW2 build, and the libraries and +other executables hide in another "-dw2" directory in "lib(exec)/gcc/mingw32". +This allows you to use the same single addition to your PATH, and use DW2 +exceptions only when you need them by calling "gcc-dw2", etc. If you truly want +DW2 exceptions as the default when calling "gcc" (from Makefiles or configury +systems, for example), you can rename or copy the suffixed executables to their +original names. + +*** Exceptions and DLLs *** + +The mingw32 port of GCC is gradually moving toward the generally accepted method +the rest of the world uses in allowing exceptions to propagate out of shared +libraries (DLLs) -- that is, reliance on a third DLL to contain state data +for the exception handling system. For any GCC language that supports exceptions +(and DLLs), this actually involves two extra DLLs: (1) libgcc_s*.dll, which +contains common core data, and (2) a language-specific DLL. You will note that +the first phase of this move (libgcc_s*.dll) finally builds correctly +out-of-the-box, but NOT THE SECOND PHASE (the language-specific DLLs). + +Until such time as the language-specific DLLs build correctly, therefore, +TDM-GCC will continue to rely on a versioned shared memory region. You do not +need any additional command-line options to throw exceptions out of DLLs. + +If you'd like to try out the new libgcc DLL for other reasons, add +"-shared-libgcc" to the command line, but be warned -- it may *break* inter-DLL +exceptions. + +*** OpenMP and pthreads-w32 *** + +The core binary package has been built to allow the use of GCC's "-fopenmp" +option for generating parallel code as specified by the OpenMP API. (See + for details.) + +The OpenMP support in the TDM-GCC builds has received very little testing; if +you find build or packaging problems, please send a bug report (see BUGS above). + +LibGOMP, GCC's implementation of OpenMP, currently only supports the use of the +POSIX Threads (pthreads) api for implementing its threading model. Because the +MinGW project itself doesn't distribute a pthreads implementation, the +"pthreads-win32" library, available from http://sourceware.org/pthreads-win32/, +is included in this distribution. If you aren't familiar with pthreads-win32, +please read the file "pthreads-win32-README" for more information, or the +documentation available at the website referenced above. pthreads-win32 is +distributed under the terms of the LGPL; see "COPYING.lib-gcc-tdm.txt" for +details. + +In order to correctly compile code that utilizes OpenMP/libGOMP, you need to add +the "-fopenmp" option at compile time AND link time, and link to libgomp.a and +libpthread.a at link time ("-lgomp -lpthread"). By default, libpthread.a links +the standard C-cleanup DLL version of pthreads-win32 to your program, which +means that you will need to ensure that the file "pthreadGC2.dll" (included in +the "bin" subdirectory of this package) can be found by your program. If you +plan to distribute a program that relies on pthreads-win32, be sure to +understand and comply with the terms of the LGPL (see COPYING.lib-gcc-tdm.txt). + +"libpthread.a" is included in the "lib/gcc/mingw32/4.4.0[-dw2]" subdirectory of +this package along with two other pthreads library files: + - "libpthreadGC2-static.a" provides a static version of the pthreads-win32 + library, but it requires some additional non-POSIX-compliant startup code + to be included in your program. See "pthreads-win32-README" for + details. + - "libpthreadGCE2.a" provides a version of the pthreads-win32 library with + a somewhat safer response in the face of unexpected C++ exceptions. + The creators of the pthreads-win32 library recommend, however, that this + version not be used, because code written to rely on this is less portable. + +*** Warnings and errors *** + +GCC 4 represents a significant step forward in optimization capabilities, error +detection, and standards compliance, and this is more true than ever with the +most recent GCC releases. For you, the end user, this will mean that code which +compiled and ran without problems on previous GCC releases will almost certainly +exhibit some warnings and maybe even a few errors. + +These meaningful warnings and errors are a very good thing, as they help the +programmer to write safer and more correct code. Unfortunately, there's also a +chance you might encounter incorrect warnings or errors, ICE's (internal +compiler errors, where the compiler makes a mistake and has to bail out), or +even miscompilations (where your code is incorrectly compiled and produces the +wrong result). + +If you encounter an ICE while using a TDM-GCC build, feel free to file a bug +report (see BUGS above). With any other unexpected problem, you are urged to +work from the assumption that it stems from user error, and ensure that your +code is correct and standards-compliant. + + +>>>>> BUGS AND KNOWN ISSUES + + * Under rare and as-yet-unidentified circumstances, inclusion of a precompiled + header will cause compilation to fail with an error like "error: calling + fdopen: bad file descriptor or file name". It seems only to happen when the + PCH is double-included by both an #include directive and the -include + command-line switch, but this in itself will not trigger the bug. + +As these builds are provided on the same basis as the source releases, and the +mingw32 target in GCC tends to receive somewhat less-than-average attention, +some bugs are expected. If you encounter a bug that you are certain is in the +GCC sources (such as an ICE), or that is due to an issue in the building or +packaging process, you are encouraged to report it. Please visit the TDM-GCC +Bugs Page at for bug reporting +instructions. + + +>>>>> LOCAL FIXES AND CHANGES + + - Includes a patch ported from the official MinGW 3.4.5 release to propagate + exceptions out of DLLs without the need for shared versions of libgcc and + libstdc++. + - Includes a patch which corrects backslash usage in header paths and fixes + path problems when debugging. (See + http://sourceforge.net/tracker2/?func=detail&aid=2145427&group_id=200665&atid=974439) + - Includes a patch to keep GCC from erroneously using the CWD as the + installation directory. + - Configured with "--enable-fully-dynamic-string", which fixes a bug when + passing empty std::string objects between DLLs and EXEs. + +[The following patches are only necessary for the 4.3 series and have been +applied in the 4.4 sources] + + - Includes a patch to fix a crash when all temporary directory environment + variables are empty. + + +>>>>> SOURCE CODE + +The source code for the TDM-GCC binary releases is available from the TDM-GCC +download page on SourceForge: + +(The most up-to-date link to the download site will always be available at +. + +The source is distributed in the form of the original ("vanilla") separate +source packages as downloaded, plus an additional "TDM Sources" package. The TDM +Sources package includes unified diffs of any changes made to the vanilla +sources, as well as the set of scripts used to build the binary releases. + + +>>>>> LICENSE + +The TDM-GCC packages contain binary distributions constituting a work based on +GCC, CLooG, and PPL, all of which are licensed under the GPL. For further +details, refer to the file "COPYING-gcc-tdm.txt" within the downloaded package. +Additionally, TDM-GCC contains binary files constituting works based on +libiconv, GMP, MPFR, and pthreads-w32, all of which are licensed under the LGPL; +COPYING.lib-gcc-tdm.txt contains a copy of the LGPL. + +The TDM-GCC distribution is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) any +later version. + +TDM-GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . diff --git a/mingw/bin/cpp.exe b/mingw/bin/cpp.exe new file mode 100644 index 0000000000000000000000000000000000000000..fbd075d14a26db9714533170ab9be97259e5bad1 GIT binary patch literal 205312 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

c)cl?@>P)#dLEUPtm7!D>J^6X!v8I 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 literal 0 HcwPel00001 diff --git a/mingw/bin/gcc.exe b/mingw/bin/gcc.exe new file mode 100644 index 0000000000000000000000000000000000000000..95988cb094fac4bd930f8f5b9c140941bb73bbff GIT binary patch literal 204288 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 !98cVq{S7Qb}%*(QzH80Bq^9KnU{G4$3tenE( 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%0DSAOEP&*AI;~Y6iM)$E-ek`#hdmieSBCTiG}q( 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. + +# The version of this send-pr. +VERSION=3.113 + +# The submitter-id for your site. +SUBMITTER=net + +# The default mail address for PR submissions. +GNATS_ADDR=gcc-gnats@gcc.gnu.org + +# The default release for this host. +# We have to guess at what program_transform_name might have done. +# "sed 1q" because neither "head -1" nor "head -n 1" is universal, argh. + +DEFAULT_GCC="`echo $0 | sed -e 's/bug//'`" +DEFAULT_RELEASE="`$DEFAULT_GCC --version | sed 1q`" + +# The default organization. +DEFAULT_ORGANIZATION= + +# What mailer to use. This must come after the config file, since it is +# host-dependent. +# Copied from cvsbug +if [ -f /usr/sbin/sendmail ]; then + MAIL_AGENT="/usr/sbin/sendmail -oi -t" +else + MAIL_AGENT="/usr/lib/sendmail -oi -t" +fi +MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'` +if [ ! -f "$MAILER" ] ; then + echo "$COMMAND: Cannot file mail program \"$MAILER\"." + echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file." + exit 1 +fi + + +# How to read the passwd database. +PASSWD="cat /etc/passwd" + +ECHON=bsd + +if [ $ECHON = bsd ] ; then + ECHON1="echo -n" + ECHON2= +elif [ $ECHON = sysv ] ; then + ECHON1=echo + ECHON2='\c' +else + ECHON1=echo + ECHON2= +fi + +# + +if [ -z "$TMPDIR" ]; then + TMPDIR=/tmp +else + if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then + TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`" + fi +fi + +if [ yes = yes ]; then + TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1 + TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1 + BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1 + REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1 + REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF" +else + TEMPD=$TMPDIR/pd$$ + TEMP0=$TEMPD/po$$ + TEMP=$TEMPD/p$$ + BAD=$TEMPD/pbad$$ + REF=$TEMPD/pf$$ + mkdir $TEMPD || exit 1 + REMOVE_TEMP="rm -rf $TEMPD" +fi + +# find a user name +if [ "$LOGNAME" = "" ]; then + if [ "$USER" != "" ]; then + LOGNAME="$USER" + else + LOGNAME="UNKNOWN" + fi +fi + +FROM="$LOGNAME" +REPLY_TO="${REPLY_TO:-${REPLYTO:-$LOGNAME}}" + +# Find out the name of the originator of this PR. +if [ -n "$NAME" ]; then + ORIGINATOR="$NAME" +elif [ -f $HOME/.fullname ]; then + ORIGINATOR="`sed -e '1q' $HOME/.fullname`" +else + # Must use temp file due to incompatibilities in quoting behavior + # and to protect shell metacharacters in the expansion of $LOGNAME + $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0 + ORIGINATOR="`cat $TEMP0`" + rm -f $TEMP0 +fi + +if [ -n "$ORGANIZATION" ]; then + if [ -f "$ORGANIZATION" ]; then + ORGANIZATION="`cat $ORGANIZATION`" + fi +else + if [ -n "$DEFAULT_ORGANIZATION" ]; then + ORGANIZATION="$DEFAULT_ORGANIZATION" + elif [ -f $HOME/.organization ]; then + ORGANIZATION="`cat $HOME/.organization`" + fi +fi + +# If they don't have a preferred editor set, then use +if [ -z "$VISUAL" ]; then + if [ -z "$EDITOR" ]; then + EDIT=vi + else + EDIT="$EDITOR" + fi +else + EDIT="$VISUAL" +fi + +# Find out some information. +SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \ + ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""` +ARCH=`[ -f /bin/arch ] && /bin/arch` +MACHINE=`[ -f /bin/machine ] && /bin/machine` + +COMMAND=`echo $0 | sed -e 's,.*/,,'` +USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity] + [-c address] [--request-id] [--version]" +REMOVE= +BATCH= +CC= +SEVERITY_C= + +while [ $# -gt 0 ]; do + case "$1" in + -r) ;; # Ignore for backward compat. + -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; GNATS_ADDR="$1" + EXPLICIT_GNATS_ADDR=true + ;; + -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; IN_FILE="$1" + if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then + echo "$COMMAND: cannot read $IN_FILE" + $REMOVE_TEMP + exit 1 + fi + ;; + -b | --batch) BATCH=true ;; + -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; CC="$1" + ;; + -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; SEVERITY_C="$1" + ;; + -p | -P | --print) PRINT=true ;; + -L | --list) FORMAT=norm ;; + -l | -CL | --lisp) FORMAT=lisp ;; + --request-id) REQUEST_ID=true ;; + -h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;; + -V | --version) cat < max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 70 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {print "Known categories:"; i = 0 } + { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } + END { print ""; }' + $REMOVE_TEMP + exit 0 + ;; +esac + +ORIGINATOR_C='' +ORGANIZATION_C='' +SYNOPSIS_C='' +if [ -z "$SEVERITY_C" ]; then + SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' +fi +PRIORITY_C='<[ low | medium ] (one line)>' +CATEGORY_C='' +RELEASE_C='' +ENVIRONMENT_C='' +DESCRIPTION_C='' +HOW_TO_REPEAT_C='' +FIX_C='' + +# Catch some signals. ($xs kludge needed by Sun /bin/sh) +xs=0 +trap '$REMOVE_TEMP; exit $xs' 0 +trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15 + +# If they told us to use a specific file, then do so. +if [ -n "$IN_FILE" ]; then + if [ "$IN_FILE" = "-" ]; then + # The PR is coming from the standard input. + if [ -n "$EXPLICIT_GNATS_ADDR" ]; then + sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP + else + cat > $TEMP + fi + else + # Use the file they named. + if [ -n "$EXPLICIT_GNATS_ADDR" ]; then + sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP + else + cat $IN_FILE > $TEMP + fi + fi +else + + if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then + # If their PR_FORM points to a bogus entry, then bail. + if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then + echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM" + sleep 1 + PRINT_INTERN=bad_prform + fi + fi + + if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then + cp $PR_FORM $TEMP || + ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit ) + else + for file in $TEMP $REF ; do + cat > $file << '__EOF__' +SEND-PR: -*- send-pr -*- +SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as +SEND-PR: will all comments (text enclosed in `<' and `>'). +SEND-PR: +SEND-PR: Please consult the GCC manual if you are not sure how to +SEND-PR: fill out a problem report. +SEND-PR: Note that the Synopsis field is mandatory. The Subject (for +SEND-PR: the mail) will be made the same as Synopsis unless explicitly +SEND-PR: changed. +SEND-PR: +SEND-PR: Choose from the following categories: +SEND-PR: +__EOF__ + + # Format the categories so they fit onto lines. + l=`echo "$CATEGORIES" | \ + awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 61 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {printf "SEND-PR: "; i = 0 } + { printf ("%-'$l'.'$l's", $0); + if ((++i % '$c') == 0) { printf "\nSEND-PR: " } } + END { printf "\nSEND-PR:\n"; }' >> $file + + cat >> $file << __EOF__ +To: $GNATS_ADDR +Subject: +From: $FROM +Reply-To: $REPLYTO +Cc: $CC +X-send-pr-version: $VERSION +X-GNATS-Notify: + + +>Submitter-Id: $SUBMITTER +>Originator: $ORIGINATOR +>Organization: ${ORGANIZATION-$ORGANIZATION_C} +>Confidential: no +SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public. +>Synopsis: $SYNOPSIS_C +>Severity: $SEVERITY_C +SEND-PR: critical GCC is completely not operational; no work-around known. +SEND-PR: serious GCC is not working properly; a work-around is possible. +SEND-PR: non-critical Report indicates minor problem. +>Priority: $PRIORITY_C +SEND-PR: medium The problem should be solved in the next release. +SEND-PR: low The problem should be solve in a future release. +>Category: $CATEGORY_C +>Class: <[ doc-bug | accepts-illegal | rejects-legal | wrong-code | ice-on-legal-code| ice-on-illegal-code | pessimizes-code | sw-bug | change-request | support ] (one line)> +SEND-PR: doc-bug The documentation is incorrect. +SEND-PR: accepts-illegal GCC fails to reject erroneous code. +SEND-PR: rejects-legal GCC gives an error message for correct code. +SEND-PR: wrong-code The machine code generated by gcc is incorrect. +SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE) +SEND-PR: for correct code +SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error +SEND-PR: pessimizes-code GCC misses an important optimization opportunity +SEND-PR: sw-bug Software bug of some other class than above +SEND-PR: change-request A feature in GCC is missing. +SEND-PR: support I need help with gcc. +>Release: ${DEFAULT_RELEASE-$RELEASE_C} +>Environment: +`[ -n "$SYSTEM" ] && echo System: $SYSTEM` +`[ -n "$ARCH" ] && echo Architecture: $ARCH` +`[ -n "$MACHINE" ] && echo Machine: $MACHINE` + $ENVIRONMENT_C +host: i386-pc-mingw32 +build: i386-pc-mingw32 +target: i386-pc-mingw32 +__EOF__ + cat >> $file << \__EOF__ +configured with: ../gcc-4.4.0/configure --prefix=/mingw --build=mingw32 --enable-languages=c,ada,c++,fortran,objc,obj-c++ --disable-nls --disable-win32-registry --disable-werror --enable-threads --disable-symvers --enable-cxx-flags='-fno-function-sections -fno-data-sections' --enable-fully-dynamic-string --enable-libgomp --enable-version-specific-runtime-libs --enable-sjlj-exceptions --with-pkgversion='TDM-1 mingw32' --with-bugurl=http://www.tdragon.net/recentgcc/bugs.php +__EOF__ + cat >> $file << __EOF__ +>Description: + $DESCRIPTION_C +>How-To-Repeat: + $HOW_TO_REPEAT_C +>Fix: + $FIX_C +__EOF__ + done + fi + + if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then + cat $TEMP + xs=0; exit + fi + + chmod u+w $TEMP + if [ -z "$REQUEST_ID" ]; then + eval $EDIT $TEMP + else + ed -s $TEMP << '__EOF__' +/^Subject/s/^Subject:.*/Subject: request for a customer id/ +/^>Category/s/^>Category:.*/>Category: send-pr/ +w +q +__EOF__ + fi + + if cmp -s $REF $TEMP ; then + echo "$COMMAND: problem report not filled out, therefore not sent" + xs=1; exit + fi +fi + +# +# Check the enumeration fields + +# This is a "sed-subroutine" with one keyword parameter +# (with workaround for Sun sed bug) +# +SED_CMD=' +/$PATTERN/{ +s||| +s|<.*>|| +s|^[ ]*|| +s|[ ]*$|| +p +q +}' + + +while [ -z "$REQUEST_ID" ]; do + CNT=0 + + # 1) Confidential + # + PATTERN=">Confidential:" + CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$CONFIDENTIAL" in + no) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;; + esac + # + # 2) Severity + # + PATTERN=">Severity:" + SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$SEVERITY" in + ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'." + esac + # + # 3) Priority + # + PATTERN=">Priority:" + PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$PRIORITY" in + ""|low|medium) CNT=`expr $CNT + 1` ;; + high) echo "$COMMAND: \`Priority: high' is reserved for GCC maintainers." ;; + *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." + esac + # + # 4) Category + # + PATTERN=">Category:" + CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + FOUND= + for C in $CATEGORIES + do + if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi + done + if [ -n "$FOUND" ]; then + CNT=`expr $CNT + 1` + else + if [ -z "$CATEGORY" ]; then + echo "$COMMAND: you must include a Category: field in your report." + else + echo "$COMMAND: \`$CATEGORY' is not a known category." + fi + fi + # + # 5) Class + # + PATTERN=">Class:" + CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$CLASS" in + ""|doc-bug|accepts-illegal|rejects-legal|wrong-code|ice-on-legal-code|ice-on-illegal-code|pessimizes-code|sw-bug|change-request|support) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." + esac + # + # 6) Check that synopsis is not empty + # + if grep "^>Synopsis:[ ]*${SYNOPSIS_C}\$" $TEMP > /dev/null + then + echo "$COMMAND: Synopsis must not be empty." + else + CNT=`expr $CNT + 1` + fi + + [ $CNT -lt 6 -a -z "$BATCH" ] && + echo "Errors were found with the problem report." + + while true; do + if [ -z "$BATCH" ]; then + $ECHON1 "a)bort, e)dit or s)end? $ECHON2" + read input + else + if [ $CNT -eq 6 ]; then + input=s + else + input=a + fi + fi + case "$input" in + a*) + if [ -z "$BATCH" ]; then + echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" + mv $TEMP $BAD + else + echo "$COMMAND: the problem report is not sent." + fi + xs=1; exit + ;; + e*) + eval $EDIT $TEMP + continue 2 + ;; + s*) + break 2 + ;; + esac + done +done + +# +# Make sure the mail has got a Subject. If not, use the same as +# in Synopsis. +# + +if grep '^Subject:[ ]*$' $TEMP > /dev/null +then + SYNOPSIS=`grep '^>Synopsis:' $TEMP | sed -e 's/^>Synopsis:[ ]*//'` + ed -s $TEMP << __EOF__ +/^Subject:/s/:.*\$/: $SYNOPSIS/ +w +q +__EOF__ +fi + +# +# Remove comments and send the problem report +# (we have to use patterns, where the comment contains regex chars) +# +# /^>Originator:/s;$ORIGINATOR;; +sed -e " +/^SEND-PR:/d +/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; +/^>Confidential:/s;<.*>;; +/^>Synopsis:/s;$SYNOPSIS_C;; +/^>Severity:/s;<.*>;; +/^>Priority:/s;<.*>;; +/^>Category:/s;$CATEGORY_C;; +/^>Class:/s;<.*>;; +/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; +/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; +/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; +/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; +/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; +" $TEMP > $REF + +if $MAIL_AGENT < $REF; then + echo "$COMMAND: problem report sent" + xs=0; exit +else + echo "$COMMAND: mysterious mail failure." + if [ -z "$BATCH" ]; then + echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" + mv $REF $BAD + else + echo "$COMMAND: the problem report is not sent." + fi + xs=1; exit +fi diff --git a/mingw/bin/gcov.exe b/mingw/bin/gcov.exe new file mode 100644 index 0000000000000000000000000000000000000000..c19bbb905b1cefe40a9cae03e2af7a18906a5f2e GIT binary patch literal 29715 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 literal 0 HcwPel00001 diff --git a/mingw/bin/libgcc_s_sjlj-1.dll b/mingw/bin/libgcc_s_sjlj-1.dll new file mode 100644 index 0000000000000000000000000000000000000000..8328530ebf455e06acc7e314aab3cd9aed7ea917 GIT binary patch literal 239840 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

I^Kp^>ew*mc$HuS&SMS65ZgZaKT^tn%o^q1SE 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 literal 0 HcwPel00001 diff --git a/mingw/bin/mingw32-gcc-4.4.0.exe b/mingw/bin/mingw32-gcc-4.4.0.exe new file mode 100644 index 0000000000000000000000000000000000000000..95988cb094fac4bd930f8f5b9c140941bb73bbff GIT binary patch literal 204288 zcwX$i3v^Re_BecRl0qmcw@9m~6szI`L7)msX{+fY>O9O@I2?S&xrMN=h8U z>zHB_gvnxp@a5986ZLvq1jFV5(VKh=-tK8)edxy^k)^CKE^uiAt z>E*G*MjDqOq_e#ECz)kQ7UKR*F$$JG!vE|4M#zuPli_#r??l!i9BXtC?BBz}sE0?) zdPIH%o~^wEHg+@oJ|}j|XB8gyk9dJ)eE5%$Rto=@!~c2b<+F}>bj}=n9+C=wMj3?* z{c~b{zhU(eZU9F@BK)Rw&uVd7K<4l^-f9JQPA!1^DUjdODY@rDCxU@TMIrPQJVCa;Sf`)zv_HY>9Ody#?t5a% zk^0c>>zEx+az{*4jsy(ic*E>kyH?4cBpePIVm`0=b1`s}Rim4K#Pi z6wG`?6oR9nO99&{%56IZl_Zy0Ud=_snnvYgr52y-vtRlb5UVD>Uh(yXIY(~#gLP?F_!b@}D%d*+#fc{*l`LO7{3 z{$FtCY%GT@smZ~69)|9>wFhs2-{9Xd1?w=E>HRCCjzdioO93mJgRejqb-(xC1t~?JX_=poSo8KA-EE7bPr(mssQvd2_V?RcaTC3nE~7f z@?nuk{g%xn7sEeceOoq1>-E_zh!0ph(Q&%`R;*?9vbV$7J_CDF+n$w`v%+K-Bq1D<3Z>Fqq7vi`RvDOTAH;c* zdCDozONYwbqlggqt4&mIc$Z$MNlR;jF?pKh{=T__W(>Xo$=VE)r&&1`NWdig_W;!R zU*qGoS?A$n+N|#QXoUCRe6}``e1dZT0PX+RZCrhR8;FniHlD*aEx+;=5bS z+`jNiXZFP-B=;YXwOaZCPxIy)aE1x2B3aHU``|?Dj*C+Et zKI9tHKtb5TnR*TacuvN34a{Q^WHN*dJ z;kA`PiBp!+)M~}`8Gf4GyCWR1fnJ}FX!cgm7Rh}OFreAiY6CsZk{gzjkf%Bt3suD* zE}C7cXs&7AgF|0b&THptqsN-b`27B>ruTPtqSlzPqH*s+Q&ZWGk4 zrtqpVplhyE2FWv%1_fC+Xm&qjJ+D>CeGAQp=BV{F$k%E1TGcW{wXF`GdAk2^aF}V&0e7? z)rjICyyik5J644b!Xxr$J0i^e4&uR9iOnpB;30fWA`-CI!+c=}?*LdC5rb_5 z*4il#*BsTDJL4fypK?wQQR*OC2_63>5&`lM!{2N6wOTHqW{t0)x0vaum~(^AWPrw1 z$LioWw*zI`S~bV&(BWSYqt%{>uvm>pzmQzGI&4T2<40;qztmcUoJ?K8v7ji*!W~vvO zUC_ds{kRZ^R;wowC9!GuQA)j@f>S|cMuhMjC2k0fieTd*9BhSqVm z3i5r2*I~xK0VYc9Z8f$Z#h(1O%#wk8e_&=(at3n5Br(PjF-fJrzI-t&fik>?IIA({ ztVFQ1uEA$((}O`<*|VM$kYw$3-zZQVhL3~rs^P=in238cz9 z5NlX@&6#w4269JI7rK`zanuJh?nE}r$Ln>}hf)wzjMwUUlJu%EeLGBuj_={>W_5>- z-91DgTFw;Il_E;N&=F_}*8d`lCn7(Rc~`P>TR3k7DNqaE`mY*3({8Bct zd!Ukhs6p)wZK!u8`^KBp@n$GTq%_`yqPq+`tB$v*)az(BJcumcouag^Q0#OI{(<>| zRdUac#7GgD9dreIxhbD|8FD~!MY=l|4aI;u#o`JMRJ(E}ICBN%NFV|0e;A%O;h)f9 z#*d=1N-MUwip>UPW|^Bzo`n-LI>U*jg_&dUePNbw5H4Q9m?p!kW&~BVO}hlmQRHFk z9zaAY4cd5my$h9LBQLt>%M8CR@1XCN>bR9>vd&Uxu5Wjmn@pT8U4ZBN?XbS}m=GWls#}l#&dR$7n`U zI7bf&M((F>ALNQXOaDtOeGg9$|1;XwigDOhOSG*PS`SgX0Q5}AxfsW?6$-<1IgJaR zxrLIBLwXb~vYvNdhT6?nIHz5LX+8} zeUG2Q$tfLL={ns@&TyShRKD~*CvN%~y8cgN$4AO%-YF)mH37B0zxtj_*c5`K_2`ib zTV|JH-jJSGn_Zfr*BD1%!!-qTbBlAHNl<3cLxLcWg9mM3ciwn+M9a7MEXkR7B)>2T zsCZk)Dsd`k_m&!Kf`F97R+}~uvjL-?a)E>nwIU8hCq z)r}}S9x#KX@@&ROrPVvwdFEa@Ra){cygSd#mJ^+4o|ZgI;H?ythw-4~Y&xnVPg7bt zK9b(8l-{&8kF!H1y8#H;)RNkeb$(O)fO@j>pvhR=rrBE2@UgY2j@GaQ<1BOqk~6=N zeCeop^&U4+Ic!BfHI4JO#^BZWGTzpxG=lb2lV=eFd1f@^!~LCS?vh8s8;-kzv9KtQ z*YeD+R^tRl7;$jl1W`+)UVUF&t$tH^03>OfHu^T_ZFk9+RkoTmrOj6`D!nup(pPDt zT>fN8QI5v7o8b??OSGboPV&v8X=ft@yMe}ZR9f-~N_!fUbDsE&5_HZpJge+;&NJSq zv@r8ev$fC~1+@u=I(9k@)qyIb@_Ag7p{u$6*BVNS#AHUcH(9M=I>autS)E>u4q{aUNQ3SJ>CWt4f?}!}ZxQnW ztyx8_O08DZ=pEp0P_9;+^qGYr0un@0b$kzs-sz&cJ9G$^Pd?_9cX;z7*$d=w_O~Ts!Z3_39U263vL)z`mt}Hp%*;OoOJG-t?ezGFxnJ*7=c4f<#IJ@punql_lD-ABc zA@~Z^=uHl9u?FYS6Lg|d-5io}{x?%olKTmGagNQBJP#stcW5^21uCJWR>y3m;kXWV zXsM%aLTB8<0xf4a+SkqD-m^>dGj}b#IaA(aQcjR}!L)}IJ1BtKZfnpqjnPW0^4(fd z=MKm>{4qHmlZjlDko)KYtW+CAj+jo#gZ3_RkAX~^L3#_08x5kWYUMPvX73va6W0!^ z;=F-nZTOpS3glZ*hHi|IVyPZw`s^LazDa}BJIq>66J{HyCAHx1B$N7pMb9%S*_UTh z^UNgO)k-egx1J~4qk`5n6j-;9cpGYgdd(i&l=cRe?u->Zfm^H~P4;&WCZj<{~D+M2*< z4<63bRcOu8sM(srPOQo#MD=XQ7ui!=-A*Y%hMSmxTO{~iAi{Wtjk>Mq2;Jfl1ASD%mj z7jk>x-hBbw+jHY_zkuQXS8@2lOaB3XFIc3m7hb9nc*A+jzO0hmPAL3e8@Fa|+(NE6TQ=0v#X6D_*O6tn>mB*qne)5( zay0cfD7m>lT}-->Zo?*%mk(@$WyhP`$(KDyj@E}P)4WPr4?6)&4sSb$(hF% zUY|MNtaPXgKx~l-!W~u)fACH_lUjbIajh6Opn`pzF~*$da4@Gp_*p<6OG~Sybq(Tn zlF-UwwFxvcP{o2*O(YZIax@`qt=`_CsH&&kz+JpZ?ftxBb~p02dRQrHTzXS&&Ux2R4xd2_|=EXh5D7aIh>Sj}&+__lDr*`??TN65VZ$%Qtu zl%LU|tyZbiEnX^%+}Bl;48=XTaY$MZXfcMhqA>xbJ9Hm~!LS?A)6%qZCV6^EHL^Db zY;DN2LFdb~w@JRgS-Ld#!OqiO+$m4}&ylD!i1+|9~asoxtLtbAk;0Y4SQ+QMbJt&Bw{0HBL~!3R_6$ z9w}Sk-OQ9<<%qg#=+Su)%fIkQG8qtP2QRm9TIs+B;_pXnGQ{;7VI(GdOyhX+Hs z1Ba6KBVaCWiV}!i>~+Q@#F%!eI#8Qv`nB1L)}4;VM-si+8$%aGm~Ri4bGlknwm1XX z?qXsrrAVw>Afyn4~$5Ye|^XH?!m{7^MdeLZ^+c>U8oIU?CF~ zxbucsf$-OHZ7rv^mQ!0RF4)#<*wzZYt>v+{UjCJ~_Qe(G*49#LYbmw0?1F7wjzyR0 zZ7q$p)$do@nj2Su+KTD!+f~q%lKfc5-C|bi26&LCmsMb1rA-}OqNZY6z=T^p!ltL* z;O272M@la>b;2le=pYaCbjlZN!EklqTY|NE5^4st2@y}h4DA!#)cmFlv=F(`uzf~m$?9@P$u+f@n7bZo5}34fo6(z zklbGi0=d4qxp3h^3s|B3y;*?7!_dN5edR9fgFDZYqyDqRE4us7mdE+e7VaZCWl8xD zc^-f~eA&E%%jUpdRz~^{Wv<;975`M`lfCiwShi-P9hoJw4Y&xSL4I|$v*-jRcTw8g-UsUl&LuVAXj1Tg+k(aEov8#?|{R| za^!Ed0b&<)o0nTui@uPe7TkmQlGv|Bn_^O%f=$4l)f!iEqd{^@Vvpf^^TZNcGj&$l zXxmlUYL+%Sn)}q}2-$+bHdq(ll9PQKzI+BRIXU$BDn8yuS^g>zvbdIMeiLwA*owH$ z$-WX)h~k{v;79qv(>d=U=-Sds;KtKSGop@~*`?0nT~|tObbx)Hzz|E0kU!JD6bu3- zhc~&zvCBI_EU~k`l06!lgeX3Ga$9BS3ilTIZ#V}qwgRtNue{XL`BErcG8=y9Erwj- zCU|H%xh>p*y6jPepqEy=+YER@#ZIm4-l7$;6WRw|$%t=w8{3a>LBhI!4AC*CL8vJbt`qx|4WWb0z#jHMO(HzO@lw@rHI)RNkvx(aS zYDIV9SLhd<21Ek*DRUFewv?41w<&O*fm!yMUIDEJG}zZZN0VtYRJUW(T`=eC4UF5R z0*{LaNbVw0=n+VeWpA4^7`i>Q7ARe;)CV^tpP7%tp@1u#l3CO;cZKF?3J-<8AVTkc zlWk(T^O$fG}t5}0!WaM#e z48E&3qPXLr{i9Hi>S)ShO~3LFS^-U3p2<1ZsyynuPmCJrr0?O1{0C5sGwTM){R(Ct zg9W2_^_gBpq}IGxs0PC3QrD4`%yTb}(|TiV$EJ82@Y+6 z78NtwQ3##1>M=DKZ{!{5JTp?3oM&driSA~3o^zf!PI*B~8%_dI&e2k@XU?6=qH?8x z5yJ;Vu~p31Ed{3E11X>T-lRoF{$Rbc0Tv*mZd0o&1SgFB-LrZy6IUOfLX7;SnXNzQ z-!yfzt4owGcI`XIo$bLFtth&t%|JOE4SNEMDA;)$oBHaPdRHI?g}?83X&i&fgq+8t(fCs@k)W?cMtustH1*=TFa)#jLRzeJmg8%e=?BcxjP zMOnq2WKe}3vB2`&OnKy%41c&ehIeS4JYZ(zvxop~fY$)J@xbhvati3jy)ZCHPSo;E zESc~8f8XZ6%UJzHaXN{#xJ*JduU zZKew5Lj^BJJM?ttW>J|LuvOzOBdj;DG=bW?%hJ0eAi8?&u7e@bCT^3~IrLC9nCtXR zs{pd{t{;#FChKbj>V5-=ApB=|cI`h$YYR6dHv|{*`Q0G*23*#me1I{Gy;&5(o8sp+ zHHBQbk{fqRGz!D<<%wAo1;qEfVRBgLPmSc>Dg5`LKlkXNKV|7Rkx@Ba?a-12p(T(y z5ViZJ;FBj{+&KvHMC5*Dw6U3b3iaaMWZnaWuEH0GwG*QRcTA6|T zV>7h5B<$tasv63MbG7$h8Mv345h)$-96MYw&n~sXuiS+_9F7Bk zEDhO2X}dL2!c|9Y8S2lzluJNR`K~h}cdnf@?>cJJXDQW+YJJnPBEA&d_M3}l)@4># z$mIITlx3?`+HpTl-45d$J6v)PLsf7LQ^DWQk8iYyHTu1}OYO+qDS1Xgw~aZ}f#N!q z9yD7WDtr?`twC`KVlZIyzXSAFs*QGO#eQ8z(so+)4fbkj<5AZ+(bXVWvut(BE}!W; znoj><+*C~-OCFJ7j3PpS@a3F{=aU zMXbf$g18xGQ)?viSWeKUnp8u?R?Aw@``NAeMZeeV8v-Vc8q)VH+!%PLr7a+VA$hJe zVH#~q*I4;@w4{Hx=sVF1EF1)-UK{CMmP8qbBM4 zOS_q*s=YS!##!VI95YuTW@cuBNQHUrjW*>R;4?7mumm%U>f{B#GA|$CybQ{uaNB5X zZ3?_Yq2ha^6Yi17grFz)zd#Eo07N3H3Gn+LTAb+FSr@^I&__aI@E`mLb8K zK1{3Kf>W4UI*PGFE56xkxv%pUEG} z;f1cQMUrP1q?A$3e)%D-7w|7zJxI?zPuFXOrntB76I#yZ3N5F<-@3a}D>Qe@XNh~; z-Lbpsdw)~a_lLjVvMaQw)!Alqp0z3kKQ#T&l#k9wAgd*~8#2|cyR$e*H@D9io z3Y>vdL+Jg}s1y@V43(TA)2s*EntT%bQK8)p=9iqL8dx_%%e%0A_y`pE1WDAG7{o?LZ`0-Q?+-0UK44p>I##LnQnkt}NE>TG&&={YAZp4gPp3SI1vq2a9n)NJ z>6Mt7zQ8mI#D>?X?xLc~ms%Q0c3{G1$)eMjLuvLkk{e?>7R^S_`A<-4(Vw&XFi&}Q zqVi5~Q)eVX^NC^!6bWGh6ZYEZS2n#9XDWIIAc^NJAH@V3b|8>2B(5hRq%n+Jw`MPp zJmcUc_!!pRV<=f7Zv8E|&{#qvBjf{?Hum*BVCYfs)wA9Ag;4WRea~St)@ym}H00I@ z6#5qZ6T$tUkOdM3a>XlS7$J({}yyWEn2E>4}-ck zHw8iS0hIZmNoiM!d8{BFOI!N;Zz4@>C-5{^M3LO%A*U|J$50adHIjjvZvzB9RKB!GAOb#Kx1r)5txp};f&kbq--&_QAJyden z;BS%S-Uz?YQFHcCxo>t6?LE*D3LLIBW(wD1R2tE8K#^L!LfuK@vS7l~IIe}s3KJYN z^+EMxgMuC}*NRub(6mvm$n}yt(6{GNh=M+8D1wgO2ts7?kSkn!+g1Bg^_W`Aajfpx zv~y`}mAz|QA-!2S*1kgWywevK%8fNvv7p9kc&Nr|e8}ZDxvC6M5-A{DO=@e%PrK)U zy8sUteH%AdgX1qk&AbffOf5`NY4S8mQm2FTT8?CqED?UyeuVbZc{S#z`x@TDN3g7rE5R)GdCvkiQieuc_w67o+6{rV~j1q+!(`~w1 zf}tqEE4QL&M^M&g_@TOQQ9=}#BLDgySP>ap2!oofH24ULtSuQ06@LU-7o6G^zuNzR zZ@{h@H@^on7`{56u{9*&d|ksBTded9ENx%m6_GlhNoISRv+)-e+k^1yn`F#r2%|2S zoh~Q)CW_hD$bIs_5Qh@Vp*+pDVnVR%>qunf^?)nFikWw|tiTO@`RFubIDNWUY?|Ki zzSBHcHs*5jT>DS+?x3s0*rB=TaB#^{{JZW>`gdpfX-F3tol4KTQ}?Lc-*I*MkTMD z>>0wLd`mX0vj}Jn>Q~{!*`@e)9NywMnqtYmQ8s5kBzZPU0<#R1CTPkG3^X`lOWbsP z-H%Pjm-q`p@eBBMRT%@e#n{=5Ex-q8PVN!2`^bHA)$Pb*ltZe0v06I;YcYvhD(x{h zNK2kM6^Ufuzycjr+fvQ3cxaXCSf1er<*ld$!^&CUow!H41Q*?8jJI3CU21&MuDg-^ z9Q2|L)@)0G$@J0ei=Ektg3`}*m)S&tK{W*fEh6nKjKS6yeWVqYc#WaMC;5y|z!_h1 zl1)WF;18ig@KQ=?lQHcDo^}j`M5sQRHVxCJ^R!PetsK+J){uH2-=$nC+oQz*G z>GVd)lszbQOBPXO%UP8{u90Xx%Q5LdXMDz{&R9K|Js9YgyuK5K?NVafN=npMS)?V6 zB2gtz)$9HcvwOQ0UJzF|77YFl^^;LdH@EPV;Ph@~CUg=F|AT0_rGk-i?-(hI-AQ>p zCPCQ(B<1I}V%Ziy6e_zO0M4;_!4oN{unYxq5O(SM=0U?8HwG)QezxF{CpYEbiixXw3Dzmc6IXuZ2Ry zSOrMcEKH2eT1-kT>)^C-9}er54mPYep}Nr04x|Orekp(Ue97ZUM47t68f;7wD4LU< zu?#wX;+6)Uy0mt%lP9DG@I3-1Pk>3c&Z@XRT~L?cZ_7_nB^QrO~=od>+dFz9;O>CG3{NS zEFj?7rCtN*)%~S)wVm!hB!wjRhme>TK0ufof(!fXQHHtuKvIMrIL6NJrBU0>l6&TH z(sgtly?>lUliXvWuKe(UsG55a*iv?)Of=L0|U$}2+ zVV1H&@^zwf*Yugbv$XPBQn~kQj^*fOabJrkUP39*ew?G7hj_$D_lI`C(>0Q3JN!E5 zi+4$$E%4;pY#_?o)Xw52ndK8QQuhJ=aXTX>wLLhYoz2-3!1O{NvHY5{9E|i^y@}4# z>GHMC(|zPCou_l;LC({~@+Iyq@&K-(mzb@2q05g`nHm8!co8&sgEtYf^x^7%xVeUD zP9W=pEk~G+c6&Q1tzau*qsNdYk=cs%q-eYR#0fvRGO7ntDmvE6i1QYZI?OeS$zUIH zwSQVv;b7IZQ(QFKk63Mush6ORLG@ls!gK3ftL7&5HP^%x6J}yd?l9mUooF5tSsLU< z#TagU<$dr_;ouPR->IG_@og(^ep3}#cmuvsf}2+loCS$06+4wjwFb{rVUPsb9t_Ub zs3nFYc_0t}=C z)H5sj@wvs4=T!jU?H#KyMx4B)Y*qud6^qelb}Y0WD&QiXI>%7(daAx*!-gK(1 z&V&{p!v(!Gx;?pEKg48P9<2VJbHv_Mb*$qIT|XhA#W z1+|9Tub~Hy5`?*l%3;;{UNFQY!?l7)bJSBfplu3W8gPX!IE;?vvjc_^&(`D_kfj|6 zLw4xCA=dqqgZ1vCQssm$ao_2+*x~QivsGe@TP40^oosuZ#o#tSt^m!xjGIznTmXMs zPlN7*b-V%3>qkHZWHv|hJ%jm_^;pA}a2s#501G_4K2~kick>NqFI>-K4e@O4{{shY zAmMucL=${P5Esqy;In&>ha8VPi<=yLJrb{+o;VoiaYsk9MpnGf)N3XFS}{l+DYumi z)T6%$!b*BMR=LmQOG#!S>y>*=zHBp#6WG!5VbldZPRk+km7JM3Dx)*};l7&XHCI(K zzFw27CI<3YKu#V7?$qR2;D3@}&8%6p(^Z{}h7w1v^4^@@s1WPb@}mJ3<^rt zgMkv$Xwx!LH?wB*`$BS7K*s2W9Kgmp!=~A#)XB|K2wHuR{v2aKID*osY0p@x5S<);@YjFntiZ zEb$yUj}i-B3lPoL8hrFz%q)zHA3@C9T4VA4k_R`qaZ3=l`ZcSG1&OjSu~DD{E+~yn z>)-=8Xru}BFD`{F+|-I*o8l|zcMdT3)FgGY*NkVbAH_4*MH4`|P!84@bw3zroee)m zA~nVly0Zc+4Q>P&p3Tu5ZQ4zqPQ?>zdL<<3hs|mVk}YB^#w1qfLdX>Ud+hxgeE*+} zEfpAo7koIb3eA+Pn^hAr23|)=sOwy}GyXGGTOA&JZ4_#3Eui#lAiA>oiLPu7@IL_m zYs4DccEQ^#J6$$q_fd?6;g0MpCHHQT`B1`mE*29{XZMj$;59$%ASHXa70 z5$?s#27pl{eYTXWqTlbM!?8bQ-zXo*9wzV0&XIR#50`g=?X)A?DmP@`Ah{oeD%3q0 z4PoPWZ|`Uu<3M+XE-o6JeXV?Llu6WaCb1OB{>p!W-LOD%Z-#te$Lw+zHwsFlvp66q z-_UV}TK5*E8c!uC8#8yypG)f+U~vrXP>b-anFkM)1#C@3)#M;l9j%^*g|m2Mv0p8& zRZprlXiE&>XKzWCVzkrR;Mz-Bw9{JU8qMC~*}~7?8U!U(b2P!!{iBj3OYfTeB$3A^ zXDO`OIBnk##mHJSEnUKkYF`t4 zdmu-RW?v(DFx&%Oqta6UI9r=M#M@gf+Mp`_&{)*)U~(kSAb7$t;xUX6-u>n6ozWZ` z3=b|yUpSsTKmBHxqVFe*&TLAxw>oUG1bu+u#p?eRa`E}M%7Wl!_8|wejo^b7eEttkZZOkEm@;D zxww%B-@insh^sYQIXQ)GjYJUxaHk$P+VV}zcEn{Hv9-EvP05<0Hq+6%U=5hby9wC= zP|TBl!Kdwj8RIXE#Lt{XNE<+o!V^q}Cv;ZF-k!4zdppmv$&!}Zwtp%jt%RC?;hEeL z430JffF$42@R|&tbDSWT#LpnRwTe$-{l)Q{S1Ay*@XT)#7Q{%(%yc&6$oL$$jbFO&c>?O$OO}4U}%8p!k4j-GS z98ypDCPe7^v2?tLqK{%yYr}`=z)_;JxCX{`yNK5b!3uv48Tu7S^}VyR7<#;p?Pf;< zEwM(iC+7=@I@b%;LEci=X;CiqCWl@`@=JDh-5_~TufiK2JdZ_i?X`*4&;#(aRt(*Y z2Lh^qaN2{Wa#SfAX>#Z~G|jeQm<=)E%0U_uq$PN$l?O6|eC=Nd0wOt!)CtK~h}_4~ zX4FZHpKQ?_e%hS{03NLg=B1JhuEv1$_TaQHh_$T4V-B_^qZvIDjlsM<2%R@nmmOPA zp*F7TKj9M6fYK}gg?)ppGe=xHk{=pTu1yL+rKQ)kR#t#6XZLxSlzYtMYX z+z5scJIua<#B8tAnfs7SueRW@N>oQEKS=Plh5h(=LWjS@Hucfz?JQ7jt5nAdR}O~u z0rJ#dLNvHL>Ys%yKrp}WkA^84GoSRr+fS>>YEV|8%Jp=Avhhnwdl4_A>odRTK)0(# zdmXfgj@H9utOTzQEO`L3)_`$<(Axl7i1nyg#{&$Xz4Sk%ap%LaT1I*P!mmPLyZO z#y!1zKoPhz`)auWov8~G*lz4SfW_=_@^rNW@}+{(f%}W&RN-iEOg$MsC40V7htsQ&Q4U`XV37|?p$a{l((q6!!V@GqScaXC^V+-(u!Ay4QiDy zFXEjPK{sN8^K>7jSLUe~f8vY3_gY;1YkgBi?;RrUh+JQa`BKr{nCv`#wdCmq1YMfv z9EWY^iQY+~S_S!(@7W7J9(KNLNK}HpDWZ3Rh+=j>%%XQ73UL+9_nL4rLXq8i^TfQ8 zuSzPRN6s@)23s_Nj&o48t$}snSTpokQ2qyYsoXnIt#mibmzLtmf!{gLTrE$77D_J7 z^Ez4}S!@#uU*xPfS#n`lcAX_Za~A#;1w!S7VuJh#m}h z9%ft3l{uQFX@7%$J75??kA-f<1sZLB4LOr`hbBO?`iYN3J&w}N?XTzC!T!P*Es3(E zsFnK+FhF%Q{4G~ygDF?lQ+z3<>*?cK* z{fNl2_vYENc=kIa=8ZcI)p-k1IW|Lf&rk5`n~ofrtLu5;4ryJj^x0zC*66G(k=)aa z?1c8qkk`4_DtVqqV%ix_ifw;bl`)`k<7WA=;?=rc4lM_3|AH77MS8rT^ZlAEApSQ8}+Cyo`R0Z147lfCZu&+qTS&8 zh=;Ol<&p<;;ze?FMVf6bnsW1K9Z>Ag8nBdE)X!rEjAlw!+O=N#4M>hg&sbW<5ckhZiG?+${!4s(oqjrzD=L*_TT0pOO40T0p7a$$71uq6eh{j($WO zJ@ql*sL-q>tEYmq{t1f0!W2PHLI}~LnuIY><^a2?wUEM#0iCddfsz-3mg=gJx|v&r z+1ZjO7j@;^Z<9Q@l>~SVT;QBR$JcDL17k)(pts__nNm(%Ep!c4+~@p?g95L3kMOG% z|B+Yx0ju~mtXS`HT^9yq<9ZZio2z;Oi6!+EnGou((2=gF2fYH-h`T-lqInc5Pbz&BX05WV?d>v5g?bxLD1*CsK-gj zC*w{+zW!01egFGI=tacqCmr>W;Z?-w4p7rqVpv8XffP{WDG9jA$e!ADm}!V5HD3t6 z3xu?C1>ljckLZhMC)r(3W;~*Qyax5_MscB}71e9`Cg<22CHGhiNlRO>ADC3yYN(Ea zK#+7EN$#$Y^!+1qAq^nyqKrzQcAL5kuhVoa)k6d3AB8@w=9PR7l_0P%5hKZ|>SnpP z`>{iHtLt2-HsLD1_sGV^?8NS_Ei?53q+11vas)0dIRf6j}|vWa`^OCnYYh7z3L zhbu(xZ9>l=!d$wy@9zl|`!LeAzumV`#B(es!%t+-WS76zmGk%RUSA0l#ugJvOup>6srVR~@Cnpji|$Pil@* z$(@#j(j<~SQu3f_0=*JKzeRl(*9Q)BDITl98=m@=StulC6tLT5>cI_|E?*#hIfW@U zs`gqS6tM7prmyiV1AtccX&8R6AYA;uDttc&-bP?KOC<*XT4gQ4FN;OBdX0K2O zy^*Ins_C3T9YxCDjQqH`4lFC*=n8GHGwVjB5p*uq;itPIfFj=n{Z!i6;OZ)n+&`J{ zntq4m-b)Y9O713lcwBOSOApf|cMUx#lKTsKm?*i+>0y%O{u@0!ExG?p5A(pPqld|0 zx6(tdaIF9~03Of5%7iC7b@< z4Ip{keeiq@ZB4=;eWu$oZMDS-no>LT90mlOJckSt5#vkwJ;%c23X|F%PS7rORhrbx zTvetCN{6Uai;9l2*S}_^KurRq2Ta(Upeprr9$q9sim!y=F8!I(eCCMuRK2lDs>n5S{CpKOTGftBJ$ zwYXZd)n(eMr6qW;C|%xHr`k8DUsdims71BncD2Z_U9Rrl^qcnpNBH>%JpX)ZfF6yt zd()ecfUvg#w&?@R#S##<6r}8?H3&2t96pU}qr)(p(k{NrC5N%v~n85MQ&Nuo` zgej#~OUd9{Fq_`{6Vi|D*t7y3^nIC+WZS0ANDuw>_c5Cq@qK{)e$A$X_&!j7Pu*nx zQ(S(@^E1#-sc()52BZR%@-o>J{!Hq$uv`xOGLvt`+Y?3kG^?`&Z^?Z=yZt8zr;|{F)H}EVsnPPm4PJ9$E_n8)HCQsW>jIoskv073m zOu9M|T5}SqXRXV&8Wi=l_e<_&81Y=ZOuJnzE)P9QdnIuTo91>6AkwwDznVtV3zdvJ zP5Sqy%epZDw{RBdVt9AhA*8V!gk2JaVa)EPX$X^|u_qVWTuD<$nwqyEK71Ui)TNc8L3KCQ!&mYkg$}~cxcKQj0=sP z78`k*6y0f1L2%tN^c`ag{tKnBF>9%GiWpXD&KcY^L&g=l3m&}%eL4EPaOv? z5bA>r*wmM8p)!B!R1C7?w?^};o%p%!arSD-Ga8b;6HKxES7Sx~1RR`^502Xth@esD zqT}nr*i%Pc=orSi#?1=}`zN4m+`Q17jy2o%;AGM{I48-ki&a%_?sMln!^vDW$>3dTzHSccX0Tl z9B$_DjT}CS!~1jiM;v|=hY#fNB^-VkhY#lPxg2ib@GCj|K@R`vID-%2@Inr6;PC4> zd<2Jo&f&Ln_{9v)rBNA1?kd0~=5j6ps<7q&?(n%f^K+9cU;yP5DWRmJyXD2Bz3`(J z!O3kx^b!^48CVyiF}BRM3Vl4GSr`pov;i4ce`JY{4ct$V4iY{1_}d^mPGii_6tGyP z<8IialIOE_y5iJ1&mgdGXWWQ13adBo3>(us7%v2JqK@yW=sS=~BN$KbfVKbc_u)@? zBs+6RrL%{W0R4$nftQ#EtbjXJrO{=pH$l_NRP~JO9GGBBj3^@NwOlglJ&WL#b&h=w zfjanGBktc(2bDj$&KV^43OsZ4lG%0Gz^XLkX#Nh!3;&hapQPz4@=y_$|(!F){A=cA|^?L*W1`Dzi(#JQuicg$| z!_<~{PBK=1E&Cvi=~+y&ufmwS`8)}~RfCKHe=#PQ?M}Iok|w_a6V!2*_ zT92$6wHpvw&|B0)S@``3zw8n4TN{pQWLUoJvB*5jI?p>K+bSYGi_*E2 zRcJint@x7XNl{>j_F2ZQxJWMt1Xf_%+?^Ead*s(SxOcap$GrzP0`-TgF7Op0J#$f9 z<~J}i#$LqfbEIG3mjmMTInpmWu(E{b;`EDzBfq{}nZt2Glo4F@&;N~S#PW8o{a^Ar zma>drul>*b0yEM|Sp^wGHzB)&`TGaMfF%y+t%&oFUq|)uski|SIUI?pu*~E5&he;* zmOOho6Yo za{xY9(+$%ZiAa3X(LV}F339|J(LT7d^62r zX!tQa=!0U}#PS8$wIIPejtMavuy_?Rn1^`_n@|g3CM@Khge)<0F{uurUqX>caMt@M z7U>RvX89^D-^{*<$}Y=>5;F8GI0GuvW>`GU%I-4Uqypp8&C?fRdKRRI@Jmz|2s?39h<(t9yW5s^Ur(nn--kzIBflHV z%;P9o6PGads362d!7Lniu7(|~Rh7DsA;j=r99vG~k4Bf%Tf|?Sam(q$pFp!Tl-Me= zhe__mM#lY3yl)@I%*w9zD6OEc3{(FaOKpp$dg_eao-m9Udt*WB}?}I9;)l8R(wO}CyukxX$ zUagA0@gmJPwxAxRZJs(c06JT9=q5buMBiHpK6IFfyd01jT%8MzTv53$rw$`7wmi&ISwTli% z=Mgvcqb-6JiBs?^tv1D4oqP~AwsM9s^u87t7}CyF9xx%M6|iY)jh0@Tty;Ah#;Y_f z%tejs;!uc=F+C2Z)LHKOW?o(Nbf=gD1!ktO7MNM2e}UPeyF{su(BDFIC=x2T2~?Gs z|MJrV7}{BJqvUR~M183MfA0XEsc7J~=PH!er(cW13+Dre(7j~fi)MT%ZkmAmw;YPD zr{O#)mz51x#*%6n1Bu=|mK&@7t!OR}UC~e2i#o753SlO+;#zHVCdTL_(TY)%bbeAE zWK4R$#2V3e!t3|P-T(9&qM#hK`b}*hh6XeL)gb6bu-9vG-DafFJJzR}aZB2B<5?m2jlYNfYj^_b*4@X4vc|JQ2+4w=x1qKsxY~VMerJlGBO+W&tGsyH&t}@0M zdeaPvf&2j18IdQL{>UXHVl{aCc3?TZ3sovhJHJHmXAUqlbfXG31I0f@J9@NNJk1{5 z&owfEc|S%|Mycdo(){c35;L|KFhJb*vPf5MS0L9tdJd_*R<+lqp2VJ}Np359QY7~+>}evb z2lg~ca$m)so|fDL+0$gn-H$!xN^TQ-nl8D!jPwLbSvz|It?Yo2LjP5z+_^{;q_@#U zg$VeVyX0nsm~u3MNpjQQIXs`kM{)S496pT0om{4)(-PqWIQ&T+&hwuMGWZk@*IkhN zIeaXK>n_NzI6R%hbr`8>_uE#S62{sL3y4&#}gIN)#yBxPO*l>jD?#4|F zM(#S@)%Z7pNuKeh?(_22!3)pJ{DT*sm&XoXcwX)}c;R`u`QU};xbVDa2hN|D7Z032FOMBKe_rl7aQ?hx9XNkpt~+r4ybNId zVVjDmEBj2BW!V}f-wBfbbs)oyV~|bwOmCA4#r77~*1%(-DauKRgRtXOz~X!s_EA)O zeMU1dGu2T`H;m#3U9?N_g8`ShDowN#T^Rn+cbBNzX_d<|Sxuo7yi=R_5Z-^x_>fP~ z`H+h}JuVj`50YO*{v$t+yhr{W@*Vkc&~$ZzEPk=MvmkmQ5`JW}bLs;mMHU{5?X97AyS)gYSvcmt?Sttlg#zQrb-2u}wk_Ze| zR2?WVa^1yfiEUk{vOAEHlZX)Ze!!Y~g_@G5AnXu_J;Pwx2*nBCZt-R>)u& z_Fzilu$u^`WS-ZoMPy+HbXt>zo`fE5jXH6wag%HBLavdqZ+x=PktI4a^ORcro+KrO zzwo_mP>VM>Up5Fz3ftXxU&-_bZS-1I*?`^IL>?6Sj`WKCjO6eNMIM!aVzF%x!}-H8 zaX6Q9k~qXqSOgN5=^Jww96?jBa#NN$h^C z?qfXu!N|=Hapu^gRyb-dG;H!$_fSZb@DsyrA-D2+3* z^O|W)gwNNjNF&P2asV&shchkElCalnmN(Q1CN0UC!D2mt;R>p_5?}LFhpxwT?qdD^ zD%S3k(RQC?8?W7QQoSqIdVgqLt>QB<$Q(6aT&GXU&jcts#I?D%`hcm7df}JvR+H6K zC##7Ymh!GRO_%lHK&#$^dr>*gvQ-!7X{J|J;`P`r>WG1i-b^T}rY^w6@fS2PP#Jt@ zek8IIK_NW92+#!xbgQeGI{`QZy7y+viCYYfUfr{J%FlNOb?**$@Bm!-|y%F zdh#eeKp*a>2k7w>uCIN}U6J$mu*IAauipXuF%G{pUcUqQ9ULwi8x7scxl0RK0KcL{NN1i)8v_&y;{j{vyF z;ai0`Jp$l!IQ$bKPLBZi3=aRJ5T{1~JfFi~;c(scI*i~z`~@+$>m>~K0K#;atC7Lz zc)RXyJ@Ny=ZbF#uYHemP+Sk|JtbrfUcez0=#*36aqjxfL)-nEVfe$IDC8$ zjK9R;BYR-{5e~nk2gWCIc%%o$GdTQU4~$>R;otVaxX9t3^}u+jg~31Qf$?n|{#p-= zuP3-XCm!P;GT1}$7=MGo?uf^DF@xP2kMZ9y*wyhEcd)j}rDn8k05dT3#drJ;p73Gk zLa>}XAE7oCDUg4H#V!8`3tMi5MJ+eOf|hr{VwShTLYC`b5z7Hsz;YEVUik}HxN-$7 zTKQ90u=4-FVwL}bm#JdxT6n4NK@lrgQsdl3KM15SYJ)zBvRn0=lRJEc5s;JK0wadM zWM5}zJ};<`?WDoG}M-vIB~Trtg_D?g$Y z)#a;28?qmhJb$7)SL>{*Z3CN(#rQqV1Zy|pg|pTh>c<@NN7yZlQgCfH;D+RkT{y$a z>%5i_-l4~eu?mO%jPJTY@NdWJ3wZUe9BfFCZ}#3Pme?yY{Jdw*;tD}|RI_jJ4f4XU zt2AShv-!1@SDoW- zl#?Phf4B{VuWwLdc)9NZ^hW?b++G8dNUz{8$Q=AKS~hwa@E1@x9e+XK+=;&+Zwm1j z#LaE^3)1Em`~_h%0)Ii)T#LUTY6jykNScfB7X(c|1Cw~Y@E63)IY0->#ZEC!$^dp# zzbEWo1KkZx#Eslz>N%~rj@D1;J3P6=Mj1+t#2Exou%(F>V*p{Fa#$^ceM(I4Ee0!R zun(e)5MV19Op7u>fGuufOk@skXA6hR96p1?w{!SR4$tTCW)3gl@L?Q&ki&;__y7(+ z&EY8=euf)7!~_9;b|-`H=WsKJw{iGa9NwS9>p1*V4j;(j$6{Hq2JW_@Pr>sK;+v2J*;YKrl4iA8LRijSVl6k*L?p>4cFm|6(i(An6n|KW< z!)U7`ZbZiH$Szv&oghqLhGNUD)+qS#@498h{rceD=Vc}EILvz9O;*dGk93n2WKWh~ zVsZQTJ+6h~d=9*o3Wh`6szT_-c0DCj;Vrq48h7 zTFZlewdJY*H!Yv*6W{W4|4qw({_@va#_Om5>y}^Y*77{~yAfjp*@}r?3QNu41%5O| zsqs^E8T5nF*)6fgG{8w}?U(c8)U=m z4_Aw_xJv)(yM=$~+uow(nzT_-)T&>d+#daw`kcWWsnqb7*t_BuZ9L>>)#z&qpT%9# zZ;F40$9De9Z;DH=Z@{~Fx2Z{3I{3yy)GAuEDJD$_K3qfk)M&s}aMmaMVERUDBc4_= zpeoq$VITnyqd&=T8T~#iMjvT86hW~dcG+MwexPnW)RjIezuP=enN-RG9P=-jWe8@8 zJA?W;3M{50{_BkheWi@~NlB1F#o>A;Q2Jqyk1as=3q@Dj>s?zT8Gdz}R$R|etmRNfUWZC}BFt1v?EvpNA!JznS9-wrwTkJuJLt!0$GfB~k}#~BeQ&-pvKUQw>GZn)?5 zqHj5+{9xJ*V>A6Az)$eGkuhU6}YB?`JaF((1fwInV;Ynvy1VpU3XY;F~$O+o5|CxNa1lA4Z*#iV}P`$S-w%5YKo_M zM(#CB=u(y)TD}P~m-EcZb{_gGX9nV;5!p(j)i*76m`+QgwKbU;Zxh$)!NqB~sG(k{ zWgOlIjYp=hvpT!3QI6x_=gSv4yRzjZXV<;Tk5+;xKUjlLzZi*xx4Sl{P)TJ=G_+|j zg*H(w7OX`sr1RLvSyy@REKUdHeDfsR9e=#Fc4_J497eWSN$Uq0Y{dDj}; zI~T7y3jd*JmOt_=Z(4&JS(c?4Tkxw6xhj1l9h*@4g|8?D*x)>BZ~!!TbZsBr^mYJ- zJJzO$k7W46VLT!Fya~gg{ts>M0v=U$^^MP&nIuCPI03>%jhfo@Er=JQU>Oo@NHRc? zC@O=t5__}QzFMU^1E>rRo*9@k$FXT^>ZRDCRbOgpr4}MZz$DN~K&m08k_wdwsm@_g z!^MyU$b9R!_Bk^Xke2WNe?K0c%sG4Sv-jF-ue~n&vK9ddM-SeI;JD<+yvGpeE%Dv~ z|0bhpR^gIkhlIpJIe1#a0nkKV6mjEAym>gp0;gz3?D#~W_e*lH5ry6#*BJK`|5Y0U zCG_FTlolDRwo}!lW~bUXI)^opOl)D%kka?Dt>oSaxB;sJ7d5gY2BgHJyw zE%B`gCB6Tx_;*>ncj3~$Pc{SmQHLg9<-JLBx3RaMcYY7tVlf&{532T=)V*ydBxPI7 zUc!8NiouuH?_`_KhHbHn;R@HNR`Iu6ykkjMw|UxJo_!Bq%Eci6)*TOp8R@|z88BSk7IL6U~ z02tWVA7HTcH;-W<8XApW`+4edS$FEOmr@1i_+ywXrDsl3&JcEJ`UxCX41sjlOL|h} z5dcGY&uWi{>x|$is(asfwnh-c_Lr{+#BGnxN|LoQ9gd}9m3c|aZ`V-;Mhp%)behPW z=JbC7i3^P@vMYD6H9j2A_w0aqflnBXrlYXWtnd(4yccJ?MVtd<$WQE{^pw9lr^R74T#w8?ogfC>fCHQ-*BkyGq+6?cZUPFg4wO& zGNyP`ocQY*_5%p}`HcX~X4GX9N*ae{noE(eDEuo&@c%jh|N(;6{k z>rQ0Q#Y=Y43dr<(-ytx5egdC~u(vKQ`9q;$z}aW&Le5?End)v~MUPMW3Z;^2`T#ZE z8?&SrHaDS=pr3nxm^9tce1dY7u?*4{<(RrF)8$U09PCbn{x_{gW)!(7^5i`zS!kxwvb&q~CP<+gwF8ym*%XIJ4pCL+I@RAa@ z>TeS}dU2hsZ~7c+%)|-8k@RmerUEO%#%k{16|A~g)pqu8^;dw%0U)1e5hlQY5#V3& z9pH2<55?4DW@~>riq;0}FC9$})R80U=dWfwKi`#pz6e*&JS}=XxaCg$TR7P{61TcS zt==h3XT^EEDImj!Tb5ju=uYQ55D;L#$sozAK zyFoLPX`CNc?5Af;HW&@s8w~SRZs@xVAvvjRr;x}X^~-xL)s*G z&B?eL!R~aP-o|V`H&A*Bf$JJ(v6vBBhl}&(c0PA*FRJ_#!S`R)(3d9(JnXSEuwD*+ z>lOWdg)sg6Is;M1u-?~-ZdQ>3g99g)(yM&3=INfei`)e;t6k$-O5AOJo9Q#v@XA%SJ^tT~z?N3E z-8&Q7NKbsoeIO@F@O_P$@>kWPi6=4@04Ij^tAsXacGpm!rt4#p+?0A$|8CNdSOHg| zxcC{JSgik764&4O?qG3iqEow=iSi~QtLGsy^=FAZwo$I@BlYqkt)ghAT2Vw@3D2Y~t)ehyDJxSe3Nc>d$Qe~~H7dDs%@4ROcVBb|4epw>d~eBwHzQ%x?pC!@KX zRJD|BR$1ICT-t3BOB#nbZ zvjC)G@sBAzl9PxGEWP_pI7_3{RAG*lyNQw$KcoKXzwc*tT~_-@#l89-=IK{PMq`LV zh>lDnqF>!FPS01STYCttW$UjXhtz&gyIzIIs(s_Zk#^~y;3lEJ!{y(%=vy>uQ@nH2 z*qD^U#*D-V;(DC}J?9&LEKQDWwLqf)5A6m|fmgqQ{pzI>iTaGOp5Qdbx&(;S-#N`Z zdopI@Gv5T|FJ;OPP0xlxYd9$F$TDt`xY+HO9Ndme5OTLcI)6%+mj zIUoEQioiZ)YAIJ(n{}9~Dc)bssj-;_3J}s%uvg5o= zd;F${c`$}3(4uoZu^!!Xis(y^nU?RFk{$rf4=8sW7kYc>;lX8@=-DuacLkE(nf+xROf4{FmX3ilj!Ylg>P#)I1vd(U%`b@*<3gjObwU>az1R$1a&$? z1Zd$0EmXg(P!uoTp?%9vhTNb)$>nkguGXh1jd`x-N8{Sa*@oIN80>nISM+Fyt9jW7 zV%33C+2YGqN}sTJrHW|@9f}@K1d^1kR;IECoMrdH)N^g~f1PANp!7nEcYZ9~K(vRZuIl(9axdU%wPa%GS9lR^=T--|t$7{s|}%5j;L<6XxM;o`+A| z-))>WQKsG{W@h^_L~@}j^|#?Cg2|e7Vf@i&P!qoeCCAGLvle)}afJ@W^gYBf%b@=} z&!M}-fNq8sIP+E*1m?iK1GT^wfAdyz;MfEBY;(}{<)=-Ql&kzBl9!ybdf0N>RIWbh zb!s{ByHNF`_C%MMmwf%4h&E>bnxubx%9wakyEfCVjl2sTARPIqYnWsDQ{ukNBGmjF zRFqmDrPO}l^X6N`cJ=E0d{-wIC8ru`_kPG}mm+Q4EimUJ3KU|f3%@@O-?DP>xAa?) z_&D=U=Jz3Ie6UejdsnsXCZz+F!M!siY{_V(rF(ZH0!2ET{$LTB6cWL1{06m3*cVtvlHZZ^PManP9$gdoj zA4dK~8TnrynBRi@lXdC*ih=ogFH!#9jQpDi=Fdg`8yWd?2Ij9p{;x9f%g^W^@*l~_ zzj0uG*~{pEMt;@6{2Jt!WaR&JV15VkFUrWDJ}`gb|DgXH&I#W}+4 z3ICim=zm838Tea`{6{kKZy1<=9Qk)-`Oe>?{~7tS2jz$D|9sBxHzNOyjQlegh5Zlce@6Zp^fL$fk7VSZLEkST z|Bj6OGw^pD`6cJhpZrJkKO=wg!2G4iKlxfZf08t?f5_iU`I&6E>s3np^tBZC@=j9c zr;VNssI8!gfAyYYnHE$D@?S#wFORVJV8OfUHPIv_FQxS&t>!ge1iAmPSTH_g(WDr1 zEzuGgdOX-moO^p_OZFfR#Z|KO9>uN6lOSy%2 zQUZna1R+d@mIG2d@+as4OJeE=#+Qo`Pw08nsJc57g$ru5ioB59>AQo|T<%Wqee&xM zI$V?R>b(UwFtVagqguJ{kzAY#IJ=Rra3j7ZdJU9Lws_Z4oxh_lTD|M3YVS*Gm$Ll| zb{5HTQ9B2`tG>=eG$UTrY*gy5*E~*KS8%9REy6o1jq5W%v%na`;}iVYOlrR*KhX=y z$%y%psG$1z0u>ON z+~sLmb{oUFOUu>@YN8bq#-C3(;da($jtf?j1^j59&Az816;kPKB2H520y)@f5r-$S z1Eu-)HQC{K*@9{xU8{-6VBe4|T>W*pzn!glnpNwYFi5EnR{m*Y*!>-vzoiC;I(!|P za{{cu3Vca+vZvj(M}A@+-Vi-xUv%PQD&n7vfTV}QQBT6tB^v*Ft5&s9 z(X*ltW?>7<#IUhEV1b5N)d5#_?v3%Se?&Jorch4yaX%C{K6yy^X~rkdpb$1i9m@9E z9KvMfAGwdPQC$1wpLS4T>Uzk5W(e<99h!Zp=4rz{C-%_T2Fmoc>mOr%^IbllN;Fwq zzhhg*Ty(?zhr5HQQyZ>&_RU;&zp;eNJ4@-c zc?SoU=AOPvtb10tsymj=#9^ZRX982M^fkP>ns`ylHKRB0%~$d6Fy4Ldm@}t_DoOs> z_o}h^i+Ud2Na!P$w2w^nsJ)iIAj2)c1Llz2VksKN-$h#aN1U;RRa=v(T2ovgRai;@5j4{#F z-AaSCxHU0kK~3q^-r>=2NTu_=gUi+T)VCrCm~kjNT~g{fFyN{+Lb?`VDL1Z z_%u*yQGDK7ctro2CE!0;=4Gc-1#5Yq8Gb>TN2|t(`L-u5yzAPD{mZMVkXqfTe?7@( zSIx2@;a!AH)bk?B$MEIO-*b)bP`7ueI+4h^J^tD6LC!Q#zNeoDZgBpb>e<*zA16XI zPHfBJ9waE$->LSPu6DV2V*P>)daQP6KBqPk8K$?aJ*Mw2BVYvBrSf}mz6$qfqNOE~ z9KxEDP{!MHr>QwOcZDaZ!1YCPP!W-+o~c?wm!A2w)L^{TD2CX;#GZ zxoaKqF_=P4Y7cO7l|hDG*turc^}S#|Ww_#SmG7UCc~J_n8fCZ@NyrkOV+T+c~858#MnHA`r@2i~YYVv&+kvSGK$0q3Ev%kwN zeD>G7REgPYBBN4G+&(>V1Q;6j8xSprRU*FG`bwn+ZaaK2+&u+{gu-bFZxWnUGYA#psh z`CfTJO|aFQS0-M4$6{s4tIG(O9&`2$K=j0-_>Dg&tzmV4D(=(r!}o&Iht>kywd?Tr zZ8f?c%d~!MLh<>%GSXY3)j@P|>+g6tIr*DN-hho+)coS_EU5#3i;=TsGioD@M}Eho zFvg(p{2I!ol6my(w{Eu_yk(a?1%$y8g|d)0gb@ zRE-^bS$@*}svPoB{;E~CtBsQ^mO{&%=T_bRTye|q@a(&J<0`bYZR_|^td|uqf+~eq zHv=FBu51*xpw^pcC?6%@%VqcgiwR$GQtgpnP^;G=T9tP--;q|kD8=)lTD3}zHN+iC zhpf8SC?85{Rd6}6p@2p8)M(W&F2`n|U9En6BZ!MWaj&1sPb>EVUG4y5&AnRugvHO( z;^#^H1pKdBK4lJu z=35Wva*O&6zkmaA1`dV(zNH+L)aoad56jf5r`49PP?18_9aeXBw-NRfW*T{tVvY`%Gmk>r6v9>hO-@4Ufn^kWFMNj5Kw5R&GN-4pG#>8h3Bj8 zrmD6+he}JB-W2~DSq^?i#bP1EJ*0WDPfU*v@zW`OTEtJA_+foZN!sKUSYj^jX6K9Q z5khyPa^O;>Px20az^C-ty!PpdgEbBDETtodEFaO3(qr|-5qDyL!)K#rs7vhX`-FPZ zx60Ky4*AtR)8tooHzb@i288(v`PFwD4&|zO(-Y5XAr9e9+PH}8?dd>-X)-WD5Jq|gTM-S0C-AbQT zUfG!ieci6q2h^QJ7pkXa`G-soRqd*~E$VAYkpwIQK+zdL+{=`45NC;Ql7m&${zg6| z`~sY6k%H^lrEXIW%4+p$j*nd5#GPSuaxir~6?YetZnsY0n7LF;mktEbqIjdQp{yb6Kt%K}NT;^+@-Ik7J(rv5WdqZPe?dCI!U2-cNDt5- z{lI{9d#c@?M*7o87vsg&B99?p(br%z;*0Zvc|CmYd^E5B@XUP2!0%^rzUa3-1@ATe znfOSJlYZeBq@&-~0sR}p>GYSG_L=1|4y|914t#7nomo#d!-M)?IDIz$kRBP3ZcV}e zz}fZGBmG-v*Tdz@PoFgoX*>Z&z3?>SvCwjkaj=}3Z?y~(5&Z9+!>4xTBU$OsmY-zCuiL0^TZf^=+0@F`SI}NL2S*5!(4VIH!lV_9-TFDw zFGmS}`W#OT=O{d7;mL_7?zj~laqrWIv8QjS5dFyMByBmArCPUq*$4=!F`z_Hn%@doyCZI$`Tw<9gfsaP&q= z%_Z>zHo@CLM`U2bykn5I6QFo_$ zBo4<7(fqA)-IT2mXJ6_^;9Hyb0i5V3iH3E-!RsW`5|Zo6q;C5Po9__f=bEVtYN9`} zs=iKn>pZF9fJ3f($SU>u_EXbx-5g2YI!$Wma73MXQRh&S6B%hz%aXrDXG_+^uR!PA zeoXCEK0Gz(NH~{|X=SWa6sYf#S>^7G`a2UN0oM`reYGbpQ7Hm;yyot7ZCi9%V6yD{ zS9Fd<%AH&{lN!1OAW1u;m3cNSw6@ovH)gEhG~Qy+_} zKG}P%+N*im2xIY|_j7X&jSDT_o5ljZ%ub`K#suPa69}aq5J>MX*%nwj=JZgnJyEW< zMCXn3FQf_@s37I`%UkCpjokb(RM}33 zQ4S(Pja1#K&tdsTeSLm=C6sW7IuZ|pZf>P_=C|L$i?q#|zSrKT9>(xSk5T_~BZy z)@>B|5sFms#kaus3r=Vi`DV^doWqxLL_ov^8FSF>(5mwY2&E@)@ic8>sO-xXnQqF} z<`XT%336R6i)D4c+HmZ})Le!_jK z9cqQ0-xoQVJ|xRV{NWu98%SU?slO_y>3Ua>caz#Mu9xO$bf)M;wzLILS}ow9!KQaS zNeq$1NYsCv6m}>sKP=yVg}EFe*X>9aMS~ZE7lK;l;CGGiEI>F~E;m}1gMS&s)Qb%L z+cdK_$^+}#)IkIJ7l^FldUemSSBkr}sdwE%w$@jv?jft`Nt5K)?F+wxONZ2zoY)F{ zAx&T2kB_{gm9IaG9?SarwN$Jr3xtBj5dA&UT26#OQdT?Pm4%ha z!w)zg&gV7T;vF#_CK^VRR649`hzDj1pP<=-5m&p^=dfK+Q#xL*-R5`>fV;EVG)REe|Qm(UwLEDy!+*X3X~az#_z z1gLHUgGltfl1LvOHYN>%p;^RG+SDx!UQA;!!6cdf)TVJKYCtzl@`@cJQ*^V8`uv~i z20=E(=t0+Yb$RPho!YN4#h^dZ2Bw|pT$7dG7z39_i z?$hj4pJt!gCtT(bL+l;W&3z;N@KTJ~wMJK>_&Y7tfz%j0JuC%(->LI~-;#oV*(n2l z#7ciJV+?A)XbiO4*=GOFf?tj4cce$ffl;~fWa^zK#q}qd9SPG5FVFe!=gjqra9lr0RN97cxD&T<&wuUHs{;Q)JO zpE)pca4PN!yw}9j82?lzFJsNhbY@GS zcaXgDol(TM`jU@YERVJ*eM#S !98cVq{S7Qb}%*(QzH80Bq^9KnU{G4$3tenE( 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%0DSAOEP&*AI;~Y6iM)$E-ek`#hdmieSBCTiG}q( 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 !98cVq{S7Qb}%*(QzH80Bq^9KnU{G4$3tenE( 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%0DSAOEP&*AI;~Y6iM)$E-ek`#hdmieSBCTiG}q( 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 veP;UF^n>XaQ@FXCxwm3@I!so(zqX;Cxl literal 0 HcwPel00001 diff --git a/mingw/bin/pthreadGCE2.dll b/mingw/bin/pthreadGCE2.dll new file mode 100644 index 0000000000000000000000000000000000000000..b92f1a8f37303f396145de87bbdeceb1117b8d77 GIT binary patch literal 90112 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

o%D$eBVj%?pNRWJlV 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 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif + +#ifdef _UWIN +# define HAVE_STRUCT_TIMESPEC 1 +# define HAVE_SIGNAL_H 1 +# undef HAVE_CONFIG_H +# pragma comment(lib, "pthread") +#endif + +/* + * ------------------------------------------------------------- + * + * + * Module: pthread.h + * + * Purpose: + * Provides an implementation of PThreads based upon the + * standard: + * + * POSIX 1003.1-2001 + * and + * The Single Unix Specification version 3 + * + * (these two are equivalent) + * + * in order to enhance code portability between Windows, + * various commercial Unix implementations, and Linux. + * + * See the ANNOUNCE file for a full list of conforming + * routines and defined constants, and a list of missing + * routines and constants not defined in this implementation. + * + * Authors: + * There have been many contributors to this library. + * The initial implementation was contributed by + * John Bossom, and several others have provided major + * sections or revisions of parts of the implementation. + * Often significant effort has been contributed to + * find and fix important bugs and other problems to + * improve the reliability of the library, which sometimes + * is not reflected in the amount of code which changed as + * result. + * As much as possible, the contributors are acknowledged + * in the ChangeLog file in the source code distribution + * where their changes are noted in detail. + * + * Contributors are listed in the CONTRIBUTORS file. + * + * As usual, all bouquets go to the contributors, and all + * brickbats go to the project maintainer. + * + * Maintainer: + * The code base for this project is coordinated and + * eventually pre-tested, packaged, and made available by + * + * Ross Johnson + * + * QA Testers: + * Ultimately, the library is tested in the real world by + * a host of competent and demanding scientists and + * engineers who report bugs and/or provide solutions + * which are then fixed or incorporated into subsequent + * versions of the library. Each time a bug is fixed, a + * test case is written to prove the fix and ensure + * that later changes to the code don't reintroduce the + * same error. The number of test cases is slowly growing + * and therefore so is the code reliability. + * + * Compliance: + * See the file ANNOUNCE for the list of implemented + * and not-implemented routines and defined options. + * Of course, these are all defined is this file as well. + * + * Web site: + * The source code and other information about this library + * are available from + * + * http://sources.redhat.com/pthreads-win32/ + * + * ------------------------------------------------------------- + */ + +/* Try to avoid including windows.h */ +#if defined(__MINGW32__) && defined(__cplusplus) +#define PTW32_INCLUDE_WINDOWS_H +#endif + +#ifdef PTW32_INCLUDE_WINDOWS_H +#include +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1300 || defined(__DMC__) +/* + * VC++6.0 or early compiler's header has no DWORD_PTR type. + */ +typedef unsigned long DWORD_PTR; +#endif +/* + * ----------------- + * autoconf switches + * ----------------- + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifndef NEED_FTIME +#include +#else /* NEED_FTIME */ +/* use native WIN32 time API */ +#endif /* NEED_FTIME */ + +#if HAVE_SIGNAL_H +#include +#endif /* HAVE_SIGNAL_H */ + +#include +#include + +/* + * Boolean values to make us independent of system includes. + */ +enum { + PTW32_FALSE = 0, + PTW32_TRUE = (! PTW32_FALSE) +}; + +/* + * This is a duplicate of what is in the autoconf config.h, + * which is only used when building the pthread-win32 libraries. + */ + +#ifndef PTW32_CONFIG_H +# if defined(WINCE) +# define NEED_ERRNO +# define NEED_SEM +# endif +# if defined(_UWIN) || defined(__MINGW32__) +# define HAVE_MODE_T +# endif +#endif + +/* + * + */ + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +#ifdef NEED_ERRNO +#include "need_errno.h" +#else +#include +#endif +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +/* + * Several systems don't define some error numbers. + */ +#ifndef ENOTSUP +# define ENOTSUP 48 /* This is the value in Solaris. */ +#endif + +#ifndef ETIMEDOUT +# define ETIMEDOUT 10060 /* This is the value in winsock.h. */ +#endif + +#ifndef ENOSYS +# define ENOSYS 140 /* Semi-arbitrary value */ +#endif + +#ifndef EDEADLK +# ifdef EDEADLOCK +# define EDEADLK EDEADLOCK +# else +# define EDEADLK 36 /* This is the value in MSVC. */ +# endif +#endif + +#include + +/* + * To avoid including windows.h we define only those things that we + * actually need from it. + */ +#ifndef PTW32_INCLUDE_WINDOWS_H +#ifndef HANDLE +# define PTW32__HANDLE_DEF +# define HANDLE void * +#endif +#ifndef DWORD +# define PTW32__DWORD_DEF +# define DWORD unsigned long +#endif +#endif + +#ifndef HAVE_STRUCT_TIMESPEC +#define HAVE_STRUCT_TIMESPEC 1 +struct timespec { + long tv_sec; + long tv_nsec; +}; +#endif /* HAVE_STRUCT_TIMESPEC */ + +#ifndef SIG_BLOCK +#define SIG_BLOCK 0 +#endif /* SIG_BLOCK */ + +#ifndef SIG_UNBLOCK +#define SIG_UNBLOCK 1 +#endif /* SIG_UNBLOCK */ + +#ifndef SIG_SETMASK +#define SIG_SETMASK 2 +#endif /* SIG_SETMASK */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * ------------------------------------------------------------- + * + * POSIX 1003.1-2001 Options + * ========================= + * + * Options are normally set in , which is not provided + * with pthreads-win32. + * + * For conformance with the Single Unix Specification (version 3), all of the + * options below are defined, and have a value of either -1 (not supported) + * or 200112L (supported). + * + * These options can neither be left undefined nor have a value of 0, because + * either indicates that sysconf(), which is not implemented, may be used at + * runtime to check the status of the option. + * + * _POSIX_THREADS (== 200112L) + * If == 200112L, you can use threads + * + * _POSIX_THREAD_ATTR_STACKSIZE (== 200112L) + * If == 200112L, you can control the size of a thread's + * stack + * pthread_attr_getstacksize + * pthread_attr_setstacksize + * + * _POSIX_THREAD_ATTR_STACKADDR (== -1) + * If == 200112L, you can allocate and control a thread's + * stack. If not supported, the following functions + * will return ENOSYS, indicating they are not + * supported: + * pthread_attr_getstackaddr + * pthread_attr_setstackaddr + * + * _POSIX_THREAD_PRIORITY_SCHEDULING (== -1) + * If == 200112L, you can use realtime scheduling. + * This option indicates that the behaviour of some + * implemented functions conforms to the additional TPS + * requirements in the standard. E.g. rwlocks favour + * writers over readers when threads have equal priority. + * + * _POSIX_THREAD_PRIO_INHERIT (== -1) + * If == 200112L, you can create priority inheritance + * mutexes. + * pthread_mutexattr_getprotocol + + * pthread_mutexattr_setprotocol + + * + * _POSIX_THREAD_PRIO_PROTECT (== -1) + * If == 200112L, you can create priority ceiling mutexes + * Indicates the availability of: + * pthread_mutex_getprioceiling + * pthread_mutex_setprioceiling + * pthread_mutexattr_getprioceiling + * pthread_mutexattr_getprotocol + + * pthread_mutexattr_setprioceiling + * pthread_mutexattr_setprotocol + + * + * _POSIX_THREAD_PROCESS_SHARED (== -1) + * If set, you can create mutexes and condition + * variables that can be shared with another + * process.If set, indicates the availability + * of: + * pthread_mutexattr_getpshared + * pthread_mutexattr_setpshared + * pthread_condattr_getpshared + * pthread_condattr_setpshared + * + * _POSIX_THREAD_SAFE_FUNCTIONS (== 200112L) + * If == 200112L you can use the special *_r library + * functions that provide thread-safe behaviour + * + * _POSIX_READER_WRITER_LOCKS (== 200112L) + * If == 200112L, you can use read/write locks + * + * _POSIX_SPIN_LOCKS (== 200112L) + * If == 200112L, you can use spin locks + * + * _POSIX_BARRIERS (== 200112L) + * If == 200112L, you can use barriers + * + * + These functions provide both 'inherit' and/or + * 'protect' protocol, based upon these macro + * settings. + * + * ------------------------------------------------------------- + */ + +/* + * POSIX Options + */ +#undef _POSIX_THREADS +#define _POSIX_THREADS 200112L + +#undef _POSIX_READER_WRITER_LOCKS +#define _POSIX_READER_WRITER_LOCKS 200112L + +#undef _POSIX_SPIN_LOCKS +#define _POSIX_SPIN_LOCKS 200112L + +#undef _POSIX_BARRIERS +#define _POSIX_BARRIERS 200112L + +#undef _POSIX_THREAD_SAFE_FUNCTIONS +#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L + +#undef _POSIX_THREAD_ATTR_STACKSIZE +#define _POSIX_THREAD_ATTR_STACKSIZE 200112L + +/* + * The following options are not supported + */ +#undef _POSIX_THREAD_ATTR_STACKADDR +#define _POSIX_THREAD_ATTR_STACKADDR -1 + +#undef _POSIX_THREAD_PRIO_INHERIT +#define _POSIX_THREAD_PRIO_INHERIT -1 + +#undef _POSIX_THREAD_PRIO_PROTECT +#define _POSIX_THREAD_PRIO_PROTECT -1 + +/* TPS is not fully supported. */ +#undef _POSIX_THREAD_PRIORITY_SCHEDULING +#define _POSIX_THREAD_PRIORITY_SCHEDULING -1 + +#undef _POSIX_THREAD_PROCESS_SHARED +#define _POSIX_THREAD_PROCESS_SHARED -1 + + +/* + * POSIX 1003.1-2001 Limits + * =========================== + * + * These limits are normally set in , which is not provided with + * pthreads-win32. + * + * PTHREAD_DESTRUCTOR_ITERATIONS + * Maximum number of attempts to destroy + * a thread's thread-specific data on + * termination (must be at least 4) + * + * PTHREAD_KEYS_MAX + * Maximum number of thread-specific data keys + * available per process (must be at least 128) + * + * PTHREAD_STACK_MIN + * Minimum supported stack size for a thread + * + * PTHREAD_THREADS_MAX + * Maximum number of threads supported per + * process (must be at least 64). + * + * SEM_NSEMS_MAX + * The maximum number of semaphores a process can have. + * (must be at least 256) + * + * SEM_VALUE_MAX + * The maximum value a semaphore can have. + * (must be at least 32767) + * + */ +#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 + +#undef PTHREAD_DESTRUCTOR_ITERATIONS +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS + +#undef _POSIX_THREAD_KEYS_MAX +#define _POSIX_THREAD_KEYS_MAX 128 + +#undef PTHREAD_KEYS_MAX +#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX + +#undef PTHREAD_STACK_MIN +#define PTHREAD_STACK_MIN 0 + +#undef _POSIX_THREAD_THREADS_MAX +#define _POSIX_THREAD_THREADS_MAX 64 + + /* Arbitrary value */ +#undef PTHREAD_THREADS_MAX +#define PTHREAD_THREADS_MAX 2019 + +#undef _POSIX_SEM_NSEMS_MAX +#define _POSIX_SEM_NSEMS_MAX 256 + + /* Arbitrary value */ +#undef SEM_NSEMS_MAX +#define SEM_NSEMS_MAX 1024 + +#undef _POSIX_SEM_VALUE_MAX +#define _POSIX_SEM_VALUE_MAX 32767 + +#undef SEM_VALUE_MAX +#define SEM_VALUE_MAX INT_MAX + + +#if __GNUC__ && ! defined (__declspec) +# error Please upgrade your GNU compiler to one that supports __declspec. +#endif + +/* + * When building the DLL code, you should define PTW32_BUILD so that + * the variables/functions are exported correctly. When using the DLL, + * do NOT define PTW32_BUILD, and then the variables/functions will + * be imported correctly. + */ +#ifndef PTW32_STATIC_LIB +# ifdef PTW32_BUILD +# define PTW32_DLLPORT __declspec (dllexport) +# else +# define PTW32_DLLPORT __declspec (dllimport) +# endif +#else +# define PTW32_DLLPORT +#endif + +/* + * The Open Watcom C/C++ compiler uses a non-standard calling convention + * that passes function args in registers unless __cdecl is explicitly specified + * in exposed function prototypes. + * + * We force all calls to cdecl even though this could slow Watcom code down + * slightly. If you know that the Watcom compiler will be used to build both + * the DLL and application, then you can probably define this as a null string. + * Remember that pthread.h (this file) is used for both the DLL and application builds. + */ +#define PTW32_CDECL __cdecl + +#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX +# include +#else +/* + * Generic handle type - intended to extend uniqueness beyond + * that available with a simple pointer. It should scale for either + * IA-32 or IA-64. + */ +typedef struct { + void * p; /* Pointer to actual object */ + unsigned int x; /* Extra information - reuse count etc */ +} ptw32_handle_t; + +typedef ptw32_handle_t pthread_t; +typedef struct pthread_attr_t_ * pthread_attr_t; +typedef struct pthread_once_t_ pthread_once_t; +typedef struct pthread_key_t_ * pthread_key_t; +typedef struct pthread_mutex_t_ * pthread_mutex_t; +typedef struct pthread_mutexattr_t_ * pthread_mutexattr_t; +typedef struct pthread_cond_t_ * pthread_cond_t; +typedef struct pthread_condattr_t_ * pthread_condattr_t; +#endif +typedef struct pthread_rwlock_t_ * pthread_rwlock_t; +typedef struct pthread_rwlockattr_t_ * pthread_rwlockattr_t; +typedef struct pthread_spinlock_t_ * pthread_spinlock_t; +typedef struct pthread_barrier_t_ * pthread_barrier_t; +typedef struct pthread_barrierattr_t_ * pthread_barrierattr_t; + +/* + * ==================== + * ==================== + * POSIX Threads + * ==================== + * ==================== + */ + +enum { +/* + * pthread_attr_{get,set}detachstate + */ + PTHREAD_CREATE_JOINABLE = 0, /* Default */ + PTHREAD_CREATE_DETACHED = 1, + +/* + * pthread_attr_{get,set}inheritsched + */ + PTHREAD_INHERIT_SCHED = 0, + PTHREAD_EXPLICIT_SCHED = 1, /* Default */ + +/* + * pthread_{get,set}scope + */ + PTHREAD_SCOPE_PROCESS = 0, + PTHREAD_SCOPE_SYSTEM = 1, /* Default */ + +/* + * pthread_setcancelstate paramters + */ + PTHREAD_CANCEL_ENABLE = 0, /* Default */ + PTHREAD_CANCEL_DISABLE = 1, + +/* + * pthread_setcanceltype parameters + */ + PTHREAD_CANCEL_ASYNCHRONOUS = 0, + PTHREAD_CANCEL_DEFERRED = 1, /* Default */ + +/* + * pthread_mutexattr_{get,set}pshared + * pthread_condattr_{get,set}pshared + */ + PTHREAD_PROCESS_PRIVATE = 0, + PTHREAD_PROCESS_SHARED = 1, + +/* + * pthread_barrier_wait + */ + PTHREAD_BARRIER_SERIAL_THREAD = -1 +}; + +/* + * ==================== + * ==================== + * Cancelation + * ==================== + * ==================== + */ +#define PTHREAD_CANCELED ((void *) -1) + + +/* + * ==================== + * ==================== + * Once Key + * ==================== + * ==================== + */ +#define PTHREAD_ONCE_INIT { PTW32_FALSE, 0, 0, 0} + +struct pthread_once_t_ +{ + int done; /* indicates if user function has been executed */ + void * lock; + int reserved1; + int reserved2; +}; + + +/* + * ==================== + * ==================== + * Object initialisers + * ==================== + * ==================== + */ +#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1) +#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER ((pthread_mutex_t) -2) +#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ((pthread_mutex_t) -3) + +/* + * Compatibility with LinuxThreads + */ +#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER +#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER + +#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1) + +#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1) + +#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1) + + +/* + * Mutex types. + */ +enum +{ + /* Compatibility with LinuxThreads */ + PTHREAD_MUTEX_FAST_NP, + PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_TIMED_NP = PTHREAD_MUTEX_FAST_NP, + PTHREAD_MUTEX_ADAPTIVE_NP = PTHREAD_MUTEX_FAST_NP, + /* For compatibility with POSIX */ + PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP, + PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL +}; + + +typedef struct ptw32_cleanup_t ptw32_cleanup_t; + +#if defined(_MSC_VER) +/* Disable MSVC 'anachronism used' warning */ +#pragma warning( disable : 4229 ) +#endif + +typedef void (* PTW32_CDECL ptw32_cleanup_callback_t)(void *); + +#if defined(_MSC_VER) +#pragma warning( default : 4229 ) +#endif + +struct ptw32_cleanup_t +{ + ptw32_cleanup_callback_t routine; + void *arg; + struct ptw32_cleanup_t *prev; +}; + +#ifdef __CLEANUP_SEH + /* + * WIN32 SEH version of cancel cleanup. + */ + +#define pthread_cleanup_push( _rout, _arg ) \ + { \ + ptw32_cleanup_t _cleanup; \ + \ + _cleanup.routine = (ptw32_cleanup_callback_t)(_rout); \ + _cleanup.arg = (_arg); \ + __try \ + { \ + +#define pthread_cleanup_pop( _execute ) \ + } \ + __finally \ + { \ + if( _execute || AbnormalTermination()) \ + { \ + (*(_cleanup.routine))( _cleanup.arg ); \ + } \ + } \ + } + +#else /* __CLEANUP_SEH */ + +#ifdef __CLEANUP_C + + /* + * C implementation of PThreads cancel cleanup + */ + +#define pthread_cleanup_push( _rout, _arg ) \ + { \ + ptw32_cleanup_t _cleanup; \ + \ + ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \ + +#define pthread_cleanup_pop( _execute ) \ + (void) ptw32_pop_cleanup( _execute ); \ + } + +#else /* __CLEANUP_C */ + +#ifdef __CLEANUP_CXX + + /* + * C++ version of cancel cleanup. + * - John E. Bossom. + */ + + class PThreadCleanup { + /* + * PThreadCleanup + * + * Purpose + * This class is a C++ helper class that is + * used to implement pthread_cleanup_push/ + * pthread_cleanup_pop. + * The destructor of this class automatically + * pops the pushed cleanup routine regardless + * of how the code exits the scope + * (i.e. such as by an exception) + */ + ptw32_cleanup_callback_t cleanUpRout; + void * obj; + int executeIt; + + public: + PThreadCleanup() : + cleanUpRout( 0 ), + obj( 0 ), + executeIt( 0 ) + /* + * No cleanup performed + */ + { + } + + PThreadCleanup( + ptw32_cleanup_callback_t routine, + void * arg ) : + cleanUpRout( routine ), + obj( arg ), + executeIt( 1 ) + /* + * Registers a cleanup routine for 'arg' + */ + { + } + + ~PThreadCleanup() + { + if ( executeIt && ((void *) cleanUpRout != (void *) 0) ) + { + (void) (*cleanUpRout)( obj ); + } + } + + void execute( int exec ) + { + executeIt = exec; + } + }; + + /* + * C++ implementation of PThreads cancel cleanup; + * This implementation takes advantage of a helper + * class who's destructor automatically calls the + * cleanup routine if we exit our scope weirdly + */ +#define pthread_cleanup_push( _rout, _arg ) \ + { \ + PThreadCleanup cleanup((ptw32_cleanup_callback_t)(_rout), \ + (void *) (_arg) ); + +#define pthread_cleanup_pop( _execute ) \ + cleanup.execute( _execute ); \ + } + +#else + +#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined. + +#endif /* __CLEANUP_CXX */ + +#endif /* __CLEANUP_C */ + +#endif /* __CLEANUP_SEH */ + +/* + * =============== + * =============== + * Methods + * =============== + * =============== + */ + +/* + * PThread Attribute Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_attr_init (pthread_attr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_destroy (pthread_attr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getdetachstate (const pthread_attr_t * attr, + int *detachstate); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstackaddr (const pthread_attr_t * attr, + void **stackaddr); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstacksize (const pthread_attr_t * attr, + size_t * stacksize); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setdetachstate (pthread_attr_t * attr, + int detachstate); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstackaddr (pthread_attr_t * attr, + void *stackaddr); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstacksize (pthread_attr_t * attr, + size_t stacksize); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedparam (const pthread_attr_t *attr, + struct sched_param *param); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedparam (pthread_attr_t *attr, + const struct sched_param *param); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedpolicy (pthread_attr_t *, + int); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedpolicy (pthread_attr_t *, + int *); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setinheritsched(pthread_attr_t * attr, + int inheritsched); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getinheritsched(pthread_attr_t * attr, + int * inheritsched); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_setscope (pthread_attr_t *, + int); + +PTW32_DLLPORT int PTW32_CDECL pthread_attr_getscope (const pthread_attr_t *, + int *); + +/* + * PThread Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_create (pthread_t * tid, + const pthread_attr_t * attr, + void *(*start) (void *), + void *arg); + +PTW32_DLLPORT int PTW32_CDECL pthread_detach (pthread_t tid); + +PTW32_DLLPORT int PTW32_CDECL pthread_equal (pthread_t t1, + pthread_t t2); + +PTW32_DLLPORT void PTW32_CDECL pthread_exit (void *value_ptr); + +PTW32_DLLPORT int PTW32_CDECL pthread_join (pthread_t thread, + void **value_ptr); + +PTW32_DLLPORT pthread_t PTW32_CDECL pthread_self (void); + +PTW32_DLLPORT int PTW32_CDECL pthread_cancel (pthread_t thread); + +PTW32_DLLPORT int PTW32_CDECL pthread_setcancelstate (int state, + int *oldstate); + +PTW32_DLLPORT int PTW32_CDECL pthread_setcanceltype (int type, + int *oldtype); + +PTW32_DLLPORT void PTW32_CDECL pthread_testcancel (void); + +PTW32_DLLPORT int PTW32_CDECL pthread_once (pthread_once_t * once_control, + void (*init_routine) (void)); + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +PTW32_DLLPORT ptw32_cleanup_t * PTW32_CDECL ptw32_pop_cleanup (int execute); + +PTW32_DLLPORT void PTW32_CDECL ptw32_push_cleanup (ptw32_cleanup_t * cleanup, + void (*routine) (void *), + void *arg); +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +/* + * Thread Specific Data Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_key_create (pthread_key_t * key, + void (*destructor) (void *)); + +PTW32_DLLPORT int PTW32_CDECL pthread_key_delete (pthread_key_t key); + +PTW32_DLLPORT int PTW32_CDECL pthread_setspecific (pthread_key_t key, + const void *value); + +PTW32_DLLPORT void * PTW32_CDECL pthread_getspecific (pthread_key_t key); + + +/* + * Mutex Attribute Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_init (pthread_mutexattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_destroy (pthread_mutexattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getpshared (const pthread_mutexattr_t + * attr, + int *pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setpshared (pthread_mutexattr_t * attr, + int pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind); +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind); + +/* + * Barrier Attribute Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_init (pthread_barrierattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_destroy (pthread_barrierattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_getpshared (const pthread_barrierattr_t + * attr, + int *pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_setpshared (pthread_barrierattr_t * attr, + int pshared); + +/* + * Mutex Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_init (pthread_mutex_t * mutex, + const pthread_mutexattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_destroy (pthread_mutex_t * mutex); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_lock (pthread_mutex_t * mutex); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_timedlock(pthread_mutex_t *mutex, + const struct timespec *abstime); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_trylock (pthread_mutex_t * mutex); + +PTW32_DLLPORT int PTW32_CDECL pthread_mutex_unlock (pthread_mutex_t * mutex); + +/* + * Spinlock Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_spin_init (pthread_spinlock_t * lock, int pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_spin_destroy (pthread_spinlock_t * lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_spin_lock (pthread_spinlock_t * lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_spin_trylock (pthread_spinlock_t * lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_spin_unlock (pthread_spinlock_t * lock); + +/* + * Barrier Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_barrier_init (pthread_barrier_t * barrier, + const pthread_barrierattr_t * attr, + unsigned int count); + +PTW32_DLLPORT int PTW32_CDECL pthread_barrier_destroy (pthread_barrier_t * barrier); + +PTW32_DLLPORT int PTW32_CDECL pthread_barrier_wait (pthread_barrier_t * barrier); + +/* + * Condition Variable Attribute Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_condattr_init (pthread_condattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_condattr_destroy (pthread_condattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_condattr_getpshared (const pthread_condattr_t * attr, + int *pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_condattr_setpshared (pthread_condattr_t * attr, + int pshared); + +/* + * Condition Variable Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_cond_init (pthread_cond_t * cond, + const pthread_condattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_cond_destroy (pthread_cond_t * cond); + +PTW32_DLLPORT int PTW32_CDECL pthread_cond_wait (pthread_cond_t * cond, + pthread_mutex_t * mutex); + +PTW32_DLLPORT int PTW32_CDECL pthread_cond_timedwait (pthread_cond_t * cond, + pthread_mutex_t * mutex, + const struct timespec *abstime); + +PTW32_DLLPORT int PTW32_CDECL pthread_cond_signal (pthread_cond_t * cond); + +PTW32_DLLPORT int PTW32_CDECL pthread_cond_broadcast (pthread_cond_t * cond); + +/* + * Scheduling + */ +PTW32_DLLPORT int PTW32_CDECL pthread_setschedparam (pthread_t thread, + int policy, + const struct sched_param *param); + +PTW32_DLLPORT int PTW32_CDECL pthread_getschedparam (pthread_t thread, + int *policy, + struct sched_param *param); + +PTW32_DLLPORT int PTW32_CDECL pthread_setconcurrency (int); + +PTW32_DLLPORT int PTW32_CDECL pthread_getconcurrency (void); + +/* + * Read-Write Lock Functions + */ +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_init(pthread_rwlock_t *lock, + const pthread_rwlockattr_t *attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_destroy(pthread_rwlock_t *lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_tryrdlock(pthread_rwlock_t *); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_trywrlock(pthread_rwlock_t *); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_rdlock(pthread_rwlock_t *lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedrdlock(pthread_rwlock_t *lock, + const struct timespec *abstime); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_wrlock(pthread_rwlock_t *lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedwrlock(pthread_rwlock_t *lock, + const struct timespec *abstime); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_unlock(pthread_rwlock_t *lock); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_init (pthread_rwlockattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_destroy (pthread_rwlockattr_t * attr); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * attr, + int *pshared); + +PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_setpshared (pthread_rwlockattr_t * attr, + int pshared); + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 + +/* + * Signal Functions. Should be defined in but MSVC and MinGW32 + * already have signal.h that don't define these. + */ +PTW32_DLLPORT int PTW32_CDECL pthread_kill(pthread_t thread, int sig); + +/* + * Non-portable functions + */ + +/* + * Compatibility with Linux. + */ +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr, + int kind); +PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, + int *kind); + +/* + * Possibly supported by other POSIX threads implementations + */ +PTW32_DLLPORT int PTW32_CDECL pthread_delay_np (struct timespec * interval); +PTW32_DLLPORT int PTW32_CDECL pthread_num_processors_np(void); + +/* + * Useful if an application wants to statically link + * the lib rather than load the DLL at run-time. + */ +PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_attach_np(void); +PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_detach_np(void); +PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_attach_np(void); +PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_detach_np(void); + +/* + * Features that are auto-detected at load/run time. + */ +PTW32_DLLPORT int PTW32_CDECL pthread_win32_test_features_np(int); +enum ptw32_features { + PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE = 0x0001, /* System provides it. */ + PTW32_ALERTABLE_ASYNC_CANCEL = 0x0002 /* Can cancel blocked threads. */ +}; + +/* + * Register a system time change with the library. + * Causes the library to perform various functions + * in response to the change. Should be called whenever + * the application's top level window receives a + * WM_TIMECHANGE message. It can be passed directly to + * pthread_create() as a new thread if desired. + */ +PTW32_DLLPORT void * PTW32_CDECL pthread_timechange_handler_np(void *); + +#endif /*PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 */ + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX + +/* + * Returns the Win32 HANDLE for the POSIX thread. + */ +PTW32_DLLPORT HANDLE PTW32_CDECL pthread_getw32threadhandle_np(pthread_t thread); + + +/* + * Protected Methods + * + * This function blocks until the given WIN32 handle + * is signaled or pthread_cancel had been called. + * This function allows the caller to hook into the + * PThreads cancel mechanism. It is implemented using + * + * WaitForMultipleObjects + * + * on 'waitHandle' and a manually reset WIN32 Event + * used to implement pthread_cancel. The 'timeout' + * argument to TimedWait is simply passed to + * WaitForMultipleObjects. + */ +PTW32_DLLPORT int PTW32_CDECL pthreadCancelableWait (HANDLE waitHandle); +PTW32_DLLPORT int PTW32_CDECL pthreadCancelableTimedWait (HANDLE waitHandle, + DWORD timeout); + +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +/* + * Thread-Safe C Runtime Library Mappings. + */ +#ifndef _UWIN +# if defined(NEED_ERRNO) + PTW32_DLLPORT int * PTW32_CDECL _errno( void ); +# else +# ifndef errno +# if (defined(_MT) || defined(_DLL)) + __declspec(dllimport) extern int * __cdecl _errno(void); +# define errno (*_errno()) +# endif +# endif +# endif +#endif + +/* + * WIN32 C runtime library had been made thread-safe + * without affecting the user interface. Provide + * mappings from the UNIX thread-safe versions to + * the standard C runtime library calls. + * Only provide function mappings for functions that + * actually exist on WIN32. + */ + +#if !defined(__MINGW32__) +#define strtok_r( _s, _sep, _lasts ) \ + ( *(_lasts) = strtok( (_s), (_sep) ) ) +#endif /* !__MINGW32__ */ + +#define asctime_r( _tm, _buf ) \ + ( strcpy( (_buf), asctime( (_tm) ) ), \ + (_buf) ) + +#define ctime_r( _clock, _buf ) \ + ( strcpy( (_buf), ctime( (_clock) ) ), \ + (_buf) ) + +#define gmtime_r( _clock, _result ) \ + ( *(_result) = *gmtime( (_clock) ), \ + (_result) ) + +#define localtime_r( _clock, _result ) \ + ( *(_result) = *localtime( (_clock) ), \ + (_result) ) + +#define rand_r( _seed ) \ + ( _seed == _seed? rand() : rand() ) + + +/* + * Some compiler environments don't define some things. + */ +#if defined(__BORLANDC__) +# define _ftime ftime +# define _timeb timeb +#endif + +#ifdef __cplusplus + +/* + * Internal exceptions + */ +class ptw32_exception {}; +class ptw32_exception_cancel : public ptw32_exception {}; +class ptw32_exception_exit : public ptw32_exception {}; + +#endif + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX + +/* FIXME: This is only required if the library was built using SEH */ +/* + * Get internal SEH tag + */ +PTW32_DLLPORT DWORD PTW32_CDECL ptw32_get_exception_services_code(void); + +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +#ifndef PTW32_BUILD + +#ifdef __CLEANUP_SEH + +/* + * Redefine the SEH __except keyword to ensure that applications + * propagate our internal exceptions up to the library's internal handlers. + */ +#define __except( E ) \ + __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \ + ? EXCEPTION_CONTINUE_SEARCH : ( E ) ) + +#endif /* __CLEANUP_SEH */ + +#ifdef __CLEANUP_CXX + +/* + * Redefine the C++ catch keyword to ensure that applications + * propagate our internal exceptions up to the library's internal handlers. + */ +#ifdef _MSC_VER + /* + * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll' + * if you want Pthread-Win32 cancelation and pthread_exit to work. + */ + +#ifndef PtW32NoCatchWarn + +#pragma message("Specify \"/DPtW32NoCatchWarn\" compiler flag to skip this message.") +#pragma message("------------------------------------------------------------------") +#pragma message("When compiling applications with MSVC++ and C++ exception handling:") +#pragma message(" Replace any 'catch( ... )' in routines called from POSIX threads") +#pragma message(" with 'PtW32CatchAll' or 'CATCHALL' if you want POSIX thread") +#pragma message(" cancelation and pthread_exit to work. For example:") +#pragma message("") +#pragma message(" #ifdef PtW32CatchAll") +#pragma message(" PtW32CatchAll") +#pragma message(" #else") +#pragma message(" catch(...)") +#pragma message(" #endif") +#pragma message(" {") +#pragma message(" /* Catchall block processing */") +#pragma message(" }") +#pragma message("------------------------------------------------------------------") + +#endif + +#define PtW32CatchAll \ + catch( ptw32_exception & ) { throw; } \ + catch( ... ) + +#else /* _MSC_VER */ + +#define catch( E ) \ + catch( ptw32_exception & ) { throw; } \ + catch( E ) + +#endif /* _MSC_VER */ + +#endif /* __CLEANUP_CXX */ + +#endif /* ! PTW32_BUILD */ + +#ifdef __cplusplus +} /* End of extern "C" */ +#endif /* __cplusplus */ + +#ifdef PTW32__HANDLE_DEF +# undef HANDLE +#endif +#ifdef PTW32__DWORD_DEF +# undef DWORD +#endif + +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX + +#endif /* ! RC_INVOKED */ + +#endif /* PTHREAD_H */ diff --git a/mingw/include/sched.h b/mingw/include/sched.h new file mode 100644 index 00000000..dfb8e934 --- /dev/null +++ b/mingw/include/sched.h @@ -0,0 +1,178 @@ +/* + * Module: sched.h + * + * Purpose: + * Provides an implementation of POSIX realtime extensions + * as defined in + * + * POSIX 1003.1b-1993 (POSIX.1b) + * + * -------------------------------------------------------------------------- + * + * Pthreads-win32 - POSIX Threads Library for Win32 + * Copyright(C) 1998 John E. Bossom + * Copyright(C) 1999,2005 Pthreads-win32 contributors + * + * Contact Email: rpj@callisto.canberra.edu.au + * + * The current list of contributors is contained + * in the file CONTRIBUTORS included with the source + * code distribution. The list can also be seen at the + * following World Wide Web location: + * http://sources.redhat.com/pthreads-win32/contributors.html + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file COPYING.LIB; + * if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +#ifndef _SCHED_H +#define _SCHED_H + +#undef PTW32_LEVEL + +#if defined(_POSIX_SOURCE) +#define PTW32_LEVEL 0 +/* Early POSIX */ +#endif + +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif + + +#if __GNUC__ && ! defined (__declspec) +# error Please upgrade your GNU compiler to one that supports __declspec. +#endif + +/* + * When building the DLL code, you should define PTW32_BUILD so that + * the variables/functions are exported correctly. When using the DLL, + * do NOT define PTW32_BUILD, and then the variables/functions will + * be imported correctly. + */ +#ifndef PTW32_STATIC_LIB +# ifdef PTW32_BUILD +# define PTW32_DLLPORT __declspec (dllexport) +# else +# define PTW32_DLLPORT __declspec (dllimport) +# endif +#else +# define PTW32_DLLPORT +#endif + +/* + * This is a duplicate of what is in the autoconf config.h, + * which is only used when building the pthread-win32 libraries. + */ + +#ifndef PTW32_CONFIG_H +# if defined(WINCE) +# define NEED_ERRNO +# define NEED_SEM +# endif +# if defined(_UWIN) || defined(__MINGW32__) +# define HAVE_MODE_T +# endif +#endif + +/* + * + */ + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +#ifdef NEED_ERRNO +#include "need_errno.h" +#else +#include +#endif +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +#if defined(__MINGW32__) || defined(_UWIN) +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +/* For pid_t */ +# include +/* Required by Unix 98 */ +# include +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ +#else +typedef int pid_t; +#endif + +/* Thread scheduling policies */ + +enum { + SCHED_OTHER = 0, + SCHED_FIFO, + SCHED_RR, + SCHED_MIN = SCHED_OTHER, + SCHED_MAX = SCHED_RR +}; + +struct sched_param { + int sched_priority; +}; + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +PTW32_DLLPORT int __cdecl sched_yield (void); + +PTW32_DLLPORT int __cdecl sched_get_priority_min (int policy); + +PTW32_DLLPORT int __cdecl sched_get_priority_max (int policy); + +PTW32_DLLPORT int __cdecl sched_setscheduler (pid_t pid, int policy); + +PTW32_DLLPORT int __cdecl sched_getscheduler (pid_t pid); + +/* + * Note that this macro returns ENOTSUP rather than + * ENOSYS as might be expected. However, returning ENOSYS + * should mean that sched_get_priority_{min,max} are + * not implemented as well as sched_rr_get_interval. + * This is not the case, since we just don't support + * round-robin scheduling. Therefore I have chosen to + * return the same value as sched_setscheduler when + * SCHED_RR is passed to it. + */ +#define sched_rr_get_interval(_pid, _interval) \ + ( errno = ENOTSUP, (int) -1 ) + + +#ifdef __cplusplus +} /* End of extern "C" */ +#endif /* __cplusplus */ + +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX + +#endif /* !_SCHED_H */ + diff --git a/mingw/include/semaphore.h b/mingw/include/semaphore.h new file mode 100644 index 00000000..a3330a63 --- /dev/null +++ b/mingw/include/semaphore.h @@ -0,0 +1,166 @@ +/* + * Module: semaphore.h + * + * Purpose: + * Semaphores aren't actually part of the PThreads standard. + * They are defined by the POSIX Standard: + * + * POSIX 1003.1b-1993 (POSIX.1b) + * + * -------------------------------------------------------------------------- + * + * Pthreads-win32 - POSIX Threads Library for Win32 + * Copyright(C) 1998 John E. Bossom + * Copyright(C) 1999,2005 Pthreads-win32 contributors + * + * Contact Email: rpj@callisto.canberra.edu.au + * + * The current list of contributors is contained + * in the file CONTRIBUTORS included with the source + * code distribution. The list can also be seen at the + * following World Wide Web location: + * http://sources.redhat.com/pthreads-win32/contributors.html + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library in the file COPYING.LIB; + * if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +#if !defined( SEMAPHORE_H ) +#define SEMAPHORE_H + +#undef PTW32_LEVEL + +#if defined(_POSIX_SOURCE) +#define PTW32_LEVEL 0 +/* Early POSIX */ +#endif + +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 +#undef PTW32_LEVEL +#define PTW32_LEVEL 1 +/* Include 1b, 1c and 1d */ +#endif + +#if defined(INCLUDE_NP) +#undef PTW32_LEVEL +#define PTW32_LEVEL 2 +/* Include Non-Portable extensions */ +#endif + +#define PTW32_LEVEL_MAX 3 + +#if !defined(PTW32_LEVEL) +#define PTW32_LEVEL PTW32_LEVEL_MAX +/* Include everything */ +#endif + +#if __GNUC__ && ! defined (__declspec) +# error Please upgrade your GNU compiler to one that supports __declspec. +#endif + +/* + * When building the DLL code, you should define PTW32_BUILD so that + * the variables/functions are exported correctly. When using the DLL, + * do NOT define PTW32_BUILD, and then the variables/functions will + * be imported correctly. + */ +#ifndef PTW32_STATIC_LIB +# ifdef PTW32_BUILD +# define PTW32_DLLPORT __declspec (dllexport) +# else +# define PTW32_DLLPORT __declspec (dllimport) +# endif +#else +# define PTW32_DLLPORT +#endif + +/* + * This is a duplicate of what is in the autoconf config.h, + * which is only used when building the pthread-win32 libraries. + */ + +#ifndef PTW32_CONFIG_H +# if defined(WINCE) +# define NEED_ERRNO +# define NEED_SEM +# endif +# if defined(_UWIN) || defined(__MINGW32__) +# define HAVE_MODE_T +# endif +#endif + +/* + * + */ + +#if PTW32_LEVEL >= PTW32_LEVEL_MAX +#ifdef NEED_ERRNO +#include "need_errno.h" +#else +#include +#endif +#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ + +#define _POSIX_SEMAPHORES + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef HAVE_MODE_T +typedef unsigned int mode_t; +#endif + + +typedef struct sem_t_ * sem_t; + +PTW32_DLLPORT int __cdecl sem_init (sem_t * sem, + int pshared, + unsigned int value); + +PTW32_DLLPORT int __cdecl sem_destroy (sem_t * sem); + +PTW32_DLLPORT int __cdecl sem_trywait (sem_t * sem); + +PTW32_DLLPORT int __cdecl sem_wait (sem_t * sem); + +PTW32_DLLPORT int __cdecl sem_timedwait (sem_t * sem, + const struct timespec * abstime); + +PTW32_DLLPORT int __cdecl sem_post (sem_t * sem); + +PTW32_DLLPORT int __cdecl sem_post_multiple (sem_t * sem, + int count); + +PTW32_DLLPORT int __cdecl sem_open (const char * name, + int oflag, + mode_t mode, + unsigned int value); + +PTW32_DLLPORT int __cdecl sem_close (sem_t * sem); + +PTW32_DLLPORT int __cdecl sem_unlink (const char * name); + +PTW32_DLLPORT int __cdecl sem_getvalue (sem_t * sem, + int * sval); + +#ifdef __cplusplus +} /* End of extern "C" */ +#endif /* __cplusplus */ + +#undef PTW32_LEVEL +#undef PTW32_LEVEL_MAX + +#endif /* !SEMAPHORE_H */ diff --git a/mingw/info/cpp.info b/mingw/info/cpp.info new file mode 100644 index 00000000..0bd7f1d5 --- /dev/null +++ b/mingw/info/cpp.info @@ -0,0 +1,5351 @@ +This is doc/cpp.info, produced by makeinfo version 4.8 from +../../gcc-4.4.0/gcc/doc/cpp.texi. + + Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free +Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation. A copy of +the license is included in the section entitled "GNU Free Documentation +License". + + This manual contains no Invariant Sections. The Front-Cover Texts +are (a) (see below), and the Back-Cover Texts are (b) (see below). + + (a) The FSF's Front-Cover Text is: + + A GNU Manual + + (b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU +software. Copies published by the Free Software Foundation raise +funds for GNU development. + +INFO-DIR-SECTION Software development +START-INFO-DIR-ENTRY +* Cpp: (cpp). The GNU C preprocessor. +END-INFO-DIR-ENTRY + + +File: cpp.info, Node: Top, Next: Overview, Up: (dir) + +The C Preprocessor +****************** + +The C preprocessor implements the macro language used to transform C, +C++, and Objective-C programs before they are compiled. It can also be +useful on its own. + +* Menu: + +* Overview:: +* Header Files:: +* Macros:: +* Conditionals:: +* Diagnostics:: +* Line Control:: +* Pragmas:: +* Other Directives:: +* Preprocessor Output:: +* Traditional Mode:: +* Implementation Details:: +* Invocation:: +* Environment Variables:: +* GNU Free Documentation License:: +* Index of Directives:: +* Option Index:: +* Concept Index:: + + --- The Detailed Node Listing --- + +Overview + +* Character sets:: +* Initial processing:: +* Tokenization:: +* The preprocessing language:: + +Header Files + +* Include Syntax:: +* Include Operation:: +* Search Path:: +* Once-Only Headers:: +* Alternatives to Wrapper #ifndef:: +* Computed Includes:: +* Wrapper Headers:: +* System Headers:: + +Macros + +* Object-like Macros:: +* Function-like Macros:: +* Macro Arguments:: +* Stringification:: +* Concatenation:: +* Variadic Macros:: +* Predefined Macros:: +* Undefining and Redefining Macros:: +* Directives Within Macro Arguments:: +* Macro Pitfalls:: + +Predefined Macros + +* Standard Predefined Macros:: +* Common Predefined Macros:: +* System-specific Predefined Macros:: +* C++ Named Operators:: + +Macro Pitfalls + +* Misnesting:: +* Operator Precedence Problems:: +* Swallowing the Semicolon:: +* Duplication of Side Effects:: +* Self-Referential Macros:: +* Argument Prescan:: +* Newlines in Arguments:: + +Conditionals + +* Conditional Uses:: +* Conditional Syntax:: +* Deleted Code:: + +Conditional Syntax + +* Ifdef:: +* If:: +* Defined:: +* Else:: +* Elif:: + +Implementation Details + +* Implementation-defined behavior:: +* Implementation limits:: +* Obsolete Features:: +* Differences from previous versions:: + +Obsolete Features + +* Obsolete Features:: + + Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free +Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation. A copy of +the license is included in the section entitled "GNU Free Documentation +License". + + This manual contains no Invariant Sections. The Front-Cover Texts +are (a) (see below), and the Back-Cover Texts are (b) (see below). + + (a) The FSF's Front-Cover Text is: + + A GNU Manual + + (b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU +software. Copies published by the Free Software Foundation raise +funds for GNU development. + + +File: cpp.info, Node: Overview, Next: Header Files, Prev: Top, Up: Top + +1 Overview +********** + +The C preprocessor, often known as "cpp", is a "macro processor" that +is used automatically by the C compiler to transform your program +before compilation. It is called a macro processor because it allows +you to define "macros", which are brief abbreviations for longer +constructs. + + The C preprocessor is intended to be used only with C, C++, and +Objective-C source code. In the past, it has been abused as a general +text processor. It will choke on input which does not obey C's lexical +rules. For example, apostrophes will be interpreted as the beginning of +character constants, and cause errors. Also, you cannot rely on it +preserving characteristics of the input which are not significant to +C-family languages. If a Makefile is preprocessed, all the hard tabs +will be removed, and the Makefile will not work. + + Having said that, you can often get away with using cpp on things +which are not C. Other Algol-ish programming languages are often safe +(Pascal, Ada, etc.) So is assembly, with caution. `-traditional-cpp' +mode preserves more white space, and is otherwise more permissive. Many +of the problems can be avoided by writing C or C++ style comments +instead of native language comments, and keeping macros simple. + + Wherever possible, you should use a preprocessor geared to the +language you are writing in. Modern versions of the GNU assembler have +macro facilities. Most high level programming languages have their own +conditional compilation and inclusion mechanism. If all else fails, +try a true general text processor, such as GNU M4. + + C preprocessors vary in some details. This manual discusses the GNU +C preprocessor, which provides a small superset of the features of ISO +Standard C. In its default mode, the GNU C preprocessor does not do a +few things required by the standard. These are features which are +rarely, if ever, used, and may cause surprising changes to the meaning +of a program which does not expect them. To get strict ISO Standard C, +you should use the `-std=c89' or `-std=c99' options, depending on which +version of the standard you want. To get all the mandatory +diagnostics, you must also use `-pedantic'. *Note Invocation::. + + This manual describes the behavior of the ISO preprocessor. To +minimize gratuitous differences, where the ISO preprocessor's behavior +does not conflict with traditional semantics, the traditional +preprocessor should behave the same way. The various differences that +do exist are detailed in the section *Note Traditional Mode::. + + For clarity, unless noted otherwise, references to `CPP' in this +manual refer to GNU CPP. + +* Menu: + +* Character sets:: +* Initial processing:: +* Tokenization:: +* The preprocessing language:: + + +File: cpp.info, Node: Character sets, Next: Initial processing, Up: Overview + +1.1 Character sets +================== + +Source code character set processing in C and related languages is +rather complicated. The C standard discusses two character sets, but +there are really at least four. + + The files input to CPP might be in any character set at all. CPP's +very first action, before it even looks for line boundaries, is to +convert the file into the character set it uses for internal +processing. That set is what the C standard calls the "source" +character set. It must be isomorphic with ISO 10646, also known as +Unicode. CPP uses the UTF-8 encoding of Unicode. + + The character sets of the input files are specified using the +`-finput-charset=' option. + + All preprocessing work (the subject of the rest of this manual) is +carried out in the source character set. If you request textual output +from the preprocessor with the `-E' option, it will be in UTF-8. + + After preprocessing is complete, string and character constants are +converted again, into the "execution" character set. This character +set is under control of the user; the default is UTF-8, matching the +source character set. Wide string and character constants have their +own character set, which is not called out specifically in the +standard. Again, it is under control of the user. The default is +UTF-16 or UTF-32, whichever fits in the target's `wchar_t' type, in the +target machine's byte order.(1) Octal and hexadecimal escape sequences +do not undergo conversion; '\x12' has the value 0x12 regardless of the +currently selected execution character set. All other escapes are +replaced by the character in the source character set that they +represent, then converted to the execution character set, just like +unescaped characters. + + Unless the experimental `-fextended-identifiers' option is used, GCC +does not permit the use of characters outside the ASCII range, nor `\u' +and `\U' escapes, in identifiers. Even with that option, characters +outside the ASCII range can only be specified with the `\u' and `\U' +escapes, not used directly in identifiers. + + ---------- Footnotes ---------- + + (1) UTF-16 does not meet the requirements of the C standard for a +wide character set, but the choice of 16-bit `wchar_t' is enshrined in +some system ABIs so we cannot fix this. + + +File: cpp.info, Node: Initial processing, Next: Tokenization, Prev: Character sets, Up: Overview + +1.2 Initial processing +====================== + +The preprocessor performs a series of textual transformations on its +input. These happen before all other processing. Conceptually, they +happen in a rigid order, and the entire file is run through each +transformation before the next one begins. CPP actually does them all +at once, for performance reasons. These transformations correspond +roughly to the first three "phases of translation" described in the C +standard. + + 1. The input file is read into memory and broken into lines. + + Different systems use different conventions to indicate the end of + a line. GCC accepts the ASCII control sequences `LF', `CR LF' and + `CR' as end-of-line markers. These are the canonical sequences + used by Unix, DOS and VMS, and the classic Mac OS (before OSX) + respectively. You may therefore safely copy source code written + on any of those systems to a different one and use it without + conversion. (GCC may lose track of the current line number if a + file doesn't consistently use one convention, as sometimes happens + when it is edited on computers with different conventions that + share a network file system.) + + If the last line of any input file lacks an end-of-line marker, + the end of the file is considered to implicitly supply one. The C + standard says that this condition provokes undefined behavior, so + GCC will emit a warning message. + + 2. If trigraphs are enabled, they are replaced by their corresponding + single characters. By default GCC ignores trigraphs, but if you + request a strictly conforming mode with the `-std' option, or you + specify the `-trigraphs' option, then it converts them. + + These are nine three-character sequences, all starting with `??', + that are defined by ISO C to stand for single characters. They + permit obsolete systems that lack some of C's punctuation to use + C. For example, `??/' stands for `\', so '??/n' is a character + constant for a newline. + + Trigraphs are not popular and many compilers implement them + incorrectly. Portable code should not rely on trigraphs being + either converted or ignored. With `-Wtrigraphs' GCC will warn you + when a trigraph may change the meaning of your program if it were + converted. *Note Wtrigraphs::. + + In a string constant, you can prevent a sequence of question marks + from being confused with a trigraph by inserting a backslash + between the question marks, or by separating the string literal at + the trigraph and making use of string literal concatenation. + "(??\?)" is the string `(???)', not `(?]'. Traditional C + compilers do not recognize these idioms. + + The nine trigraphs and their replacements are + + Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??- + Replacement: [ ] { } # \ ^ | ~ + + 3. Continued lines are merged into one long line. + + A continued line is a line which ends with a backslash, `\'. The + backslash is removed and the following line is joined with the + current one. No space is inserted, so you may split a line + anywhere, even in the middle of a word. (It is generally more + readable to split lines only at white space.) + + The trailing backslash on a continued line is commonly referred to + as a "backslash-newline". + + If there is white space between a backslash and the end of a line, + that is still a continued line. However, as this is usually the + result of an editing mistake, and many compilers will not accept + it as a continued line, GCC will warn you about it. + + 4. All comments are replaced with single spaces. + + There are two kinds of comments. "Block comments" begin with `/*' + and continue until the next `*/'. Block comments do not nest: + + /* this is /* one comment */ text outside comment + + "Line comments" begin with `//' and continue to the end of the + current line. Line comments do not nest either, but it does not + matter, because they would end in the same place anyway. + + // this is // one comment + text outside comment + + It is safe to put line comments inside block comments, or vice versa. + + /* block comment + // contains line comment + yet more comment + */ outside comment + + // line comment /* contains block comment */ + + But beware of commenting out one end of a block comment with a line +comment. + + // l.c. /* block comment begins + oops! this isn't a comment anymore */ + + Comments are not recognized within string literals. "/* blah */" is +the string constant `/* blah */', not an empty string. + + Line comments are not in the 1989 edition of the C standard, but they +are recognized by GCC as an extension. In C++ and in the 1999 edition +of the C standard, they are an official part of the language. + + Since these transformations happen before all other processing, you +can split a line mechanically with backslash-newline anywhere. You can +comment out the end of a line. You can continue a line comment onto the +next line with backslash-newline. You can even split `/*', `*/', and +`//' onto multiple lines with backslash-newline. For example: + + /\ + * + */ # /* + */ defi\ + ne FO\ + O 10\ + 20 + +is equivalent to `#define FOO 1020'. All these tricks are extremely +confusing and should not be used in code intended to be readable. + + There is no way to prevent a backslash at the end of a line from +being interpreted as a backslash-newline. This cannot affect any +correct program, however. + + +File: cpp.info, Node: Tokenization, Next: The preprocessing language, Prev: Initial processing, Up: Overview + +1.3 Tokenization +================ + +After the textual transformations are finished, the input file is +converted into a sequence of "preprocessing tokens". These mostly +correspond to the syntactic tokens used by the C compiler, but there are +a few differences. White space separates tokens; it is not itself a +token of any kind. Tokens do not have to be separated by white space, +but it is often necessary to avoid ambiguities. + + When faced with a sequence of characters that has more than one +possible tokenization, the preprocessor is greedy. It always makes +each token, starting from the left, as big as possible before moving on +to the next token. For instance, `a+++++b' is interpreted as +`a ++ ++ + b', not as `a ++ + ++ b', even though the latter +tokenization could be part of a valid C program and the former could +not. + + Once the input file is broken into tokens, the token boundaries never +change, except when the `##' preprocessing operator is used to paste +tokens together. *Note Concatenation::. For example, + + #define foo() bar + foo()baz + ==> bar baz + _not_ + ==> barbaz + + The compiler does not re-tokenize the preprocessor's output. Each +preprocessing token becomes one compiler token. + + Preprocessing tokens fall into five broad classes: identifiers, +preprocessing numbers, string literals, punctuators, and other. An +"identifier" is the same as an identifier in C: any sequence of +letters, digits, or underscores, which begins with a letter or +underscore. Keywords of C have no significance to the preprocessor; +they are ordinary identifiers. You can define a macro whose name is a +keyword, for instance. The only identifier which can be considered a +preprocessing keyword is `defined'. *Note Defined::. + + This is mostly true of other languages which use the C preprocessor. +However, a few of the keywords of C++ are significant even in the +preprocessor. *Note C++ Named Operators::. + + In the 1999 C standard, identifiers may contain letters which are not +part of the "basic source character set", at the implementation's +discretion (such as accented Latin letters, Greek letters, or Chinese +ideograms). This may be done with an extended character set, or the +`\u' and `\U' escape sequences. The implementation of this feature in +GCC is experimental; such characters are only accepted in the `\u' and +`\U' forms and only if `-fextended-identifiers' is used. + + As an extension, GCC treats `$' as a letter. This is for +compatibility with some systems, such as VMS, where `$' is commonly +used in system-defined function and object names. `$' is not a letter +in strictly conforming mode, or if you specify the `-$' option. *Note +Invocation::. + + A "preprocessing number" has a rather bizarre definition. The +category includes all the normal integer and floating point constants +one expects of C, but also a number of other things one might not +initially recognize as a number. Formally, preprocessing numbers begin +with an optional period, a required decimal digit, and then continue +with any sequence of letters, digits, underscores, periods, and +exponents. Exponents are the two-character sequences `e+', `e-', `E+', +`E-', `p+', `p-', `P+', and `P-'. (The exponents that begin with `p' +or `P' are new to C99. They are used for hexadecimal floating-point +constants.) + + The purpose of this unusual definition is to isolate the preprocessor +from the full complexity of numeric constants. It does not have to +distinguish between lexically valid and invalid floating-point numbers, +which is complicated. The definition also permits you to split an +identifier at any position and get exactly two tokens, which can then be +pasted back together with the `##' operator. + + It's possible for preprocessing numbers to cause programs to be +misinterpreted. For example, `0xE+12' is a preprocessing number which +does not translate to any valid numeric constant, therefore a syntax +error. It does not mean `0xE + 12', which is what you might have +intended. + + "String literals" are string constants, character constants, and +header file names (the argument of `#include').(1) String constants +and character constants are straightforward: "..." or '...'. In either +case embedded quotes should be escaped with a backslash: '\'' is the +character constant for `''. There is no limit on the length of a +character constant, but the value of a character constant that contains +more than one character is implementation-defined. *Note +Implementation Details::. + + Header file names either look like string constants, "...", or are +written with angle brackets instead, <...>. In either case, backslash +is an ordinary character. There is no way to escape the closing quote +or angle bracket. The preprocessor looks for the header file in +different places depending on which form you use. *Note Include +Operation::. + + No string literal may extend past the end of a line. Older versions +of GCC accepted multi-line string constants. You may use continued +lines instead, or string constant concatenation. *Note Differences +from previous versions::. + + "Punctuators" are all the usual bits of punctuation which are +meaningful to C and C++. All but three of the punctuation characters in +ASCII are C punctuators. The exceptions are `@', `$', and ``'. In +addition, all the two- and three-character operators are punctuators. +There are also six "digraphs", which the C++ standard calls +"alternative tokens", which are merely alternate ways to spell other +punctuators. This is a second attempt to work around missing +punctuation in obsolete systems. It has no negative side effects, +unlike trigraphs, but does not cover as much ground. The digraphs and +their corresponding normal punctuators are: + + Digraph: <% %> <: :> %: %:%: + Punctuator: { } [ ] # ## + + Any other single character is considered "other". It is passed on to +the preprocessor's output unmolested. The C compiler will almost +certainly reject source code containing "other" tokens. In ASCII, the +only other characters are `@', `$', ``', and control characters other +than NUL (all bits zero). (Note that `$' is normally considered a +letter.) All characters with the high bit set (numeric range +0x7F-0xFF) are also "other" in the present implementation. This will +change when proper support for international character sets is added to +GCC. + + NUL is a special case because of the high probability that its +appearance is accidental, and because it may be invisible to the user +(many terminals do not display NUL at all). Within comments, NULs are +silently ignored, just as any other character would be. In running +text, NUL is considered white space. For example, these two directives +have the same meaning. + + #define X^@1 + #define X 1 + +(where `^@' is ASCII NUL). Within string or character constants, NULs +are preserved. In the latter two cases the preprocessor emits a +warning message. + + ---------- Footnotes ---------- + + (1) The C standard uses the term "string literal" to refer only to +what we are calling "string constants". + + +File: cpp.info, Node: The preprocessing language, Prev: Tokenization, Up: Overview + +1.4 The preprocessing language +============================== + +After tokenization, the stream of tokens may simply be passed straight +to the compiler's parser. However, if it contains any operations in the +"preprocessing language", it will be transformed first. This stage +corresponds roughly to the standard's "translation phase 4" and is what +most people think of as the preprocessor's job. + + The preprocessing language consists of "directives" to be executed +and "macros" to be expanded. Its primary capabilities are: + + * Inclusion of header files. These are files of declarations that + can be substituted into your program. + + * Macro expansion. You can define "macros", which are abbreviations + for arbitrary fragments of C code. The preprocessor will replace + the macros with their definitions throughout the program. Some + macros are automatically defined for you. + + * Conditional compilation. You can include or exclude parts of the + program according to various conditions. + + * Line control. If you use a program to combine or rearrange source + files into an intermediate file which is then compiled, you can + use line control to inform the compiler where each source line + originally came from. + + * Diagnostics. You can detect problems at compile time and issue + errors or warnings. + + There are a few more, less useful, features. + + Except for expansion of predefined macros, all these operations are +triggered with "preprocessing directives". Preprocessing directives +are lines in your program that start with `#'. Whitespace is allowed +before and after the `#'. The `#' is followed by an identifier, the +"directive name". It specifies the operation to perform. Directives +are commonly referred to as `#NAME' where NAME is the directive name. +For example, `#define' is the directive that defines a macro. + + The `#' which begins a directive cannot come from a macro expansion. +Also, the directive name is not macro expanded. Thus, if `foo' is +defined as a macro expanding to `define', that does not make `#foo' a +valid preprocessing directive. + + The set of valid directive names is fixed. Programs cannot define +new preprocessing directives. + + Some directives require arguments; these make up the rest of the +directive line and must be separated from the directive name by +whitespace. For example, `#define' must be followed by a macro name +and the intended expansion of the macro. + + A preprocessing directive cannot cover more than one line. The line +may, however, be continued with backslash-newline, or by a block comment +which extends past the end of the line. In either case, when the +directive is processed, the continuations have already been merged with +the first line to make one long line. + + +File: cpp.info, Node: Header Files, Next: Macros, Prev: Overview, Up: Top + +2 Header Files +************** + +A header file is a file containing C declarations and macro definitions +(*note Macros::) to be shared between several source files. You request +the use of a header file in your program by "including" it, with the C +preprocessing directive `#include'. + + Header files serve two purposes. + + * System header files declare the interfaces to parts of the + operating system. You include them in your program to supply the + definitions and declarations you need to invoke system calls and + libraries. + + * Your own header files contain declarations for interfaces between + the source files of your program. Each time you have a group of + related declarations and macro definitions all or most of which + are needed in several different source files, it is a good idea to + create a header file for them. + + Including a header file produces the same results as copying the +header file into each source file that needs it. Such copying would be +time-consuming and error-prone. With a header file, the related +declarations appear in only one place. If they need to be changed, they +can be changed in one place, and programs that include the header file +will automatically use the new version when next recompiled. The header +file eliminates the labor of finding and changing all the copies as well +as the risk that a failure to find one copy will result in +inconsistencies within a program. + + In C, the usual convention is to give header files names that end +with `.h'. It is most portable to use only letters, digits, dashes, and +underscores in header file names, and at most one dot. + +* Menu: + +* Include Syntax:: +* Include Operation:: +* Search Path:: +* Once-Only Headers:: +* Alternatives to Wrapper #ifndef:: +* Computed Includes:: +* Wrapper Headers:: +* System Headers:: + + +File: cpp.info, Node: Include Syntax, Next: Include Operation, Up: Header Files + +2.1 Include Syntax +================== + +Both user and system header files are included using the preprocessing +directive `#include'. It has two variants: + +`#include ' + This variant is used for system header files. It searches for a + file named FILE in a standard list of system directories. You can + prepend directories to this list with the `-I' option (*note + Invocation::). + +`#include "FILE"' + This variant is used for header files of your own program. It + searches for a file named FILE first in the directory containing + the current file, then in the quote directories and then the same + directories used for `'. You can prepend directories to the + list of quote directories with the `-iquote' option. + + The argument of `#include', whether delimited with quote marks or +angle brackets, behaves like a string constant in that comments are not +recognized, and macro names are not expanded. Thus, `#include ' +specifies inclusion of a system header file named `x/*y'. + + However, if backslashes occur within FILE, they are considered +ordinary text characters, not escape characters. None of the character +escape sequences appropriate to string constants in C are processed. +Thus, `#include "x\n\\y"' specifies a filename containing three +backslashes. (Some systems interpret `\' as a pathname separator. All +of these also interpret `/' the same way. It is most portable to use +only `/'.) + + It is an error if there is anything (other than comments) on the line +after the file name. + + +File: cpp.info, Node: Include Operation, Next: Search Path, Prev: Include Syntax, Up: Header Files + +2.2 Include Operation +===================== + +The `#include' directive works by directing the C preprocessor to scan +the specified file as input before continuing with the rest of the +current file. The output from the preprocessor contains the output +already generated, followed by the output resulting from the included +file, followed by the output that comes from the text after the +`#include' directive. For example, if you have a header file +`header.h' as follows, + + char *test (void); + +and a main program called `program.c' that uses the header file, like +this, + + int x; + #include "header.h" + + int + main (void) + { + puts (test ()); + } + +the compiler will see the same token stream as it would if `program.c' +read + + int x; + char *test (void); + + int + main (void) + { + puts (test ()); + } + + Included files are not limited to declarations and macro definitions; +those are merely the typical uses. Any fragment of a C program can be +included from another file. The include file could even contain the +beginning of a statement that is concluded in the containing file, or +the end of a statement that was started in the including file. However, +an included file must consist of complete tokens. Comments and string +literals which have not been closed by the end of an included file are +invalid. For error recovery, they are considered to end at the end of +the file. + + To avoid confusion, it is best if header files contain only complete +syntactic units--function declarations or definitions, type +declarations, etc. + + The line following the `#include' directive is always treated as a +separate line by the C preprocessor, even if the included file lacks a +final newline. + + +File: cpp.info, Node: Search Path, Next: Once-Only Headers, Prev: Include Operation, Up: Header Files + +2.3 Search Path +=============== + +GCC looks in several different places for headers. On a normal Unix +system, if you do not instruct it otherwise, it will look for headers +requested with `#include ' in: + + /usr/local/include + LIBDIR/gcc/TARGET/VERSION/include + /usr/TARGET/include + /usr/include + + For C++ programs, it will also look in `/usr/include/g++-v3', first. +In the above, TARGET is the canonical name of the system GCC was +configured to compile code for; often but not always the same as the +canonical name of the system it runs on. VERSION is the version of GCC +in use. + + You can add to this list with the `-IDIR' command line option. All +the directories named by `-I' are searched, in left-to-right order, +_before_ the default directories. The only exception is when `dir' is +already searched by default. In this case, the option is ignored and +the search order for system directories remains unchanged. + + Duplicate directories are removed from the quote and bracket search +chains before the two chains are merged to make the final search chain. +Thus, it is possible for a directory to occur twice in the final search +chain if it was specified in both the quote and bracket chains. + + You can prevent GCC from searching any of the default directories +with the `-nostdinc' option. This is useful when you are compiling an +operating system kernel or some other program that does not use the +standard C library facilities, or the standard C library itself. `-I' +options are not ignored as described above when `-nostdinc' is in +effect. + + GCC looks for headers requested with `#include "FILE"' first in the +directory containing the current file, then in the directories as +specified by `-iquote' options, then in the same places it would have +looked for a header requested with angle brackets. For example, if +`/usr/include/sys/stat.h' contains `#include "types.h"', GCC looks for +`types.h' first in `/usr/include/sys', then in its usual search path. + + `#line' (*note Line Control::) does not change GCC's idea of the +directory containing the current file. + + You may put `-I-' at any point in your list of `-I' options. This +has two effects. First, directories appearing before the `-I-' in the +list are searched only for headers requested with quote marks. +Directories after `-I-' are searched for all headers. Second, the +directory containing the current file is not searched for anything, +unless it happens to be one of the directories named by an `-I' switch. +`-I-' is deprecated, `-iquote' should be used instead. + + `-I. -I-' is not the same as no `-I' options at all, and does not +cause the same behavior for `<>' includes that `""' includes get with +no special options. `-I.' searches the compiler's current working +directory for header files. That may or may not be the same as the +directory containing the current file. + + If you need to look for headers in a directory named `-', write +`-I./-'. + + There are several more ways to adjust the header search path. They +are generally less useful. *Note Invocation::. + + +File: cpp.info, Node: Once-Only Headers, Next: Alternatives to Wrapper #ifndef, Prev: Search Path, Up: Header Files + +2.4 Once-Only Headers +===================== + +If a header file happens to be included twice, the compiler will process +its contents twice. This is very likely to cause an error, e.g. when +the compiler sees the same structure definition twice. Even if it does +not, it will certainly waste time. + + The standard way to prevent this is to enclose the entire real +contents of the file in a conditional, like this: + + /* File foo. */ + #ifndef FILE_FOO_SEEN + #define FILE_FOO_SEEN + + THE ENTIRE FILE + + #endif /* !FILE_FOO_SEEN */ + + This construct is commonly known as a "wrapper #ifndef". When the +header is included again, the conditional will be false, because +`FILE_FOO_SEEN' is defined. The preprocessor will skip over the entire +contents of the file, and the compiler will not see it twice. + + CPP optimizes even further. It remembers when a header file has a +wrapper `#ifndef'. If a subsequent `#include' specifies that header, +and the macro in the `#ifndef' is still defined, it does not bother to +rescan the file at all. + + You can put comments outside the wrapper. They will not interfere +with this optimization. + + The macro `FILE_FOO_SEEN' is called the "controlling macro" or +"guard macro". In a user header file, the macro name should not begin +with `_'. In a system header file, it should begin with `__' to avoid +conflicts with user programs. In any kind of header file, the macro +name should contain the name of the file and some additional text, to +avoid conflicts with other header files. + + +File: cpp.info, Node: Alternatives to Wrapper #ifndef, Next: Computed Includes, Prev: Once-Only Headers, Up: Header Files + +2.5 Alternatives to Wrapper #ifndef +=================================== + +CPP supports two more ways of indicating that a header file should be +read only once. Neither one is as portable as a wrapper `#ifndef' and +we recommend you do not use them in new programs, with the caveat that +`#import' is standard practice in Objective-C. + + CPP supports a variant of `#include' called `#import' which includes +a file, but does so at most once. If you use `#import' instead of +`#include', then you don't need the conditionals inside the header file +to prevent multiple inclusion of the contents. `#import' is standard +in Objective-C, but is considered a deprecated extension in C and C++. + + `#import' is not a well designed feature. It requires the users of +a header file to know that it should only be included once. It is much +better for the header file's implementor to write the file so that users +don't need to know this. Using a wrapper `#ifndef' accomplishes this +goal. + + In the present implementation, a single use of `#import' will +prevent the file from ever being read again, by either `#import' or +`#include'. You should not rely on this; do not use both `#import' and +`#include' to refer to the same header file. + + Another way to prevent a header file from being included more than +once is with the `#pragma once' directive. If `#pragma once' is seen +when scanning a header file, that file will never be read again, no +matter what. + + `#pragma once' does not have the problems that `#import' does, but +it is not recognized by all preprocessors, so you cannot rely on it in +a portable program. + + +File: cpp.info, Node: Computed Includes, Next: Wrapper Headers, Prev: Alternatives to Wrapper #ifndef, Up: Header Files + +2.6 Computed Includes +===================== + +Sometimes it is necessary to select one of several different header +files to be included into your program. They might specify +configuration parameters to be used on different sorts of operating +systems, for instance. You could do this with a series of conditionals, + + #if SYSTEM_1 + # include "system_1.h" + #elif SYSTEM_2 + # include "system_2.h" + #elif SYSTEM_3 + ... + #endif + + That rapidly becomes tedious. Instead, the preprocessor offers the +ability to use a macro for the header name. This is called a "computed +include". Instead of writing a header name as the direct argument of +`#include', you simply put a macro name there instead: + + #define SYSTEM_H "system_1.h" + ... + #include SYSTEM_H + +`SYSTEM_H' will be expanded, and the preprocessor will look for +`system_1.h' as if the `#include' had been written that way originally. +`SYSTEM_H' could be defined by your Makefile with a `-D' option. + + You must be careful when you define the macro. `#define' saves +tokens, not text. The preprocessor has no way of knowing that the macro +will be used as the argument of `#include', so it generates ordinary +tokens, not a header name. This is unlikely to cause problems if you +use double-quote includes, which are close enough to string constants. +If you use angle brackets, however, you may have trouble. + + The syntax of a computed include is actually a bit more general than +the above. If the first non-whitespace character after `#include' is +not `"' or `<', then the entire line is macro-expanded like running +text would be. + + If the line expands to a single string constant, the contents of that +string constant are the file to be included. CPP does not re-examine +the string for embedded quotes, but neither does it process backslash +escapes in the string. Therefore + + #define HEADER "a\"b" + #include HEADER + +looks for a file named `a\"b'. CPP searches for the file according to +the rules for double-quoted includes. + + If the line expands to a token stream beginning with a `<' token and +including a `>' token, then the tokens between the `<' and the first +`>' are combined to form the filename to be included. Any whitespace +between tokens is reduced to a single space; then any space after the +initial `<' is retained, but a trailing space before the closing `>' is +ignored. CPP searches for the file according to the rules for +angle-bracket includes. + + In either case, if there are any tokens on the line after the file +name, an error occurs and the directive is not processed. It is also +an error if the result of expansion does not match either of the two +expected forms. + + These rules are implementation-defined behavior according to the C +standard. To minimize the risk of different compilers interpreting your +computed includes differently, we recommend you use only a single +object-like macro which expands to a string constant. This will also +minimize confusion for people reading your program. + + +File: cpp.info, Node: Wrapper Headers, Next: System Headers, Prev: Computed Includes, Up: Header Files + +2.7 Wrapper Headers +=================== + +Sometimes it is necessary to adjust the contents of a system-provided +header file without editing it directly. GCC's `fixincludes' operation +does this, for example. One way to do that would be to create a new +header file with the same name and insert it in the search path before +the original header. That works fine as long as you're willing to +replace the old header entirely. But what if you want to refer to the +old header from the new one? + + You cannot simply include the old header with `#include'. That will +start from the beginning, and find your new header again. If your +header is not protected from multiple inclusion (*note Once-Only +Headers::), it will recurse infinitely and cause a fatal error. + + You could include the old header with an absolute pathname: + #include "/usr/include/old-header.h" + This works, but is not clean; should the system headers ever move, +you would have to edit the new headers to match. + + There is no way to solve this problem within the C standard, but you +can use the GNU extension `#include_next'. It means, "Include the +_next_ file with this name". 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. + + Suppose you specify `-I /usr/local/include', and the list of +directories to search also includes `/usr/include'; and suppose both +directories contain `signal.h'. Ordinary `#include ' finds +the file under `/usr/local/include'. If that file contains +`#include_next ', it starts searching after that directory, +and finds the file in `/usr/include'. + + `#include_next' does not distinguish between `' and `"FILE"' +inclusion, nor does it check that the file you specify has the same +name as the current file. It simply looks for the file named, starting +with the directory in the search path after the one where the current +file was found. + + The use of `#include_next' can lead to great confusion. We +recommend it be used only when there is no other alternative. In +particular, it should not be used in the headers belonging to a specific +program; it should be used only to make global corrections along the +lines of `fixincludes'. + + +File: cpp.info, Node: System Headers, Prev: Wrapper Headers, Up: Header Files + +2.8 System Headers +================== + +The header files declaring interfaces to the operating system and +runtime libraries often cannot be written in strictly conforming C. +Therefore, GCC gives code found in "system headers" special treatment. +All warnings, other than those generated by `#warning' (*note +Diagnostics::), are suppressed while GCC is processing a system header. +Macros defined in a system header are immune to a few warnings +wherever they are expanded. This immunity is granted on an ad-hoc +basis, when we find that a warning generates lots of false positives +because of code in macros defined in system headers. + + Normally, only the headers found in specific directories are +considered system headers. These directories are determined when GCC +is compiled. There are, however, two ways to make normal headers into +system headers. + + The `-isystem' command line option adds its argument to the list of +directories to search for headers, just like `-I'. Any headers found +in that directory will be considered system headers. + + All directories named by `-isystem' are searched _after_ all +directories named by `-I', no matter what their order was on the +command line. If the same directory is named by both `-I' and +`-isystem', the `-I' option is ignored. GCC provides an informative +message when this occurs if `-v' is used. + + There is also a directive, `#pragma GCC system_header', which tells +GCC to consider the rest of the current include file a system header, +no matter where it was found. Code that comes before the `#pragma' in +the file will not be affected. `#pragma GCC system_header' has no +effect in the primary source file. + + On very old systems, some of the pre-defined system header +directories get even more special treatment. GNU C++ considers code in +headers found in those directories to be surrounded by an `extern "C"' +block. There is no way to request this behavior with a `#pragma', or +from the command line. + + +File: cpp.info, Node: Macros, Next: Conditionals, Prev: Header Files, Up: Top + +3 Macros +******** + +A "macro" is a fragment of code which has been given a name. Whenever +the name is used, it is replaced by the contents of the macro. There +are two kinds of macros. They differ mostly in what they look like +when they are used. "Object-like" macros resemble data objects when +used, "function-like" macros resemble function calls. + + You may define any valid identifier as a macro, even if it is a C +keyword. The preprocessor does not know anything about keywords. This +can be useful if you wish to hide a keyword such as `const' from an +older compiler that does not understand it. However, the preprocessor +operator `defined' (*note Defined::) can never be defined as a macro, +and C++'s named operators (*note C++ Named Operators::) cannot be +macros when you are compiling C++. + +* Menu: + +* Object-like Macros:: +* Function-like Macros:: +* Macro Arguments:: +* Stringification:: +* Concatenation:: +* Variadic Macros:: +* Predefined Macros:: +* Undefining and Redefining Macros:: +* Directives Within Macro Arguments:: +* Macro Pitfalls:: + + +File: cpp.info, Node: Object-like Macros, Next: Function-like Macros, Up: Macros + +3.1 Object-like Macros +====================== + +An "object-like macro" is a simple identifier which will be replaced by +a code fragment. It is called object-like because it looks like a data +object in code that uses it. They are most commonly used to give +symbolic names to numeric constants. + + You create macros with the `#define' directive. `#define' is +followed by the name of the macro and then the token sequence it should +be an abbreviation for, which is variously referred to as the macro's +"body", "expansion" or "replacement list". For example, + + #define BUFFER_SIZE 1024 + +defines a macro named `BUFFER_SIZE' as an abbreviation for the token +`1024'. If somewhere after this `#define' directive there comes a C +statement of the form + + foo = (char *) malloc (BUFFER_SIZE); + +then the C preprocessor will recognize and "expand" the macro +`BUFFER_SIZE'. The C compiler will see the same tokens as it would if +you had written + + foo = (char *) malloc (1024); + + By convention, macro names are written in uppercase. Programs are +easier to read when it is possible to tell at a glance which names are +macros. + + The macro's body ends at the end of the `#define' line. You may +continue the definition onto multiple lines, if necessary, using +backslash-newline. When the macro is expanded, however, it will all +come out on one line. For example, + + #define NUMBERS 1, \ + 2, \ + 3 + int x[] = { NUMBERS }; + ==> int x[] = { 1, 2, 3 }; + +The most common visible consequence of this is surprising line numbers +in error messages. + + There is no restriction on what can go in a macro body provided it +decomposes into valid preprocessing tokens. Parentheses need not +balance, and the body need not resemble valid C code. (If it does not, +you may get error messages from the C compiler when you use the macro.) + + The C preprocessor scans your program sequentially. Macro +definitions take effect at the place you write them. Therefore, the +following input to the C preprocessor + + foo = X; + #define X 4 + bar = X; + +produces + + foo = X; + bar = 4; + + When the preprocessor expands a macro name, the macro's expansion +replaces the macro invocation, then the expansion is examined for more +macros to expand. For example, + + #define TABLESIZE BUFSIZE + #define BUFSIZE 1024 + TABLESIZE + ==> BUFSIZE + ==> 1024 + +`TABLESIZE' is expanded first to produce `BUFSIZE', then that macro is +expanded to produce the final result, `1024'. + + Notice that `BUFSIZE' was not defined when `TABLESIZE' was defined. +The `#define' for `TABLESIZE' uses exactly the expansion you +specify--in this case, `BUFSIZE'--and does not check to see whether it +too contains macro names. Only when you _use_ `TABLESIZE' is the +result of its expansion scanned for more macro names. + + This makes a difference if you change the definition of `BUFSIZE' at +some point in the source file. `TABLESIZE', defined as shown, will +always expand using the definition of `BUFSIZE' that is currently in +effect: + + #define BUFSIZE 1020 + #define TABLESIZE BUFSIZE + #undef BUFSIZE + #define BUFSIZE 37 + +Now `TABLESIZE' expands (in two stages) to `37'. + + If the expansion of a macro contains its own name, either directly or +via intermediate macros, it is not expanded again when the expansion is +examined for more macros. This prevents infinite recursion. *Note +Self-Referential Macros::, for the precise details. + + +File: cpp.info, Node: Function-like Macros, Next: Macro Arguments, Prev: Object-like Macros, Up: Macros + +3.2 Function-like Macros +======================== + +You can also define macros whose use looks like a function call. These +are called "function-like macros". To define a function-like macro, +you use the same `#define' directive, but you put a pair of parentheses +immediately after the macro name. For example, + + #define lang_init() c_init() + lang_init() + ==> c_init() + + A function-like macro is only expanded if its name appears with a +pair of parentheses after it. If you write just the name, it is left +alone. This can be useful when you have a function and a macro of the +same name, and you wish to use the function sometimes. + + extern void foo(void); + #define foo() /* optimized inline version */ + ... + foo(); + funcptr = foo; + + Here the call to `foo()' will use the macro, but the function +pointer will get the address of the real function. If the macro were to +be expanded, it would cause a syntax error. + + If you put spaces between the macro name and the parentheses in the +macro definition, that does not define a function-like macro, it defines +an object-like macro whose expansion happens to begin with a pair of +parentheses. + + #define lang_init () c_init() + lang_init() + ==> () c_init()() + + The first two pairs of parentheses in this expansion come from the +macro. The third is the pair that was originally after the macro +invocation. Since `lang_init' is an object-like macro, it does not +consume those parentheses. + + +File: cpp.info, Node: Macro Arguments, Next: Stringification, Prev: Function-like Macros, Up: Macros + +3.3 Macro Arguments +=================== + +Function-like macros can take "arguments", just like true functions. +To define a macro that uses arguments, you insert "parameters" between +the pair of parentheses in the macro definition that make the macro +function-like. The parameters must be valid C identifiers, separated +by commas and optionally whitespace. + + To invoke a macro that takes arguments, you write the name of the +macro followed by a list of "actual arguments" in parentheses, separated +by commas. The invocation of the macro need not be restricted to a +single logical line--it can cross as many lines in the source file as +you wish. The number of arguments you give must match the number of +parameters in the macro definition. When the macro is expanded, each +use of a parameter in its body is replaced by the tokens of the +corresponding argument. (You need not use all of the parameters in the +macro body.) + + As an example, here is a macro that computes the minimum of two +numeric values, as it is defined in many C programs, and some uses. + + #define min(X, Y) ((X) < (Y) ? (X) : (Y)) + x = min(a, b); ==> x = ((a) < (b) ? (a) : (b)); + y = min(1, 2); ==> y = ((1) < (2) ? (1) : (2)); + z = min(a + 28, *p); ==> z = ((a + 28) < (*p) ? (a + 28) : (*p)); + +(In this small example you can already see several of the dangers of +macro arguments. *Note Macro Pitfalls::, for detailed explanations.) + + Leading and trailing whitespace in each argument is dropped, and all +whitespace between the tokens of an argument is reduced to a single +space. Parentheses within each argument must balance; a comma within +such parentheses does not end the argument. However, there is no +requirement for square brackets or braces to balance, and they do not +prevent a comma from separating arguments. Thus, + + macro (array[x = y, x + 1]) + +passes two arguments to `macro': `array[x = y' and `x + 1]'. If you +want to supply `array[x = y, x + 1]' as an argument, you can write it +as `array[(x = y, x + 1)]', which is equivalent C code. + + All arguments to a macro are completely macro-expanded before they +are substituted into the macro body. After substitution, the complete +text is scanned again for macros to expand, including the arguments. +This rule may seem strange, but it is carefully designed so you need +not worry about whether any function call is actually a macro +invocation. You can run into trouble if you try to be too clever, +though. *Note Argument Prescan::, for detailed discussion. + + For example, `min (min (a, b), c)' is first expanded to + + min (((a) < (b) ? (a) : (b)), (c)) + +and then to + + ((((a) < (b) ? (a) : (b))) < (c) + ? (((a) < (b) ? (a) : (b))) + : (c)) + +(Line breaks shown here for clarity would not actually be generated.) + + You can leave macro arguments empty; this is not an error to the +preprocessor (but many macros will then expand to invalid code). You +cannot leave out arguments entirely; if a macro takes two arguments, +there must be exactly one comma at the top level of its argument list. +Here are some silly examples using `min': + + min(, b) ==> (( ) < (b) ? ( ) : (b)) + min(a, ) ==> ((a ) < ( ) ? (a ) : ( )) + min(,) ==> (( ) < ( ) ? ( ) : ( )) + min((,),) ==> (((,)) < ( ) ? ((,)) : ( )) + + min() error--> macro "min" requires 2 arguments, but only 1 given + min(,,) error--> macro "min" passed 3 arguments, but takes just 2 + + Whitespace is not a preprocessing token, so if a macro `foo' takes +one argument, `foo ()' and `foo ( )' both supply it an empty argument. +Previous GNU preprocessor implementations and documentation were +incorrect on this point, insisting that a function-like macro that +takes a single argument be passed a space if an empty argument was +required. + + Macro parameters appearing inside string literals are not replaced by +their corresponding actual arguments. + + #define foo(x) x, "x" + foo(bar) ==> bar, "x" + + +File: cpp.info, Node: Stringification, Next: Concatenation, Prev: Macro Arguments, Up: Macros + +3.4 Stringification +=================== + +Sometimes you may want to convert a macro argument into a string +constant. Parameters are not replaced inside string constants, but you +can use the `#' preprocessing operator instead. When a macro parameter +is used with a leading `#', the preprocessor replaces it with the +literal text of the actual argument, converted to a string constant. +Unlike normal parameter replacement, the argument is not macro-expanded +first. This is called "stringification". + + There is no way to combine an argument with surrounding text and +stringify it all together. Instead, you can write a series of adjacent +string constants and stringified arguments. The preprocessor will +replace the stringified arguments with string constants. The C +compiler will then combine all the adjacent string constants into one +long string. + + Here is an example of a macro definition that uses stringification: + + #define WARN_IF(EXP) \ + do { if (EXP) \ + fprintf (stderr, "Warning: " #EXP "\n"); } \ + while (0) + WARN_IF (x == 0); + ==> do { if (x == 0) + fprintf (stderr, "Warning: " "x == 0" "\n"); } while (0); + +The argument for `EXP' is substituted once, as-is, into the `if' +statement, and once, stringified, into the argument to `fprintf'. If +`x' were a macro, it would be expanded in the `if' statement, but not +in the string. + + The `do' and `while (0)' are a kludge to make it possible to write +`WARN_IF (ARG);', which the resemblance of `WARN_IF' to a function +would make C programmers want to do; see *Note Swallowing the +Semicolon::. + + Stringification in C involves more than putting double-quote +characters around the fragment. The preprocessor backslash-escapes the +quotes surrounding embedded string constants, and all backslashes +within string and character constants, in order to get a valid C string +constant with the proper contents. Thus, stringifying `p = "foo\n";' +results in "p = \"foo\\n\";". However, backslashes that are not inside +string or character constants are not duplicated: `\n' by itself +stringifies to "\n". + + All leading and trailing whitespace in text being stringified is +ignored. Any sequence of whitespace in the middle of the text is +converted to a single space in the stringified result. Comments are +replaced by whitespace long before stringification happens, so they +never appear in stringified text. + + There is no way to convert a macro argument into a character +constant. + + If you want to stringify the result of expansion of a macro argument, +you have to use two levels of macros. + + #define xstr(s) str(s) + #define str(s) #s + #define foo 4 + str (foo) + ==> "foo" + xstr (foo) + ==> xstr (4) + ==> str (4) + ==> "4" + + `s' is stringified when it is used in `str', so it is not +macro-expanded first. But `s' is an ordinary argument to `xstr', so it +is completely macro-expanded before `xstr' itself is expanded (*note +Argument Prescan::). Therefore, by the time `str' gets to its +argument, it has already been macro-expanded. + + +File: cpp.info, Node: Concatenation, Next: Variadic Macros, Prev: Stringification, Up: Macros + +3.5 Concatenation +================= + +It is often useful to merge two tokens into one while expanding macros. +This is called "token pasting" or "token concatenation". The `##' +preprocessing operator performs token pasting. When a macro is +expanded, the two tokens on either side of each `##' operator are +combined into a single token, which then replaces the `##' and the two +original tokens in the macro expansion. Usually both will be +identifiers, or one will be an identifier and the other a preprocessing +number. When pasted, they make a longer identifier. This isn't the +only valid case. It is also possible to concatenate two numbers (or a +number and a name, such as `1.5' and `e3') into a number. Also, +multi-character operators such as `+=' can be formed by token pasting. + + However, two tokens that don't together form a valid token cannot be +pasted together. For example, you cannot concatenate `x' with `+' in +either order. If you try, the preprocessor issues a warning and emits +the two tokens. Whether it puts white space between the tokens is +undefined. It is common to find unnecessary uses of `##' in complex +macros. If you get this warning, it is likely that you can simply +remove the `##'. + + Both the tokens combined by `##' could come from the macro body, but +you could just as well write them as one token in the first place. +Token pasting is most useful when one or both of the tokens comes from a +macro argument. If either of the tokens next to an `##' is a parameter +name, it is replaced by its actual argument before `##' executes. As +with stringification, the actual argument is not macro-expanded first. +If the argument is empty, that `##' has no effect. + + Keep in mind that the C preprocessor converts comments to whitespace +before macros are even considered. Therefore, you cannot create a +comment by concatenating `/' and `*'. You can put as much whitespace +between `##' and its operands as you like, including comments, and you +can put comments in arguments that will be concatenated. However, it +is an error if `##' appears at either end of a macro body. + + Consider a C program that interprets named commands. There probably +needs to be a table of commands, perhaps an array of structures declared +as follows: + + struct command + { + char *name; + void (*function) (void); + }; + + struct command commands[] = + { + { "quit", quit_command }, + { "help", help_command }, + ... + }; + + It would be cleaner not to have to give each command name twice, +once in the string constant and once in the function name. A macro +which takes the name of a command as an argument can make this +unnecessary. The string constant can be created with stringification, +and the function name by concatenating the argument with `_command'. +Here is how it is done: + + #define COMMAND(NAME) { #NAME, NAME ## _command } + + struct command commands[] = + { + COMMAND (quit), + COMMAND (help), + ... + }; + + +File: cpp.info, Node: Variadic Macros, Next: Predefined Macros, Prev: Concatenation, Up: Macros + +3.6 Variadic Macros +=================== + +A macro can be declared to accept a variable number of arguments much as +a function can. The syntax for defining the macro is similar to that of +a function. Here is an example: + + #define eprintf(...) fprintf (stderr, __VA_ARGS__) + + This kind of macro is called "variadic". When the macro is invoked, +all the tokens in its argument list after the last named argument (this +macro has none), including any commas, become the "variable argument". +This sequence of tokens replaces the identifier `__VA_ARGS__' in the +macro body wherever it appears. Thus, we have this expansion: + + eprintf ("%s:%d: ", input_file, lineno) + ==> fprintf (stderr, "%s:%d: ", input_file, lineno) + + The variable argument is completely macro-expanded before it is +inserted into the macro expansion, just like an ordinary argument. You +may use the `#' and `##' operators to stringify the variable argument +or to paste its leading or trailing token with another token. (But see +below for an important special case for `##'.) + + If your macro is complicated, you may want a more descriptive name +for the variable argument than `__VA_ARGS__'. CPP permits this, as an +extension. You may write an argument name immediately before the +`...'; that name is used for the variable argument. The `eprintf' +macro above could be written + + #define eprintf(args...) fprintf (stderr, args) + +using this extension. You cannot use `__VA_ARGS__' and this extension +in the same macro. + + You can have named arguments as well as variable arguments in a +variadic macro. We could define `eprintf' like this, instead: + + #define eprintf(format, ...) fprintf (stderr, format, __VA_ARGS__) + +This formulation looks more descriptive, but unfortunately it is less +flexible: you must now supply at least one argument after the format +string. In standard C, you cannot omit the comma separating the named +argument from the variable arguments. Furthermore, if you leave the +variable argument empty, you will get a syntax error, because there +will be an extra comma after the format string. + + eprintf("success!\n", ); + ==> fprintf(stderr, "success!\n", ); + + GNU CPP has a pair of extensions which deal with this problem. +First, you are allowed to leave the variable argument out entirely: + + eprintf ("success!\n") + ==> fprintf(stderr, "success!\n", ); + +Second, the `##' token paste operator has a special meaning when placed +between a comma and a variable argument. If you write + + #define eprintf(format, ...) fprintf (stderr, format, ##__VA_ARGS__) + +and the variable argument is left out when the `eprintf' macro is used, +then the comma before the `##' will be deleted. This does _not_ happen +if you pass an empty argument, nor does it happen if the token +preceding `##' is anything other than a comma. + + eprintf ("success!\n") + ==> fprintf(stderr, "success!\n"); + +The above explanation is ambiguous about the case where the only macro +parameter is a variable arguments parameter, as it is meaningless to +try to distinguish whether no argument at all is an empty argument or a +missing argument. In this case the C99 standard is clear that the +comma must remain, however the existing GCC extension used to swallow +the comma. So CPP retains the comma when conforming to a specific C +standard, and drops it otherwise. + + C99 mandates that the only place the identifier `__VA_ARGS__' can +appear is in the replacement list of a variadic macro. It may not be +used as a macro name, macro argument name, or within a different type +of macro. It may also be forbidden in open text; the standard is +ambiguous. We recommend you avoid using it except for its defined +purpose. + + Variadic macros are a new feature in C99. GNU CPP has supported them +for a long time, but only with a named variable argument (`args...', +not `...' and `__VA_ARGS__'). If you are concerned with portability to +previous versions of GCC, you should use only named variable arguments. +On the other hand, if you are concerned with portability to other +conforming implementations of C99, you should use only `__VA_ARGS__'. + + Previous versions of CPP implemented the comma-deletion extension +much more generally. We have restricted it in this release to minimize +the differences from C99. To get the same effect with both this and +previous versions of GCC, the token preceding the special `##' must be +a comma, and there must be white space between that comma and whatever +comes immediately before it: + + #define eprintf(format, args...) fprintf (stderr, format , ##args) + +*Note Differences from previous versions::, for the gory details. + + +File: cpp.info, Node: Predefined Macros, Next: Undefining and Redefining Macros, Prev: Variadic Macros, Up: Macros + +3.7 Predefined Macros +===================== + +Several object-like macros are predefined; you use them without +supplying their definitions. They fall into three classes: standard, +common, and system-specific. + + In C++, there is a fourth category, the named operators. They act +like predefined macros, but you cannot undefine them. + +* Menu: + +* Standard Predefined Macros:: +* Common Predefined Macros:: +* System-specific Predefined Macros:: +* C++ Named Operators:: + + +File: cpp.info, Node: Standard Predefined Macros, Next: Common Predefined Macros, Up: Predefined Macros + +3.7.1 Standard Predefined Macros +-------------------------------- + +The standard predefined macros are specified by the relevant language +standards, so they are available with all compilers that implement +those standards. Older compilers may not provide all of them. Their +names all start with double underscores. + +`__FILE__' + This macro expands to the name of the current input file, in the + form of a C string constant. This is the path by which the + preprocessor opened the file, not the short name specified in + `#include' or as the input file name argument. For example, + `"/usr/local/include/myheader.h"' is a possible expansion of this + macro. + +`__LINE__' + This macro expands to the current input line number, in the form + of a decimal integer constant. While we call it a predefined + macro, it's a pretty strange macro, since its "definition" changes + with each new line of source code. + + `__FILE__' and `__LINE__' are useful in generating an error message +to report an inconsistency detected by the program; the message can +state the source line at which the inconsistency was detected. For +example, + + fprintf (stderr, "Internal error: " + "negative string length " + "%d at %s, line %d.", + length, __FILE__, __LINE__); + + An `#include' directive changes the expansions of `__FILE__' and +`__LINE__' to correspond to the included file. At the end of that +file, when processing resumes on the input file that contained the +`#include' directive, the expansions of `__FILE__' and `__LINE__' +revert to the values they had before the `#include' (but `__LINE__' is +then incremented by one as processing moves to the line after the +`#include'). + + A `#line' directive changes `__LINE__', and may change `__FILE__' as +well. *Note Line Control::. + + C99 introduces `__func__', and GCC has provided `__FUNCTION__' for a +long time. Both of these are strings containing the name of the +current function (there are slight semantic differences; see the GCC +manual). Neither of them is a macro; the preprocessor does not know the +name of the current function. They tend to be useful in conjunction +with `__FILE__' and `__LINE__', though. + +`__DATE__' + This macro expands to a string constant that describes the date on + which the preprocessor is being run. The string constant contains + eleven characters and looks like `"Feb 12 1996"'. If the day of + the month is less than 10, it is padded with a space on the left. + + If GCC cannot determine the current date, it will emit a warning + message (once per compilation) and `__DATE__' will expand to + `"??? ?? ????"'. + +`__TIME__' + This macro expands to a string constant that describes the time at + which the preprocessor is being run. The string constant contains + eight characters and looks like `"23:59:01"'. + + If GCC cannot determine the current time, it will emit a warning + message (once per compilation) and `__TIME__' will expand to + `"??:??:??"'. + +`__STDC__' + In normal operation, this macro expands to the constant 1, to + signify that this compiler conforms to ISO Standard C. If GNU CPP + is used with a compiler other than GCC, this is not necessarily + true; however, the preprocessor always conforms to the standard + unless the `-traditional-cpp' option is used. + + This macro is not defined if the `-traditional-cpp' option is used. + + On some hosts, the system compiler uses a different convention, + where `__STDC__' is normally 0, but is 1 if the user specifies + strict conformance to the C Standard. CPP follows the host + convention when processing system header files, but when + processing user files `__STDC__' is always 1. This has been + reported to cause problems; for instance, some versions of Solaris + provide X Windows headers that expect `__STDC__' to be either + undefined or 1. *Note Invocation::. + +`__STDC_VERSION__' + This macro expands to the C Standard's version number, a long + integer constant of the form `YYYYMML' where YYYY and MM are the + year and month of the Standard version. This signifies which + version of the C Standard the compiler conforms to. Like + `__STDC__', this is not necessarily accurate for the entire + implementation, unless GNU CPP is being used with GCC. + + The value `199409L' signifies the 1989 C standard as amended in + 1994, which is the current default; the value `199901L' signifies + the 1999 revision of the C standard. Support for the 1999 + revision is not yet complete. + + This macro is not defined if the `-traditional-cpp' option is + used, nor when compiling C++ or Objective-C. + +`__STDC_HOSTED__' + This macro is defined, with value 1, if the compiler's target is a + "hosted environment". A hosted environment has the complete + facilities of the standard C library available. + +`__cplusplus' + This macro is defined when the C++ compiler is in use. You can use + `__cplusplus' to test whether a header is compiled by a C compiler + or a C++ compiler. This macro is similar to `__STDC_VERSION__', in + that it expands to a version number. A fully conforming + implementation of the 1998 C++ standard will define this macro to + `199711L'. The GNU C++ compiler is not yet fully conforming, so + it uses `1' instead. It is hoped to complete the implementation + of standard C++ in the near future. + +`__OBJC__' + This macro is defined, with value 1, when the Objective-C compiler + is in use. You can use `__OBJC__' to test whether a header is + compiled by a C compiler or a Objective-C compiler. + +`__ASSEMBLER__' + This macro is defined with value 1 when preprocessing assembly + language. + + + +File: cpp.info, Node: Common Predefined Macros, Next: System-specific Predefined Macros, Prev: Standard Predefined Macros, Up: Predefined Macros + +3.7.2 Common Predefined Macros +------------------------------ + +The common predefined macros are GNU C extensions. They are available +with the same meanings regardless of the machine or operating system on +which you are using GNU C or GNU Fortran. Their names all start with +double underscores. + +`__COUNTER__' + This macro expands to sequential integral values starting from 0. + In conjunction with the `##' operator, this provides a convenient + means to generate unique identifiers. Care must be taken to + ensure that `__COUNTER__' is not expanded prior to inclusion of + precompiled headers which use it. Otherwise, the precompiled + headers will not be used. + +`__GFORTRAN__' + The GNU Fortran compiler defines this. + +`__GNUC__' +`__GNUC_MINOR__' +`__GNUC_PATCHLEVEL__' + These macros are defined by all GNU compilers that use the C + preprocessor: C, C++, Objective-C and Fortran. Their values are + the major version, minor version, and patch level of the compiler, + as integer constants. For example, GCC 3.2.1 will define + `__GNUC__' to 3, `__GNUC_MINOR__' to 2, and `__GNUC_PATCHLEVEL__' + to 1. These macros are also defined if you invoke the + preprocessor directly. + + `__GNUC_PATCHLEVEL__' is new to GCC 3.0; it is also present in the + widely-used development snapshots leading up to 3.0 (which identify + themselves as GCC 2.96 or 2.97, depending on which snapshot you + have). + + If all you need to know is whether or not your program is being + compiled by GCC, or a non-GCC compiler that claims to accept the + GNU C dialects, you can simply test `__GNUC__'. If you need to + write code which depends on a specific version, you must be more + careful. Each time the minor version is increased, the patch + level is reset to zero; each time the major version is increased + (which happens rarely), the minor version and patch level are + reset. If you wish to use the predefined macros directly in the + conditional, you will need to write it like this: + + /* Test for GCC > 3.2.0 */ + #if __GNUC__ > 3 || \ + (__GNUC__ == 3 && (__GNUC_MINOR__ > 2 || \ + (__GNUC_MINOR__ == 2 && \ + __GNUC_PATCHLEVEL__ > 0)) + + Another approach is to use the predefined macros to calculate a + single number, then compare that against a threshold: + + #define GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) + ... + /* Test for GCC > 3.2.0 */ + #if GCC_VERSION > 30200 + + Many people find this form easier to understand. + +`__GNUG__' + The GNU C++ compiler defines this. Testing it is equivalent to + testing `(__GNUC__ && __cplusplus)'. + +`__STRICT_ANSI__' + GCC defines this macro if and only if the `-ansi' switch, or a + `-std' switch specifying strict conformance to some version of ISO + C, was specified when GCC was invoked. It is defined to `1'. + This macro exists primarily to direct GNU libc's header files to + restrict their definitions to the minimal set found in the 1989 C + standard. + +`__BASE_FILE__' + This macro expands to the name of the main input file, in the form + of a C string constant. This is the source file that was specified + on the command line of the preprocessor or C compiler. + +`__INCLUDE_LEVEL__' + This macro expands to a decimal integer constant that represents + the depth of nesting in include files. The value of this macro is + incremented on every `#include' directive and decremented at the + end of every included file. It starts out at 0, its value within + the base file specified on the command line. + +`__ELF__' + This macro is defined if the target uses the ELF object format. + +`__VERSION__' + This macro expands to a string constant which describes the + version of the compiler in use. You should not rely on its + contents having any particular form, but it can be counted on to + contain at least the release number. + +`__OPTIMIZE__' +`__OPTIMIZE_SIZE__' +`__NO_INLINE__' + These macros describe the compilation mode. `__OPTIMIZE__' is + defined in all optimizing compilations. `__OPTIMIZE_SIZE__' is + defined if the compiler is optimizing for size, not speed. + `__NO_INLINE__' is defined if no functions will be inlined into + their callers (when not optimizing, or when inlining has been + specifically disabled by `-fno-inline'). + + These macros cause certain GNU header files to provide optimized + definitions, using macros or inline functions, of system library + functions. You should not use these macros in any way unless you + make sure that programs will execute with the same effect whether + or not they are defined. If they are defined, their value is 1. + +`__GNUC_GNU_INLINE__' + GCC defines this macro if functions declared `inline' will be + handled in GCC's traditional gnu89 mode. Object files will contain + externally visible definitions of all functions declared `inline' + without `extern' or `static'. They will not contain any + definitions of any functions declared `extern inline'. + +`__GNUC_STDC_INLINE__' + GCC defines this macro if functions declared `inline' will be + handled according to the ISO C99 standard. Object files will + contain externally visible definitions of all functions declared + `extern inline'. They will not contain definitions of any + functions declared `inline' without `extern'. + + If this macro is defined, GCC supports the `gnu_inline' function + attribute as a way to always get the gnu89 behavior. Support for + this and `__GNUC_GNU_INLINE__' was added in GCC 4.1.3. If neither + macro is defined, an older version of GCC is being used: `inline' + functions will be compiled in gnu89 mode, and the `gnu_inline' + function attribute will not be recognized. + +`__CHAR_UNSIGNED__' + GCC defines this macro if and only if the data type `char' is + unsigned on the target machine. It exists to cause the standard + header file `limits.h' to work correctly. You should not use this + macro yourself; instead, refer to the standard macros defined in + `limits.h'. + +`__WCHAR_UNSIGNED__' + Like `__CHAR_UNSIGNED__', this macro is defined if and only if the + data type `wchar_t' is unsigned and the front-end is in C++ mode. + +`__REGISTER_PREFIX__' + This macro expands to a single token (not a string constant) which + is the prefix applied to CPU register names in assembly language + for this target. You can use it to write assembly that is usable + in multiple environments. For example, in the `m68k-aout' + environment it expands to nothing, but in the `m68k-coff' + environment it expands to a single `%'. + +`__USER_LABEL_PREFIX__' + This macro expands to a single token which is the prefix applied to + user labels (symbols visible to C code) in assembly. For example, + in the `m68k-aout' environment it expands to an `_', but in the + `m68k-coff' environment it expands to nothing. + + This macro will have the correct definition even if + `-f(no-)underscores' is in use, but it will not be correct if + target-specific options that adjust this prefix are used (e.g. the + OSF/rose `-mno-underscores' option). + +`__SIZE_TYPE__' +`__PTRDIFF_TYPE__' +`__WCHAR_TYPE__' +`__WINT_TYPE__' +`__INTMAX_TYPE__' +`__UINTMAX_TYPE__' + These macros are defined to the correct underlying types for the + `size_t', `ptrdiff_t', `wchar_t', `wint_t', `intmax_t', and + `uintmax_t' typedefs, respectively. They exist to make the + standard header files `stddef.h' and `wchar.h' work correctly. + You should not use these macros directly; instead, include the + appropriate headers and use the typedefs. + +`__CHAR_BIT__' + Defined to the number of bits used in the representation of the + `char' data type. It exists to make the standard header given + numerical limits work correctly. You should not use this macro + directly; instead, include the appropriate headers. + +`__SCHAR_MAX__' +`__WCHAR_MAX__' +`__SHRT_MAX__' +`__INT_MAX__' +`__LONG_MAX__' +`__LONG_LONG_MAX__' +`__INTMAX_MAX__' + Defined to the maximum value of the `signed char', `wchar_t', + `signed short', `signed int', `signed long', `signed long long', + and `intmax_t' types respectively. They exist to make the + standard header given numerical limits work correctly. You should + not use these macros directly; instead, include the appropriate + headers. + +`__SIZEOF_INT__' +`__SIZEOF_LONG__' +`__SIZEOF_LONG_LONG__' +`__SIZEOF_SHORT__' +`__SIZEOF_POINTER__' +`__SIZEOF_FLOAT__' +`__SIZEOF_DOUBLE__' +`__SIZEOF_LONG_DOUBLE__' +`__SIZEOF_SIZE_T__' +`__SIZEOF_WCHAR_T__' +`__SIZEOF_WINT_T__' +`__SIZEOF_PTRDIFF_T__' + Defined to the number of bytes of the C standard data types: `int', + `long', `long long', `short', `void *', `float', `double', `long + double', `size_t', `wchar_t', `wint_t' and `ptrdiff_t'. + +`__DEPRECATED' + This macro is defined, with value 1, when compiling a C++ source + file with warnings about deprecated constructs enabled. These + warnings are enabled by default, but can be disabled with + `-Wno-deprecated'. + +`__EXCEPTIONS' + This macro is defined, with value 1, when compiling a C++ source + file with exceptions enabled. If `-fno-exceptions' is used when + compiling the file, then this macro is not defined. + +`__GXX_RTTI' + This macro is defined, with value 1, when compiling a C++ source + file with runtime type identification enabled. If `-fno-rtti' is + used when compiling the file, then this macro is not defined. + +`__USING_SJLJ_EXCEPTIONS__' + This macro is defined, with value 1, if the compiler uses the old + mechanism based on `setjmp' and `longjmp' for exception handling. + +`__GXX_EXPERIMENTAL_CXX0X__' + This macro is defined when compiling a C++ source file with the + option `-std=c++0x' or `-std=gnu++0x'. It indicates that some + features likely to be included in C++0x are available. Note that + these features are experimental, and may change or be removed in + future versions of GCC. + +`__GXX_WEAK__' + This macro is defined when compiling a C++ source file. It has the + value 1 if the compiler will use weak symbols, COMDAT sections, or + other similar techniques to collapse symbols with "vague linkage" + that are defined in multiple translation units. If the compiler + will not collapse such symbols, this macro is defined with value + 0. In general, user code should not need to make use of this + macro; the purpose of this macro is to ease implementation of the + C++ runtime library provided with G++. + +`__NEXT_RUNTIME__' + This macro is defined, with value 1, if (and only if) the NeXT + runtime (as in `-fnext-runtime') is in use for Objective-C. If + the GNU runtime is used, this macro is not defined, so that you + can use this macro to determine which runtime (NeXT or GNU) is + being used. + +`__LP64__' +`_LP64' + These macros are defined, with value 1, if (and only if) the + compilation is for a target where `long int' and pointer both use + 64-bits and `int' uses 32-bit. + +`__SSP__' + This macro is defined, with value 1, when `-fstack-protector' is in + use. + +`__SSP_ALL__' + This macro is defined, with value 2, when `-fstack-protector-all' + is in use. + +`__TIMESTAMP__' + This macro expands to a string constant that describes the date + and time of the last modification of the current source file. The + string constant contains abbreviated day of the week, month, day + of the month, time in hh:mm:ss form, year and looks like + `"Sun Sep 16 01:03:52 1973"'. If the day of the month is less + than 10, it is padded with a space on the left. + + If GCC cannot determine the current date, it will emit a warning + message (once per compilation) and `__TIMESTAMP__' will expand to + `"??? ??? ?? ??:??:?? ????"'. + +`__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1' +`__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2' +`__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4' +`__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8' +`__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16' + These macros are defined when the target processor supports atomic + compare and swap operations on operands 1, 2, 4, 8 or 16 bytes in + length, respectively. + +`__GCC_HAVE_DWARF2_CFI_ASM' + This macro is defined when the compiler is emitting Dwarf2 CFI + directives to the assembler. When this is defined, it is possible + to emit those same directives in inline assembly. + + +File: cpp.info, Node: System-specific Predefined Macros, Next: C++ Named Operators, Prev: Common Predefined Macros, Up: Predefined Macros + +3.7.3 System-specific Predefined Macros +--------------------------------------- + +The C preprocessor normally predefines several macros that indicate what +type of system and machine is in use. They are obviously different on +each target supported by GCC. This manual, being for all systems and +machines, cannot tell you what their names are, but you can use `cpp +-dM' to see them all. *Note Invocation::. All system-specific +predefined macros expand to the constant 1, so you can test them with +either `#ifdef' or `#if'. + + The C standard requires that all system-specific macros be part of +the "reserved namespace". All names which begin with two underscores, +or an underscore and a capital letter, are reserved for the compiler and +library to use as they wish. However, historically system-specific +macros have had names with no special prefix; for instance, it is common +to find `unix' defined on Unix systems. For all such macros, GCC +provides a parallel macro with two underscores added at the beginning +and the end. If `unix' is defined, `__unix__' will be defined too. +There will never be more than two underscores; the parallel of `_mips' +is `__mips__'. + + When the `-ansi' option, or any `-std' option that requests strict +conformance, is given to the compiler, all the system-specific +predefined macros outside the reserved namespace are suppressed. The +parallel macros, inside the reserved namespace, remain defined. + + We are slowly phasing out all predefined macros which are outside the +reserved namespace. You should never use them in new programs, and we +encourage you to correct older code to use the parallel macros whenever +you find it. We don't recommend you use the system-specific macros that +are in the reserved namespace, either. It is better in the long run to +check specifically for features you need, using a tool such as +`autoconf'. + + +File: cpp.info, Node: C++ Named Operators, Prev: System-specific Predefined Macros, Up: Predefined Macros + +3.7.4 C++ Named Operators +------------------------- + +In C++, there are eleven keywords which are simply alternate spellings +of operators normally written with punctuation. These keywords are +treated as such even in the preprocessor. They function as operators in +`#if', and they cannot be defined as macros or poisoned. In C, you can +request that those keywords take their C++ meaning by including +`iso646.h'. That header defines each one as a normal object-like macro +expanding to the appropriate punctuator. + + These are the named operators and their corresponding punctuators: + +Named Operator Punctuator +`and' `&&' +`and_eq' `&=' +`bitand' `&' +`bitor' `|' +`compl' `~' +`not' `!' +`not_eq' `!=' +`or' `||' +`or_eq' `|=' +`xor' `^' +`xor_eq' `^=' + + +File: cpp.info, Node: Undefining and Redefining Macros, Next: Directives Within Macro Arguments, Prev: Predefined Macros, Up: Macros + +3.8 Undefining and Redefining Macros +==================================== + +If a macro ceases to be useful, it may be "undefined" with the `#undef' +directive. `#undef' takes a single argument, the name of the macro to +undefine. You use the bare macro name, even if the macro is +function-like. It is an error if anything appears on the line after +the macro name. `#undef' has no effect if the name is not a macro. + + #define FOO 4 + x = FOO; ==> x = 4; + #undef FOO + x = FOO; ==> x = FOO; + + Once a macro has been undefined, that identifier may be "redefined" +as a macro by a subsequent `#define' directive. The new definition +need not have any resemblance to the old definition. + + However, if an identifier which is currently a macro is redefined, +then the new definition must be "effectively the same" as the old one. +Two macro definitions are effectively the same if: + * Both are the same type of macro (object- or function-like). + + * All the tokens of the replacement list are the same. + + * If there are any parameters, they are the same. + + * Whitespace appears in the same places in both. It need not be + exactly the same amount of whitespace, though. Remember that + comments count as whitespace. + +These definitions are effectively the same: + #define FOUR (2 + 2) + #define FOUR (2 + 2) + #define FOUR (2 /* two */ + 2) + but these are not: + #define FOUR (2 + 2) + #define FOUR ( 2+2 ) + #define FOUR (2 * 2) + #define FOUR(score,and,seven,years,ago) (2 + 2) + + If a macro is redefined with a definition that is not effectively the +same as the old one, the preprocessor issues a warning and changes the +macro to use the new definition. If the new definition is effectively +the same, the redefinition is silently ignored. This allows, for +instance, two different headers to define a common macro. The +preprocessor will only complain if the definitions do not match. + + +File: cpp.info, Node: Directives Within Macro Arguments, Next: Macro Pitfalls, Prev: Undefining and Redefining Macros, Up: Macros + +3.9 Directives Within Macro Arguments +===================================== + +Occasionally it is convenient to use preprocessor directives within the +arguments of a macro. The C and C++ standards declare that behavior in +these cases is undefined. + + Versions of CPP prior to 3.2 would reject such constructs with an +error message. This was the only syntactic difference between normal +functions and function-like macros, so it seemed attractive to remove +this limitation, and people would often be surprised that they could +not use macros in this way. Moreover, sometimes people would use +conditional compilation in the argument list to a normal library +function like `printf', only to find that after a library upgrade +`printf' had changed to be a function-like macro, and their code would +no longer compile. So from version 3.2 we changed CPP to successfully +process arbitrary directives within macro arguments in exactly the same +way as it would have processed the directive were the function-like +macro invocation not present. + + If, within a macro invocation, that macro is redefined, then the new +definition takes effect in time for argument pre-expansion, but the +original definition is still used for argument replacement. Here is a +pathological example: + + #define f(x) x x + f (1 + #undef f + #define f 2 + f) + +which expands to + + 1 2 1 2 + +with the semantics described above. + + +File: cpp.info, Node: Macro Pitfalls, Prev: Directives Within Macro Arguments, Up: Macros + +3.10 Macro Pitfalls +=================== + +In this section we describe some special rules that apply to macros and +macro expansion, and point out certain cases in which the rules have +counter-intuitive consequences that you must watch out for. + +* Menu: + +* Misnesting:: +* Operator Precedence Problems:: +* Swallowing the Semicolon:: +* Duplication of Side Effects:: +* Self-Referential Macros:: +* Argument Prescan:: +* Newlines in Arguments:: + + +File: cpp.info, Node: Misnesting, Next: Operator Precedence Problems, Up: Macro Pitfalls + +3.10.1 Misnesting +----------------- + +When a macro is called with arguments, the arguments are substituted +into the macro body and the result is checked, together with the rest of +the input file, for more macro calls. It is possible to piece together +a macro call coming partially from the macro body and partially from the +arguments. For example, + + #define twice(x) (2*(x)) + #define call_with_1(x) x(1) + call_with_1 (twice) + ==> twice(1) + ==> (2*(1)) + + Macro definitions do not have to have balanced parentheses. By +writing an unbalanced open parenthesis in a macro body, it is possible +to create a macro call that begins inside the macro body but ends +outside of it. For example, + + #define strange(file) fprintf (file, "%s %d", + ... + strange(stderr) p, 35) + ==> fprintf (stderr, "%s %d", p, 35) + + The ability to piece together a macro call can be useful, but the +use of unbalanced open parentheses in a macro body is just confusing, +and should be avoided. + + +File: cpp.info, Node: Operator Precedence Problems, Next: Swallowing the Semicolon, Prev: Misnesting, Up: Macro Pitfalls + +3.10.2 Operator Precedence Problems +----------------------------------- + +You may have noticed that in most of the macro definition examples shown +above, each occurrence of a macro argument name had parentheses around +it. In addition, another pair of parentheses usually surround the +entire macro definition. Here is why it is best to write macros that +way. + + Suppose you define a macro as follows, + + #define ceil_div(x, y) (x + y - 1) / y + +whose purpose is to divide, rounding up. (One use for this operation is +to compute how many `int' objects are needed to hold a certain number +of `char' objects.) Then suppose it is used as follows: + + a = ceil_div (b & c, sizeof (int)); + ==> a = (b & c + sizeof (int) - 1) / sizeof (int); + +This does not do what is intended. The operator-precedence rules of C +make it equivalent to this: + + a = (b & (c + sizeof (int) - 1)) / sizeof (int); + +What we want is this: + + a = ((b & c) + sizeof (int) - 1)) / sizeof (int); + +Defining the macro as + + #define ceil_div(x, y) ((x) + (y) - 1) / (y) + +provides the desired result. + + Unintended grouping can result in another way. Consider `sizeof +ceil_div(1, 2)'. That has the appearance of a C expression that would +compute the size of the type of `ceil_div (1, 2)', but in fact it means +something very different. Here is what it expands to: + + sizeof ((1) + (2) - 1) / (2) + +This would take the size of an integer and divide it by two. The +precedence rules have put the division outside the `sizeof' when it was +intended to be inside. + + Parentheses around the entire macro definition prevent such problems. +Here, then, is the recommended way to define `ceil_div': + + #define ceil_div(x, y) (((x) + (y) - 1) / (y)) + + +File: cpp.info, Node: Swallowing the Semicolon, Next: Duplication of Side Effects, Prev: Operator Precedence Problems, Up: Macro Pitfalls + +3.10.3 Swallowing the Semicolon +------------------------------- + +Often it is desirable to define a macro that expands into a compound +statement. Consider, for example, the following macro, that advances a +pointer (the argument `p' says where to find it) across whitespace +characters: + + #define SKIP_SPACES(p, limit) \ + { char *lim = (limit); \ + while (p < lim) { \ + if (*p++ != ' ') { \ + p--; break; }}} + +Here backslash-newline is used to split the macro definition, which must +be a single logical line, so that it resembles the way such code would +be laid out if not part of a macro definition. + + A call to this macro might be `SKIP_SPACES (p, lim)'. Strictly +speaking, the call expands to a compound statement, which is a complete +statement with no need for a semicolon to end it. However, since it +looks like a function call, it minimizes confusion if you can use it +like a function call, writing a semicolon afterward, as in `SKIP_SPACES +(p, lim);' + + This can cause trouble before `else' statements, because the +semicolon is actually a null statement. Suppose you write + + if (*p != 0) + SKIP_SPACES (p, lim); + else ... + +The presence of two statements--the compound statement and a null +statement--in between the `if' condition and the `else' makes invalid C +code. + + The definition of the macro `SKIP_SPACES' can be altered to solve +this problem, using a `do ... while' statement. Here is how: + + #define SKIP_SPACES(p, limit) \ + do { char *lim = (limit); \ + while (p < lim) { \ + if (*p++ != ' ') { \ + p--; break; }}} \ + while (0) + + Now `SKIP_SPACES (p, lim);' expands into + + do {...} while (0); + +which is one statement. The loop executes exactly once; most compilers +generate no extra code for it. + + +File: cpp.info, Node: Duplication of Side Effects, Next: Self-Referential Macros, Prev: Swallowing the Semicolon, Up: Macro Pitfalls + +3.10.4 Duplication of Side Effects +---------------------------------- + +Many C programs define a macro `min', for "minimum", like this: + + #define min(X, Y) ((X) < (Y) ? (X) : (Y)) + + When you use this macro with an argument containing a side effect, +as shown here, + + next = min (x + y, foo (z)); + +it expands as follows: + + next = ((x + y) < (foo (z)) ? (x + y) : (foo (z))); + +where `x + y' has been substituted for `X' and `foo (z)' for `Y'. + + The function `foo' is used only once in the statement as it appears +in the program, but the expression `foo (z)' has been substituted twice +into the macro expansion. As a result, `foo' might be called two times +when the statement is executed. If it has side effects or if it takes +a long time to compute, the results might not be what you intended. We +say that `min' is an "unsafe" macro. + + The best solution to this problem is to define `min' in a way that +computes the value of `foo (z)' only once. The C language offers no +standard way to do this, but it can be done with GNU extensions as +follows: + + #define min(X, Y) \ + ({ typeof (X) x_ = (X); \ + typeof (Y) y_ = (Y); \ + (x_ < y_) ? x_ : y_; }) + + The `({ ... })' notation produces a compound statement that acts as +an expression. Its value is the value of its last statement. This +permits us to define local variables and assign each argument to one. +The local variables have underscores after their names to reduce the +risk of conflict with an identifier of wider scope (it is impossible to +avoid this entirely). Now each argument is evaluated exactly once. + + If you do not wish to use GNU C extensions, the only solution is to +be careful when _using_ the macro `min'. For example, you can +calculate the value of `foo (z)', save it in a variable, and use that +variable in `min': + + #define min(X, Y) ((X) < (Y) ? (X) : (Y)) + ... + { + int tem = foo (z); + next = min (x + y, tem); + } + +(where we assume that `foo' returns type `int'). + + +File: cpp.info, Node: Self-Referential Macros, Next: Argument Prescan, Prev: Duplication of Side Effects, Up: Macro Pitfalls + +3.10.5 Self-Referential Macros +------------------------------ + +A "self-referential" macro is one whose name appears in its definition. +Recall that all macro definitions are rescanned for more macros to +replace. If the self-reference were considered a use of the macro, it +would produce an infinitely large expansion. To prevent this, the +self-reference is not considered a macro call. It is passed into the +preprocessor output unchanged. Consider an example: + + #define foo (4 + foo) + +where `foo' is also a variable in your program. + + Following the ordinary rules, each reference to `foo' will expand +into `(4 + foo)'; then this will be rescanned and will expand into `(4 ++ (4 + foo))'; and so on until the computer runs out of memory. + + The self-reference rule cuts this process short after one step, at +`(4 + foo)'. Therefore, this macro definition has the possibly useful +effect of causing the program to add 4 to the value of `foo' wherever +`foo' is referred to. + + In most cases, it is a bad idea to take advantage of this feature. A +person reading the program who sees that `foo' is a variable will not +expect that it is a macro as well. The reader will come across the +identifier `foo' in the program and think its value should be that of +the variable `foo', whereas in fact the value is four greater. + + One common, useful use of self-reference is to create a macro which +expands to itself. If you write + + #define EPERM EPERM + +then the macro `EPERM' expands to `EPERM'. Effectively, it is left +alone by the preprocessor whenever it's used in running text. You can +tell that it's a macro with `#ifdef'. You might do this if you want to +define numeric constants with an `enum', but have `#ifdef' be true for +each constant. + + If a macro `x' expands to use a macro `y', and the expansion of `y' +refers to the macro `x', that is an "indirect self-reference" of `x'. +`x' is not expanded in this case either. Thus, if we have + + #define x (4 + y) + #define y (2 * x) + +then `x' and `y' expand as follows: + + x ==> (4 + y) + ==> (4 + (2 * x)) + + y ==> (2 * x) + ==> (2 * (4 + y)) + +Each macro is expanded when it appears in the definition of the other +macro, but not when it indirectly appears in its own definition. + + +File: cpp.info, Node: Argument Prescan, Next: Newlines in Arguments, Prev: Self-Referential Macros, Up: Macro Pitfalls + +3.10.6 Argument Prescan +----------------------- + +Macro arguments are completely macro-expanded before they are +substituted into a macro body, unless they are stringified or pasted +with other tokens. After substitution, the entire macro body, including +the substituted arguments, is scanned again for macros to be expanded. +The result is that the arguments are scanned _twice_ to expand macro +calls in them. + + Most of the time, this has no effect. If the argument contained any +macro calls, they are expanded during the first scan. The result +therefore contains no macro calls, so the second scan does not change +it. If the argument were substituted as given, with no prescan, the +single remaining scan would find the same macro calls and produce the +same results. + + You might expect the double scan to change the results when a +self-referential macro is used in an argument of another macro (*note +Self-Referential Macros::): the self-referential macro would be +expanded once in the first scan, and a second time in the second scan. +However, this is not what happens. The self-references that do not +expand in the first scan are marked so that they will not expand in the +second scan either. + + You might wonder, "Why mention the prescan, if it makes no +difference? And why not skip it and make the preprocessor faster?" +The answer is that the prescan does make a difference in three special +cases: + + * Nested calls to a macro. + + We say that "nested" calls to a macro occur when a macro's argument + contains a call to that very macro. For example, if `f' is a macro + that expects one argument, `f (f (1))' is a nested pair of calls to + `f'. The desired expansion is made by expanding `f (1)' and + substituting that into the definition of `f'. The prescan causes + the expected result to happen. Without the prescan, `f (1)' itself + would be substituted as an argument, and the inner use of `f' would + appear during the main scan as an indirect self-reference and + would not be expanded. + + * Macros that call other macros that stringify or concatenate. + + If an argument is stringified or concatenated, the prescan does not + occur. If you _want_ to expand a macro, then stringify or + concatenate its expansion, you can do that by causing one macro to + call another macro that does the stringification or concatenation. + For instance, if you have + + #define AFTERX(x) X_ ## x + #define XAFTERX(x) AFTERX(x) + #define TABLESIZE 1024 + #define BUFSIZE TABLESIZE + + then `AFTERX(BUFSIZE)' expands to `X_BUFSIZE', and + `XAFTERX(BUFSIZE)' expands to `X_1024'. (Not to `X_TABLESIZE'. + Prescan always does a complete expansion.) + + * Macros used in arguments, whose expansions contain unshielded + commas. + + This can cause a macro expanded on the second scan to be called + with the wrong number of arguments. Here is an example: + + #define foo a,b + #define bar(x) lose(x) + #define lose(x) (1 + (x)) + + We would like `bar(foo)' to turn into `(1 + (foo))', which would + then turn into `(1 + (a,b))'. Instead, `bar(foo)' expands into + `lose(a,b)', and you get an error because `lose' requires a single + argument. In this case, the problem is easily solved by the same + parentheses that ought to be used to prevent misnesting of + arithmetic operations: + + #define foo (a,b) + or + #define bar(x) lose((x)) + + The extra pair of parentheses prevents the comma in `foo''s + definition from being interpreted as an argument separator. + + + +File: cpp.info, Node: Newlines in Arguments, Prev: Argument Prescan, Up: Macro Pitfalls + +3.10.7 Newlines in Arguments +---------------------------- + +The invocation of a function-like macro can extend over many logical +lines. However, in the present implementation, the entire expansion +comes out on one line. Thus line numbers emitted by the compiler or +debugger refer to the line the invocation started on, which might be +different to the line containing the argument causing the problem. + + Here is an example illustrating this: + + #define ignore_second_arg(a,b,c) a; c + + ignore_second_arg (foo (), + ignored (), + syntax error); + +The syntax error triggered by the tokens `syntax error' results in an +error message citing line three--the line of ignore_second_arg-- even +though the problematic code comes from line five. + + We consider this a bug, and intend to fix it in the near future. + + +File: cpp.info, Node: Conditionals, Next: Diagnostics, Prev: Macros, Up: Top + +4 Conditionals +************** + +A "conditional" is a directive that instructs the preprocessor to +select whether or not to include a chunk of code in the final token +stream passed to the compiler. Preprocessor conditionals can test +arithmetic expressions, or whether a name is defined as a macro, or both +simultaneously using the special `defined' operator. + + A conditional in the C preprocessor resembles in some ways an `if' +statement in C, but it is important to understand the difference between +them. The condition in an `if' statement is tested during the +execution of your program. Its purpose is to allow your program to +behave differently from run to run, depending on the data it is +operating on. The condition in a preprocessing conditional directive is +tested when your program is compiled. Its purpose is to allow different +code to be included in the program depending on the situation at the +time of compilation. + + However, the distinction is becoming less clear. Modern compilers +often do test `if' statements when a program is compiled, if their +conditions are known not to vary at run time, and eliminate code which +can never be executed. If you can count on your compiler to do this, +you may find that your program is more readable if you use `if' +statements with constant conditions (perhaps determined by macros). Of +course, you can only use this to exclude code, not type definitions or +other preprocessing directives, and you can only do it if the code +remains syntactically valid when it is not to be used. + + GCC version 3 eliminates this kind of never-executed code even when +not optimizing. Older versions did it only when optimizing. + +* Menu: + +* Conditional Uses:: +* Conditional Syntax:: +* Deleted Code:: + + +File: cpp.info, Node: Conditional Uses, Next: Conditional Syntax, Up: Conditionals + +4.1 Conditional Uses +==================== + +There are three general reasons to use a conditional. + + * A program may need to use different code depending on the machine + or operating system it is to run on. In some cases the code for + one operating system may be erroneous on another operating system; + for example, it might refer to data types or constants that do not + exist on the other system. When this happens, it is not enough to + avoid executing the invalid code. Its mere presence will cause + the compiler to reject the program. With a preprocessing + conditional, the offending code can be effectively excised from + the program when it is not valid. + + * You may want to be able to compile the same source file into two + different programs. One version might make frequent time-consuming + consistency checks on its intermediate data, or print the values of + those data for debugging, and the other not. + + * A conditional whose condition is always false is one way to + exclude code from the program but keep it as a sort of comment for + future reference. + + Simple programs that do not need system-specific logic or complex +debugging hooks generally will not need to use preprocessing +conditionals. + + +File: cpp.info, Node: Conditional Syntax, Next: Deleted Code, Prev: Conditional Uses, Up: Conditionals + +4.2 Conditional Syntax +====================== + +A conditional in the C preprocessor begins with a "conditional +directive": `#if', `#ifdef' or `#ifndef'. + +* Menu: + +* Ifdef:: +* If:: +* Defined:: +* Else:: +* Elif:: + + +File: cpp.info, Node: Ifdef, Next: If, Up: Conditional Syntax + +4.2.1 Ifdef +----------- + +The simplest sort of conditional is + + #ifdef MACRO + + CONTROLLED TEXT + + #endif /* MACRO */ + + This block is called a "conditional group". CONTROLLED TEXT will be +included in the output of the preprocessor if and only if MACRO is +defined. We say that the conditional "succeeds" if MACRO is defined, +"fails" if it is not. + + The CONTROLLED TEXT inside of a conditional can include +preprocessing directives. They are executed only if the conditional +succeeds. You can nest conditional groups inside other conditional +groups, but they must be completely nested. In other words, `#endif' +always matches the nearest `#ifdef' (or `#ifndef', or `#if'). Also, +you cannot start a conditional group in one file and end it in another. + + Even if a conditional fails, the CONTROLLED TEXT inside it is still +run through initial transformations and tokenization. Therefore, it +must all be lexically valid C. Normally the only way this matters is +that all comments and string literals inside a failing conditional group +must still be properly ended. + + The comment following the `#endif' is not required, but it is a good +practice if there is a lot of CONTROLLED TEXT, because it helps people +match the `#endif' to the corresponding `#ifdef'. Older programs +sometimes put MACRO directly after the `#endif' without enclosing it in +a comment. This is invalid code according to the C standard. CPP +accepts it with a warning. It never affects which `#ifndef' the +`#endif' matches. + + Sometimes you wish to use some code if a macro is _not_ defined. +You can do this by writing `#ifndef' instead of `#ifdef'. One common +use of `#ifndef' is to include code only the first time a header file +is included. *Note Once-Only Headers::. + + Macro definitions can vary between compilations for several reasons. +Here are some samples. + + * Some macros are predefined on each kind of machine (*note + System-specific Predefined Macros::). This allows you to provide + code specially tuned for a particular machine. + + * System header files define more macros, associated with the + features they implement. You can test these macros with + conditionals to avoid using a system feature on a machine where it + is not implemented. + + * Macros can be defined or undefined with the `-D' and `-U' command + line options when you compile the program. You can arrange to + compile the same source file into two different programs by + choosing a macro name to specify which program you want, writing + conditionals to test whether or how this macro is defined, and + then controlling the state of the macro with command line options, + perhaps set in the Makefile. *Note Invocation::. + + * Your program might have a special header file (often called + `config.h') that is adjusted when the program is compiled. It can + define or not define macros depending on the features of the + system and the desired capabilities of the program. The + adjustment can be automated by a tool such as `autoconf', or done + by hand. + + +File: cpp.info, Node: If, Next: Defined, Prev: Ifdef, Up: Conditional Syntax + +4.2.2 If +-------- + +The `#if' directive allows you to test the value of an arithmetic +expression, rather than the mere existence of one macro. Its syntax is + + #if EXPRESSION + + CONTROLLED TEXT + + #endif /* EXPRESSION */ + + EXPRESSION is a C expression of integer type, subject to stringent +restrictions. It may contain + + * Integer constants. + + * Character constants, which are interpreted as they would be in + normal code. + + * Arithmetic operators for addition, subtraction, multiplication, + division, bitwise operations, shifts, comparisons, and logical + operations (`&&' and `||'). The latter two obey the usual + short-circuiting rules of standard C. + + * Macros. All macros in the expression are expanded before actual + computation of the expression's value begins. + + * Uses of the `defined' operator, which lets you check whether macros + are defined in the middle of an `#if'. + + * Identifiers that are not macros, which are all considered to be the + number zero. This allows you to write `#if MACRO' instead of + `#ifdef MACRO', if you know that MACRO, when defined, will always + have a nonzero value. Function-like macros used without their + function call parentheses are also treated as zero. + + In some contexts this shortcut is undesirable. The `-Wundef' + option causes GCC to warn whenever it encounters an identifier + which is not a macro in an `#if'. + + The preprocessor does not know anything about types in the language. +Therefore, `sizeof' operators are not recognized in `#if', and neither +are `enum' constants. They will be taken as identifiers which are not +macros, and replaced by zero. In the case of `sizeof', this is likely +to cause the expression to be invalid. + + The preprocessor calculates the value of EXPRESSION. It carries out +all calculations in the widest integer type known to the compiler; on +most machines supported by GCC this is 64 bits. This is not the same +rule as the compiler uses to calculate the value of a constant +expression, and may give different results in some cases. If the value +comes out to be nonzero, the `#if' succeeds and the CONTROLLED TEXT is +included; otherwise it is skipped. + + +File: cpp.info, Node: Defined, Next: Else, Prev: If, Up: Conditional Syntax + +4.2.3 Defined +------------- + +The special operator `defined' is used in `#if' and `#elif' expressions +to test whether a certain name is defined as a macro. `defined NAME' +and `defined (NAME)' are both expressions whose value is 1 if NAME is +defined as a macro at the current point in the program, and 0 +otherwise. Thus, `#if defined MACRO' is precisely equivalent to +`#ifdef MACRO'. + + `defined' is useful when you wish to test more than one macro for +existence at once. For example, + + #if defined (__vax__) || defined (__ns16000__) + +would succeed if either of the names `__vax__' or `__ns16000__' is +defined as a macro. + + Conditionals written like this: + + #if defined BUFSIZE && BUFSIZE >= 1024 + +can generally be simplified to just `#if BUFSIZE >= 1024', since if +`BUFSIZE' is not defined, it will be interpreted as having the value +zero. + + If the `defined' operator appears as a result of a macro expansion, +the C standard says the behavior is undefined. GNU cpp treats it as a +genuine `defined' operator and evaluates it normally. It will warn +wherever your code uses this feature if you use the command-line option +`-pedantic', since other compilers may handle it differently. + + +File: cpp.info, Node: Else, Next: Elif, Prev: Defined, Up: Conditional Syntax + +4.2.4 Else +---------- + +The `#else' directive can be added to a conditional to provide +alternative text to be used if the condition fails. This is what it +looks like: + + #if EXPRESSION + TEXT-IF-TRUE + #else /* Not EXPRESSION */ + TEXT-IF-FALSE + #endif /* Not EXPRESSION */ + +If EXPRESSION is nonzero, the TEXT-IF-TRUE is included and the +TEXT-IF-FALSE is skipped. If EXPRESSION is zero, the opposite happens. + + You can use `#else' with `#ifdef' and `#ifndef', too. + + +File: cpp.info, Node: Elif, Prev: Else, Up: Conditional Syntax + +4.2.5 Elif +---------- + +One common case of nested conditionals is used to check for more than +two possible alternatives. For example, you might have + + #if X == 1 + ... + #else /* X != 1 */ + #if X == 2 + ... + #else /* X != 2 */ + ... + #endif /* X != 2 */ + #endif /* X != 1 */ + + Another conditional directive, `#elif', allows this to be +abbreviated as follows: + + #if X == 1 + ... + #elif X == 2 + ... + #else /* X != 2 and X != 1*/ + ... + #endif /* X != 2 and X != 1*/ + + `#elif' stands for "else if". Like `#else', it goes in the middle +of a conditional group and subdivides it; it does not require a +matching `#endif' of its own. Like `#if', the `#elif' directive +includes an expression to be tested. The text following the `#elif' is +processed only if the original `#if'-condition failed and the `#elif' +condition succeeds. + + More than one `#elif' can go in the same conditional group. Then +the text after each `#elif' is processed only if the `#elif' condition +succeeds after the original `#if' and all previous `#elif' directives +within it have failed. + + `#else' is allowed after any number of `#elif' directives, but +`#elif' may not follow `#else'. + + +File: cpp.info, Node: Deleted Code, Prev: Conditional Syntax, Up: Conditionals + +4.3 Deleted Code +================ + +If you replace or delete a part of the program but want to keep the old +code around for future reference, you often cannot simply comment it +out. Block comments do not nest, so the first comment inside the old +code will end the commenting-out. The probable result is a flood of +syntax errors. + + One way to avoid this problem is to use an always-false conditional +instead. For instance, put `#if 0' before the deleted code and +`#endif' after it. This works even if the code being turned off +contains conditionals, but they must be entire conditionals (balanced +`#if' and `#endif'). + + Some people use `#ifdef notdef' instead. This is risky, because +`notdef' might be accidentally defined as a macro, and then the +conditional would succeed. `#if 0' can be counted on to fail. + + Do not use `#if 0' for comments which are not C code. Use a real +comment, instead. The interior of `#if 0' must consist of complete +tokens; in particular, single-quote characters must balance. Comments +often contain unbalanced single-quote characters (known in English as +apostrophes). These confuse `#if 0'. They don't confuse `/*'. + + +File: cpp.info, Node: Diagnostics, Next: Line Control, Prev: Conditionals, Up: Top + +5 Diagnostics +************* + +The directive `#error' causes the preprocessor to report a fatal error. +The tokens forming the rest of the line following `#error' are used as +the error message. + + You would use `#error' inside of a conditional that detects a +combination of parameters which you know the program does not properly +support. For example, if you know that the program will not run +properly on a VAX, you might write + + #ifdef __vax__ + #error "Won't work on VAXen. See comments at get_last_object." + #endif + + If you have several configuration parameters that must be set up by +the installation in a consistent way, you can use conditionals to detect +an inconsistency and report it with `#error'. For example, + + #if !defined(UNALIGNED_INT_ASM_OP) && defined(DWARF2_DEBUGGING_INFO) + #error "DWARF2_DEBUGGING_INFO requires UNALIGNED_INT_ASM_OP." + #endif + + The directive `#warning' is like `#error', but causes the +preprocessor to issue a warning and continue preprocessing. The tokens +following `#warning' are used as the warning message. + + You might use `#warning' in obsolete header files, with a message +directing the user to the header file which should be used instead. + + Neither `#error' nor `#warning' macro-expands its argument. +Internal whitespace sequences are each replaced with a single space. +The line must consist of complete tokens. It is wisest to make the +argument of these directives be a single string constant; this avoids +problems with apostrophes and the like. + + +File: cpp.info, Node: Line Control, Next: Pragmas, Prev: Diagnostics, Up: Top + +6 Line Control +************** + +The C preprocessor informs the C compiler of the location in your source +code where each token came from. Presently, this is just the file name +and line number. All the tokens resulting from macro expansion are +reported as having appeared on the line of the source file where the +outermost macro was used. We intend to be more accurate in the future. + + If you write a program which generates source code, such as the +`bison' parser generator, you may want to adjust the preprocessor's +notion of the current file name and line number by hand. Parts of the +output from `bison' are generated from scratch, other parts come from a +standard parser file. The rest are copied verbatim from `bison''s +input. You would like compiler error messages and symbolic debuggers +to be able to refer to `bison''s input file. + + `bison' or any such program can arrange this by writing `#line' +directives into the output file. `#line' is a directive that specifies +the original line number and source file name for subsequent input in +the current preprocessor input file. `#line' has three variants: + +`#line LINENUM' + LINENUM is a non-negative decimal integer constant. It specifies + the line number which should be reported for the following line of + input. Subsequent lines are counted from LINENUM. + +`#line LINENUM FILENAME' + LINENUM is the same as for the first form, and has the same + effect. In addition, FILENAME is a string constant. The + following line and all subsequent lines are reported to come from + the file it specifies, until something else happens to change that. + FILENAME is interpreted according to the normal rules for a string + constant: backslash escapes are interpreted. This is different + from `#include'. + + Previous versions of CPP did not interpret escapes in `#line'; we + have changed it because the standard requires they be interpreted, + and most other compilers do. + +`#line ANYTHING ELSE' + ANYTHING ELSE is checked for macro calls, which are expanded. The + result should match one of the above two forms. + + `#line' directives alter the results of the `__FILE__' and +`__LINE__' predefined macros from that point on. *Note Standard +Predefined Macros::. They do not have any effect on `#include''s idea +of the directory containing the current file. This is a change from +GCC 2.95. Previously, a file reading + + #line 1 "../src/gram.y" + #include "gram.h" + + would search for `gram.h' in `../src', then the `-I' chain; the +directory containing the physical source file would not be searched. +In GCC 3.0 and later, the `#include' is not affected by the presence of +a `#line' referring to a different directory. + + We made this change because the old behavior caused problems when +generated source files were transported between machines. For instance, +it is common practice to ship generated parsers with a source release, +so that people building the distribution do not need to have yacc or +Bison installed. These files frequently have `#line' directives +referring to the directory tree of the system where the distribution was +created. If GCC tries to search for headers in those directories, the +build is likely to fail. + + The new behavior can cause failures too, if the generated file is not +in the same directory as its source and it attempts to include a header +which would be visible searching from the directory containing the +source file. However, this problem is easily solved with an additional +`-I' switch on the command line. The failures caused by the old +semantics could sometimes be corrected only by editing the generated +files, which is difficult and error-prone. + + +File: cpp.info, Node: Pragmas, Next: Other Directives, Prev: Line Control, Up: Top + +7 Pragmas +********* + +The `#pragma' directive is the method specified by the C standard for +providing additional information to the compiler, beyond what is +conveyed in the language itself. Three forms of this directive +(commonly known as "pragmas") are specified by the 1999 C standard. A +C compiler is free to attach any meaning it likes to other pragmas. + + GCC has historically preferred to use extensions to the syntax of the +language, such as `__attribute__', for this purpose. However, GCC does +define a few pragmas of its own. These mostly have effects on the +entire translation unit or source file. + + In GCC version 3, all GNU-defined, supported pragmas have been given +a `GCC' prefix. This is in line with the `STDC' prefix on all pragmas +defined by C99. For backward compatibility, pragmas which were +recognized by previous versions are still recognized without the `GCC' +prefix, but that usage is deprecated. Some older pragmas are +deprecated in their entirety. They are not recognized with the `GCC' +prefix. *Note Obsolete Features::. + + C99 introduces the `_Pragma' operator. This feature addresses a +major problem with `#pragma': being a directive, it cannot be produced +as the result of macro expansion. `_Pragma' is an operator, much like +`sizeof' or `defined', and can be embedded in a macro. + + Its syntax is `_Pragma (STRING-LITERAL)', where STRING-LITERAL can +be either a normal or wide-character string literal. It is +destringized, by replacing all `\\' with a single `\' and all `\"' with +a `"'. The result is then processed as if it had appeared as the right +hand side of a `#pragma' directive. For example, + + _Pragma ("GCC dependency \"parse.y\"") + +has the same effect as `#pragma GCC dependency "parse.y"'. The same +effect could be achieved using macros, for example + + #define DO_PRAGMA(x) _Pragma (#x) + DO_PRAGMA (GCC dependency "parse.y") + + The standard is unclear on where a `_Pragma' operator can appear. +The preprocessor does not accept it within a preprocessing conditional +directive like `#if'. To be safe, you are probably best keeping it out +of directives other than `#define', and putting it on a line of its own. + + This manual documents the pragmas which are meaningful to the +preprocessor itself. Other pragmas are meaningful to the C or C++ +compilers. They are documented in the GCC manual. + +`#pragma GCC dependency' + `#pragma GCC dependency' allows you to check the relative dates of + the current file and another file. If the other file is more + recent than the current file, a warning is issued. This is useful + if the current file is derived from the other file, and should be + regenerated. The other file is searched for using the normal + include search path. Optional trailing text can be used to give + more information in the warning message. + + #pragma GCC dependency "parse.y" + #pragma GCC dependency "/usr/include/time.h" rerun fixincludes + +`#pragma GCC poison' + Sometimes, there is an identifier that you want to remove + completely from your program, and make sure that it never creeps + back in. To enforce this, you can "poison" the identifier with + this pragma. `#pragma GCC poison' is followed by a list of + identifiers to poison. If any of those identifiers appears + anywhere in the source after the directive, it is a hard error. + For example, + + #pragma GCC poison printf sprintf fprintf + sprintf(some_string, "hello"); + + will produce an error. + + If a poisoned identifier appears as part of the expansion of a + macro which was defined before the identifier was poisoned, it + will _not_ cause an error. This lets you poison an identifier + without worrying about system headers defining macros that use it. + + For example, + + #define strrchr rindex + #pragma GCC poison rindex + strrchr(some_string, 'h'); + + will not produce an error. + +`#pragma GCC system_header' + This pragma takes no arguments. It causes the rest of the code in + the current file to be treated as if it came from a system header. + *Note System Headers::. + + + +File: cpp.info, Node: Other Directives, Next: Preprocessor Output, Prev: Pragmas, Up: Top + +8 Other Directives +****************** + +The `#ident' directive takes one argument, a string constant. On some +systems, that string constant is copied into a special segment of the +object file. On other systems, the directive is ignored. The `#sccs' +directive is a synonym for `#ident'. + + These directives are not part of the C standard, but they are not +official GNU extensions either. What historical information we have +been able to find, suggests they originated with System V. + + Both `#ident' and `#sccs' are deprecated extensions. + + The "null directive" consists of a `#' followed by a newline, with +only whitespace (including comments) in between. A null directive is +understood as a preprocessing directive but has no effect on the +preprocessor output. The primary significance of the existence of the +null directive is that an input line consisting of just a `#' will +produce no output, rather than a line of output containing just a `#'. +Supposedly some old C programs contain such lines. + + +File: cpp.info, Node: Preprocessor Output, Next: Traditional Mode, Prev: Other Directives, Up: Top + +9 Preprocessor Output +********************* + +When the C preprocessor is used with the C, C++, or Objective-C +compilers, it is integrated into the compiler and communicates a stream +of binary tokens directly to the compiler's parser. However, it can +also be used in the more conventional standalone mode, where it produces +textual output. + + The output from the C preprocessor looks much like the input, except +that all preprocessing directive lines have been replaced with blank +lines and all comments with spaces. Long runs of blank lines are +discarded. + + The ISO standard specifies that it is implementation defined whether +a preprocessor preserves whitespace between tokens, or replaces it with +e.g. a single space. In GNU CPP, whitespace between tokens is collapsed +to become a single space, with the exception that the first token on a +non-directive line is preceded with sufficient spaces that it appears in +the same column in the preprocessed output that it appeared in the +original source file. This is so the output is easy to read. *Note +Differences from previous versions::. CPP does not insert any +whitespace where there was none in the original source, except where +necessary to prevent an accidental token paste. + + Source file name and line number information is conveyed by lines of +the form + + # LINENUM FILENAME FLAGS + +These are called "linemarkers". They are inserted as needed into the +output (but never within a string or character constant). They mean +that the following line originated in file FILENAME at line LINENUM. +FILENAME will never contain any non-printing characters; they are +replaced with octal escape sequences. + + After the file name comes zero or more flags, which are `1', `2', +`3', or `4'. If there are multiple flags, spaces separate them. Here +is what the flags mean: + +`1' + This indicates the start of a new file. + +`2' + This indicates returning to a file (after having included another + file). + +`3' + This indicates that the following text comes from a system header + file, so certain warnings should be suppressed. + +`4' + This indicates that the following text should be treated as being + wrapped in an implicit `extern "C"' block. + + As an extension, the preprocessor accepts linemarkers in +non-assembler input files. They are treated like the corresponding +`#line' directive, (*note Line Control::), except that trailing flags +are permitted, and are interpreted with the meanings described above. +If multiple flags are given, they must be in ascending order. + + Some directives may be duplicated in the output of the preprocessor. +These are `#ident' (always), `#pragma' (only if the preprocessor does +not handle the pragma itself), and `#define' and `#undef' (with certain +debugging options). If this happens, the `#' of the directive will +always be in the first column, and there will be no space between the +`#' and the directive name. If macro expansion happens to generate +tokens which might be mistaken for a duplicated directive, a space will +be inserted between the `#' and the directive name. + + +File: cpp.info, Node: Traditional Mode, Next: Implementation Details, Prev: Preprocessor Output, Up: Top + +10 Traditional Mode +******************* + +Traditional (pre-standard) C preprocessing is rather different from the +preprocessing specified by the standard. When GCC is given the +`-traditional-cpp' option, it attempts to emulate a traditional +preprocessor. + + GCC versions 3.2 and later only support traditional mode semantics in +the preprocessor, and not in the compiler front ends. This chapter +outlines the traditional preprocessor semantics we implemented. + + The implementation does not correspond precisely to the behavior of +earlier versions of GCC, nor to any true traditional preprocessor. +After all, inconsistencies among traditional implementations were a +major motivation for C standardization. However, we intend that it +should be compatible with true traditional preprocessors in all ways +that actually matter. + +* Menu: + +* Traditional lexical analysis:: +* Traditional macros:: +* Traditional miscellany:: +* Traditional warnings:: + + +File: cpp.info, Node: Traditional lexical analysis, Next: Traditional macros, Up: Traditional Mode + +10.1 Traditional lexical analysis +================================= + +The traditional preprocessor does not decompose its input into tokens +the same way a standards-conforming preprocessor does. The input is +simply treated as a stream of text with minimal internal form. + + This implementation does not treat trigraphs (*note trigraphs::) +specially since they were an invention of the standards committee. It +handles arbitrarily-positioned escaped newlines properly and splices +the lines as you would expect; many traditional preprocessors did not +do this. + + The form of horizontal whitespace in the input file is preserved in +the output. In particular, hard tabs remain hard tabs. This can be +useful if, for example, you are preprocessing a Makefile. + + Traditional CPP only recognizes C-style block comments, and treats +the `/*' sequence as introducing a comment only if it lies outside +quoted text. Quoted text is introduced by the usual single and double +quotes, and also by an initial `<' in a `#include' directive. + + Traditionally, comments are completely removed and are not replaced +with a space. Since a traditional compiler does its own tokenization +of the output of the preprocessor, this means that comments can +effectively be used as token paste operators. However, comments behave +like separators for text handled by the preprocessor itself, since it +doesn't re-lex its input. For example, in + + #if foo/**/bar + +`foo' and `bar' are distinct identifiers and expanded separately if +they happen to be macros. In other words, this directive is equivalent +to + + #if foo bar + +rather than + + #if foobar + + Generally speaking, in traditional mode an opening quote need not +have a matching closing quote. In particular, a macro may be defined +with replacement text that contains an unmatched quote. Of course, if +you attempt to compile preprocessed output containing an unmatched quote +you will get a syntax error. + + However, all preprocessing directives other than `#define' require +matching quotes. For example: + + #define m This macro's fine and has an unmatched quote + "/* This is not a comment. */ + /* This is a comment. The following #include directive + is ill-formed. */ + #include ++foo; + + Function-like macros are similar in form but quite different in +behavior to their ISO counterparts. Their arguments are contained +within parentheses, are comma-separated, and can cross physical lines. +Commas within nested parentheses are not treated as argument +separators. Similarly, a quote in an argument cannot be left unclosed; +a following comma or parenthesis that comes before the closing quote is +treated like any other character. There is no facility for handling +variadic macros. + + This implementation removes all comments from macro arguments, unless +the `-C' option is given. The form of all other horizontal whitespace +in arguments is preserved, including leading and trailing whitespace. +In particular + + f( ) + +is treated as an invocation of the macro `f' with a single argument +consisting of a single space. If you want to invoke a function-like +macro that takes no arguments, you must not leave any whitespace +between the parentheses. + + If a macro argument crosses a new line, the new line is replaced with +a space when forming the argument. If the previous line contained an +unterminated quote, the following line inherits the quoted state. + + Traditional preprocessors replace parameters in the replacement text +with their arguments regardless of whether the parameters are within +quotes or not. This provides a way to stringize arguments. For example + + #define str(x) "x" + str(/* A comment */some text ) + ==> "some text " + +Note that the comment is removed, but that the trailing space is +preserved. Here is an example of using a comment to effect token +pasting. + + #define suffix(x) foo_/**/x + suffix(bar) + ==> foo_bar + + +File: cpp.info, Node: Traditional miscellany, Next: Traditional warnings, Prev: Traditional macros, Up: Traditional Mode + +10.3 Traditional miscellany +=========================== + +Here are some things to be aware of when using the traditional +preprocessor. + + * Preprocessing directives are recognized only when their leading + `#' appears in the first column. There can be no whitespace + between the beginning of the line and the `#', but whitespace can + follow the `#'. + + * A true traditional C preprocessor does not recognize `#error' or + `#pragma', and may not recognize `#elif'. CPP supports all the + directives in traditional mode that it supports in ISO mode, + including extensions, with the exception that the effects of + `#pragma GCC poison' are undefined. + + * __STDC__ is not defined. + + * If you use digraphs the behavior is undefined. + + * If a line that looks like a directive appears within macro + arguments, the behavior is undefined. + + + +File: cpp.info, Node: Traditional warnings, Prev: Traditional miscellany, Up: Traditional Mode + +10.4 Traditional warnings +========================= + +You can request warnings about features that did not exist, or worked +differently, in traditional C with the `-Wtraditional' option. GCC +does not warn about features of ISO C which you must use when you are +using a conforming compiler, such as the `#' and `##' operators. + + Presently `-Wtraditional' warns about: + + * Macro parameters that appear within string literals in the macro + body. In traditional C macro replacement takes place within + string literals, but does not in ISO C. + + * In traditional C, some preprocessor directives did not exist. + Traditional preprocessors would only consider a line to be a + directive if the `#' appeared in column 1 on the line. Therefore + `-Wtraditional' warns about directives that traditional C + understands but would ignore because the `#' does not appear as the + first character on the line. It also suggests you hide directives + like `#pragma' not understood by traditional C by indenting them. + Some traditional implementations would not recognize `#elif', so it + suggests avoiding it altogether. + + * A function-like macro that appears without an argument list. In + some traditional preprocessors this was an error. In ISO C it + merely means that the macro is not expanded. + + * The unary plus operator. This did not exist in traditional C. + + * The `U' and `LL' integer constant suffixes, which were not + available in traditional C. (Traditional C does support the `L' + suffix for simple long integer constants.) You are not warned + about uses of these suffixes in macros defined in system headers. + For instance, `UINT_MAX' may well be defined as `4294967295U', but + you will not be warned if you use `UINT_MAX'. + + You can usually avoid the warning, and the related warning about + constants which are so large that they are unsigned, by writing the + integer constant in question in hexadecimal, with no U suffix. + Take care, though, because this gives the wrong result in exotic + cases. + + +File: cpp.info, Node: Implementation Details, Next: Invocation, Prev: Traditional Mode, Up: Top + +11 Implementation Details +************************* + +Here we document details of how the preprocessor's implementation +affects its user-visible behavior. You should try to avoid undue +reliance on behavior described here, as it is possible that it will +change subtly in future implementations. + + Also documented here are obsolete features and changes from previous +versions of CPP. + +* Menu: + +* Implementation-defined behavior:: +* Implementation limits:: +* Obsolete Features:: +* Differences from previous versions:: + + +File: cpp.info, Node: Implementation-defined behavior, Next: Implementation limits, Up: Implementation Details + +11.1 Implementation-defined behavior +==================================== + +This is how CPP behaves in all the cases which the C standard describes +as "implementation-defined". This term means that the implementation +is free to do what it likes, but must document its choice and stick to +it. + + * The mapping of physical source file multi-byte characters to the + execution character set. + + The input character set can be specified using the + `-finput-charset' option, while the execution character set may be + controlled using the `-fexec-charset' and `-fwide-exec-charset' + options. + + * Identifier characters. + + The C and C++ standards allow identifiers to be composed of `_' + and the alphanumeric characters. C++ and C99 also allow universal + character names, and C99 further permits implementation-defined + characters. GCC currently only permits universal character names + if `-fextended-identifiers' is used, because the implementation of + universal character names in identifiers is experimental. + + GCC allows the `$' character in identifiers as an extension for + most targets. This is true regardless of the `std=' switch, since + this extension cannot conflict with standards-conforming programs. + When preprocessing assembler, however, dollars are not identifier + characters by default. + + Currently the targets that by default do not permit `$' are AVR, + IP2K, MMIX, MIPS Irix 3, ARM aout, and PowerPC targets for the AIX + operating system. + + You can override the default with `-fdollars-in-identifiers' or + `fno-dollars-in-identifiers'. *Note fdollars-in-identifiers::. + + * Non-empty sequences of whitespace characters. + + In textual output, each whitespace sequence is collapsed to a + single space. For aesthetic reasons, the first token on each + non-directive line of output is preceded with sufficient spaces + that it appears in the same column as it did in the original + source file. + + * The numeric value of character constants in preprocessor + expressions. + + The preprocessor and compiler interpret character constants in the + same way; i.e. escape sequences such as `\a' are given the values + they would have on the target machine. + + The compiler values a multi-character character constant a + character at a time, shifting the previous value left by the + number of bits per target character, and then or-ing in the + bit-pattern of the new character truncated to the width of a + target character. The final bit-pattern is given type `int', and + is therefore signed, regardless of whether single characters are + signed or not (a slight change from versions 3.1 and earlier of + GCC). If there are more characters in the constant than would fit + in the target `int' the compiler issues a warning, and the excess + leading characters are ignored. + + For example, `'ab'' for a target with an 8-bit `char' would be + interpreted as + `(int) ((unsigned char) 'a' * 256 + (unsigned char) 'b')', and + `'\234a'' as + `(int) ((unsigned char) '\234' * 256 + (unsigned char) 'a')'. + + * Source file inclusion. + + For a discussion on how the preprocessor locates header files, + *Note Include Operation::. + + * Interpretation of the filename resulting from a macro-expanded + `#include' directive. + + *Note Computed Includes::. + + * Treatment of a `#pragma' directive that after macro-expansion + results in a standard pragma. + + No macro expansion occurs on any `#pragma' directive line, so the + question does not arise. + + Note that GCC does not yet implement any of the standard pragmas. + + + +File: cpp.info, Node: Implementation limits, Next: Obsolete Features, Prev: Implementation-defined behavior, Up: Implementation Details + +11.2 Implementation limits +========================== + +CPP has a small number of internal limits. This section lists the +limits which the C standard requires to be no lower than some minimum, +and all the others known. It is intended that there should be as few +limits as possible. If you encounter an undocumented or inconvenient +limit, please report that as a bug. *Note Reporting Bugs: (gcc)Bugs. + + Where we say something is limited "only by available memory", that +means that internal data structures impose no intrinsic limit, and space +is allocated with `malloc' or equivalent. The actual limit will +therefore depend on many things, such as the size of other things +allocated by the compiler at the same time, the amount of memory +consumed by other processes on the same computer, etc. + + * Nesting levels of `#include' files. + + We impose an arbitrary limit of 200 levels, to avoid runaway + recursion. The standard requires at least 15 levels. + + * Nesting levels of conditional inclusion. + + The C standard mandates this be at least 63. CPP is limited only + by available memory. + + * Levels of parenthesized expressions within a full expression. + + The C standard requires this to be at least 63. In preprocessor + conditional expressions, it is limited only by available memory. + + * Significant initial characters in an identifier or macro name. + + The preprocessor treats all characters as significant. The C + standard requires only that the first 63 be significant. + + * Number of macros simultaneously defined in a single translation + unit. + + The standard requires at least 4095 be possible. CPP is limited + only by available memory. + + * Number of parameters in a macro definition and arguments in a + macro call. + + We allow `USHRT_MAX', which is no smaller than 65,535. The minimum + required by the standard is 127. + + * Number of characters on a logical source line. + + The C standard requires a minimum of 4096 be permitted. CPP places + no limits on this, but you may get incorrect column numbers + reported in diagnostics for lines longer than 65,535 characters. + + * Maximum size of a source file. + + The standard does not specify any lower limit on the maximum size + of a source file. GNU cpp maps files into memory, so it is + limited by the available address space. This is generally at + least two gigabytes. Depending on the operating system, the size + of physical memory may or may not be a limitation. + + + +File: cpp.info, Node: Obsolete Features, Next: Differences from previous versions, Prev: Implementation limits, Up: Implementation Details + +11.3 Obsolete Features +====================== + +CPP has some features which are present mainly for compatibility with +older programs. We discourage their use in new code. In some cases, +we plan to remove the feature in a future version of GCC. + +11.3.1 Assertions +----------------- + +"Assertions" are a deprecated alternative to macros in writing +conditionals to test what sort of computer or system the compiled +program will run on. Assertions are usually predefined, but you can +define them with preprocessing directives or command-line options. + + Assertions were intended to provide a more systematic way to describe +the compiler's target system. However, in practice they are just as +unpredictable as the system-specific predefined macros. In addition, +they are not part of any standard, and only a few compilers support +them. Therefore, the use of assertions is *less* portable than the use +of system-specific predefined macros. We recommend you do not use them +at all. + + An assertion looks like this: + + #PREDICATE (ANSWER) + +PREDICATE must be a single identifier. ANSWER can be any sequence of +tokens; all characters are significant except for leading and trailing +whitespace, and differences in internal whitespace sequences are +ignored. (This is similar to the rules governing macro redefinition.) +Thus, `(x + y)' is different from `(x+y)' but equivalent to +`( x + y )'. Parentheses do not nest inside an answer. + + To test an assertion, you write it in an `#if'. For example, this +conditional succeeds if either `vax' or `ns16000' has been asserted as +an answer for `machine'. + + #if #machine (vax) || #machine (ns16000) + +You can test whether _any_ answer is asserted for a predicate by +omitting the answer in the conditional: + + #if #machine + + Assertions are made with the `#assert' directive. Its sole argument +is the assertion to make, without the leading `#' that identifies +assertions in conditionals. + + #assert PREDICATE (ANSWER) + +You may make several assertions with the same predicate and different +answers. Subsequent assertions do not override previous ones for the +same predicate. All the answers for any given predicate are +simultaneously true. + + Assertions can be canceled with the `#unassert' directive. It has +the same syntax as `#assert'. In that form it cancels only the answer +which was specified on the `#unassert' line; other answers for that +predicate remain true. You can cancel an entire predicate by leaving +out the answer: + + #unassert PREDICATE + +In either form, if no such assertion has been made, `#unassert' has no +effect. + + You can also make or cancel assertions using command line options. +*Note Invocation::. + + +File: cpp.info, Node: Differences from previous versions, Prev: Obsolete Features, Up: Implementation Details + +11.4 Differences from previous versions +======================================= + +This section details behavior which has changed from previous versions +of CPP. We do not plan to change it again in the near future, but we +do not promise not to, either. + + The "previous versions" discussed here are 2.95 and before. The +behavior of GCC 3.0 is mostly the same as the behavior of the widely +used 2.96 and 2.97 development snapshots. Where there are differences, +they generally represent bugs in the snapshots. + + * -I- deprecated + + This option has been deprecated in 4.0. `-iquote' is meant to + replace the need for this option. + + * Order of evaluation of `#' and `##' operators + + The standard does not specify the order of evaluation of a chain of + `##' operators, nor whether `#' is evaluated before, after, or at + the same time as `##'. You should therefore not write any code + which depends on any specific ordering. It is possible to + guarantee an ordering, if you need one, by suitable use of nested + macros. + + An example of where this might matter is pasting the arguments `1', + `e' and `-2'. This would be fine for left-to-right pasting, but + right-to-left pasting would produce an invalid token `e-2'. + + GCC 3.0 evaluates `#' and `##' at the same time and strictly left + to right. Older versions evaluated all `#' operators first, then + all `##' operators, in an unreliable order. + + * The form of whitespace between tokens in preprocessor output + + *Note Preprocessor Output::, for the current textual format. This + is also the format used by stringification. Normally, the + preprocessor communicates tokens directly to the compiler's + parser, and whitespace does not come up at all. + + Older versions of GCC preserved all whitespace provided by the + user and inserted lots more whitespace of their own, because they + could not accurately predict when extra spaces were needed to + prevent accidental token pasting. + + * Optional argument when invoking rest argument macros + + As an extension, GCC permits you to omit the variable arguments + entirely when you use a variable argument macro. This is + forbidden by the 1999 C standard, and will provoke a pedantic + warning with GCC 3.0. Previous versions accepted it silently. + + * `##' swallowing preceding text in rest argument macros + + Formerly, in a macro expansion, if `##' appeared before a variable + arguments parameter, and the set of tokens specified for that + argument in the macro invocation was empty, previous versions of + CPP would back up and remove the preceding sequence of + non-whitespace characters (*not* the preceding token). This + extension is in direct conflict with the 1999 C standard and has + been drastically pared back. + + In the current version of the preprocessor, if `##' appears between + a comma and a variable arguments parameter, and the variable + argument is omitted entirely, the comma will be removed from the + expansion. If the variable argument is empty, or the token before + `##' is not a comma, then `##' behaves as a normal token paste. + + * `#line' and `#include' + + The `#line' directive used to change GCC's notion of the + "directory containing the current file", used by `#include' with a + double-quoted header file name. In 3.0 and later, it does not. + *Note Line Control::, for further explanation. + + * Syntax of `#line' + + In GCC 2.95 and previous, the string constant argument to `#line' + was treated the same way as the argument to `#include': backslash + escapes were not honored, and the string ended at the second `"'. + This is not compliant with the C standard. In GCC 3.0, an attempt + was made to correct the behavior, so that the string was treated + as a real string constant, but it turned out to be buggy. In 3.1, + the bugs have been fixed. (We are not fixing the bugs in 3.0 + because they affect relatively few people and the fix is quite + invasive.) + + + +File: cpp.info, Node: Invocation, Next: Environment Variables, Prev: Implementation Details, Up: Top + +12 Invocation +************* + +Most often when you use the C preprocessor you will not have to invoke +it explicitly: the C compiler will do so automatically. However, the +preprocessor is sometimes useful on its own. All the options listed +here are also acceptable to the C compiler and have the same meaning, +except that the C compiler has different rules for specifying the output +file. + + _Note:_ Whether you use the preprocessor by way of `gcc' or `cpp', +the "compiler driver" is run first. This program's purpose is to +translate your command into invocations of the programs that do the +actual work. Their command line interfaces are similar but not +identical to the documented interface, and may change without notice. + + The C preprocessor expects two file names as arguments, INFILE and +OUTFILE. The preprocessor reads INFILE together with any other files +it specifies with `#include'. All the output generated by the combined +input files is written in OUTFILE. + + Either INFILE or OUTFILE may be `-', which as INFILE means to read +from standard input and as OUTFILE means to write to standard output. +Also, if either file is omitted, it means the same as if `-' had been +specified for that file. + + Unless otherwise noted, or the option ends in `=', all options which +take an argument may have that argument appear either immediately after +the option, or with a space between option and argument: `-Ifoo' and +`-I foo' have the same effect. + + Many options have multi-letter names; therefore multiple +single-letter options may _not_ be grouped: `-dM' is very different from +`-d -M'. + +`-D NAME' + Predefine NAME as a macro, with definition `1'. + +`-D NAME=DEFINITION' + The contents of DEFINITION are tokenized and processed as if they + appeared during translation phase three in a `#define' directive. + In particular, the definition will be truncated by embedded + newline characters. + + If you are invoking the preprocessor from a shell or shell-like + program you may need to use the shell's quoting syntax to protect + characters such as spaces that have a meaning in the shell syntax. + + If you wish to define a function-like macro on the command line, + write its argument list with surrounding parentheses before the + equals sign (if any). Parentheses are meaningful to most shells, + so you will need to quote the option. With `sh' and `csh', + `-D'NAME(ARGS...)=DEFINITION'' works. + + `-D' and `-U' options are processed in the order they are given on + the command line. All `-imacros FILE' and `-include FILE' options + are processed after all `-D' and `-U' options. + +`-U NAME' + Cancel any previous definition of NAME, either built in or + provided with a `-D' option. + +`-undef' + Do not predefine any system-specific or GCC-specific macros. The + standard predefined macros remain defined. *Note Standard + Predefined Macros::. + +`-I DIR' + Add the directory DIR to the list of directories to be searched + for header files. *Note Search Path::. Directories named by `-I' + are searched before the standard system include directories. If + the directory DIR is a standard system include directory, the + option is ignored to ensure that the default search order for + system directories and the special treatment of system headers are + not defeated (*note System Headers::) . If DIR begins with `=', + then the `=' will be replaced by the sysroot prefix; see + `--sysroot' and `-isysroot'. + +`-o FILE' + Write output to FILE. This is the same as specifying FILE as the + second non-option argument to `cpp'. `gcc' has a different + interpretation of a second non-option argument, so you must use + `-o' to specify the output file. + +`-Wall' + Turns on all optional warnings which are desirable for normal code. + At present this is `-Wcomment', `-Wtrigraphs', `-Wmultichar' and a + warning about integer promotion causing a change of sign in `#if' + expressions. Note that many of the preprocessor's warnings are on + by default and have no options to control them. + +`-Wcomment' +`-Wcomments' + Warn whenever a comment-start sequence `/*' appears in a `/*' + comment, or whenever a backslash-newline appears in a `//' comment. + (Both forms have the same effect.) + +`-Wtrigraphs' + Most trigraphs in comments cannot affect the meaning of the + program. However, a trigraph that would form an escaped newline + (`??/' at the end of a line) can, by changing where the comment + begins or ends. Therefore, only trigraphs that would form escaped + newlines produce warnings inside a comment. + + This option is implied by `-Wall'. If `-Wall' is not given, this + option is still enabled unless trigraphs are enabled. To get + trigraph conversion without warnings, but get the other `-Wall' + warnings, use `-trigraphs -Wall -Wno-trigraphs'. + +`-Wtraditional' + Warn about certain constructs that behave differently in + traditional and ISO C. Also warn about ISO C constructs that have + no traditional C equivalent, and problematic constructs which + should be avoided. *Note Traditional Mode::. + +`-Wundef' + Warn whenever an identifier which is not a macro is encountered in + an `#if' directive, outside of `defined'. Such identifiers are + replaced with zero. + +`-Wunused-macros' + Warn about macros defined in the main file that are unused. A + macro is "used" if it is expanded or tested for existence at least + once. The preprocessor will also warn if the macro has not been + used at the time it is redefined or undefined. + + Built-in macros, macros defined on the command line, and macros + defined in include files are not warned about. + + _Note:_ If a macro is actually used, but only used in skipped + conditional blocks, then CPP will report it as unused. To avoid + the warning in such a case, you might improve the scope of the + macro's definition by, for example, moving it into the first + skipped block. Alternatively, you could provide a dummy use with + something like: + + #if defined the_macro_causing_the_warning + #endif + +`-Wendif-labels' + Warn whenever an `#else' or an `#endif' are followed by text. + This usually happens in code of the form + + #if FOO + ... + #else FOO + ... + #endif FOO + + The second and third `FOO' should be in comments, but often are not + in older programs. This warning is on by default. + +`-Werror' + Make all warnings into hard errors. Source code which triggers + warnings will be rejected. + +`-Wsystem-headers' + Issue warnings for code in system headers. These are normally + unhelpful in finding bugs in your own code, therefore suppressed. + If you are responsible for the system library, you may want to see + them. + +`-w' + Suppress all warnings, including those which GNU CPP issues by + default. + +`-pedantic' + Issue all the mandatory diagnostics listed in the C standard. + Some of them are left out by default, since they trigger + frequently on harmless code. + +`-pedantic-errors' + Issue all the mandatory diagnostics, and make all mandatory + diagnostics into errors. This includes mandatory diagnostics that + GCC issues without `-pedantic' but treats as warnings. + +`-M' + Instead of outputting the result of preprocessing, output a rule + suitable for `make' describing the dependencies of the main source + file. The preprocessor outputs one `make' rule containing the + object file name for that source file, a colon, and the names of + all the included files, including those coming from `-include' or + `-imacros' command line options. + + Unless specified explicitly (with `-MT' or `-MQ'), the object file + name consists of the name of the source file with any suffix + replaced with object file suffix and with any leading directory + parts removed. If there are many included files then the rule is + split into several lines using `\'-newline. The rule has no + commands. + + This option does not suppress the preprocessor's debug output, + such as `-dM'. To avoid mixing such debug output with the + dependency rules you should explicitly specify the dependency + output file with `-MF', or use an environment variable like + `DEPENDENCIES_OUTPUT' (*note Environment Variables::). Debug + output will still be sent to the regular output stream as normal. + + Passing `-M' to the driver implies `-E', and suppresses warnings + with an implicit `-w'. + +`-MM' + Like `-M' but do not mention header files that are found in system + header directories, nor header files that are included, directly + or indirectly, from such a header. + + This implies that the choice of angle brackets or double quotes in + an `#include' directive does not in itself determine whether that + header will appear in `-MM' dependency output. This is a slight + change in semantics from GCC versions 3.0 and earlier. + +`-MF FILE' + When used with `-M' or `-MM', specifies a file to write the + dependencies to. If no `-MF' switch is given the preprocessor + sends the rules to the same place it would have sent preprocessed + output. + + When used with the driver options `-MD' or `-MMD', `-MF' overrides + the default dependency output file. + +`-MG' + In conjunction with an option such as `-M' requesting dependency + generation, `-MG' assumes missing header files are generated files + and adds them to the dependency list without raising an error. + The dependency filename is taken directly from the `#include' + directive without prepending any path. `-MG' also suppresses + preprocessed output, as a missing header file renders this useless. + + This feature is used in automatic updating of makefiles. + +`-MP' + This option instructs CPP to add a phony target for each dependency + other than the main file, causing each to depend on nothing. These + dummy rules work around errors `make' gives if you remove header + files without updating the `Makefile' to match. + + This is typical output: + + test.o: test.c test.h + + test.h: + +`-MT TARGET' + Change the target of the rule emitted by dependency generation. By + default CPP takes the name of the main input file, deletes any + directory components and any file suffix such as `.c', and appends + the platform's usual object suffix. The result is the target. + + An `-MT' option will set the target to be exactly the string you + specify. If you want multiple targets, you can specify them as a + single argument to `-MT', or use multiple `-MT' options. + + For example, `-MT '$(objpfx)foo.o'' might give + + $(objpfx)foo.o: foo.c + +`-MQ TARGET' + Same as `-MT', but it quotes any characters which are special to + Make. `-MQ '$(objpfx)foo.o'' gives + + $$(objpfx)foo.o: foo.c + + The default target is automatically quoted, as if it were given + with `-MQ'. + +`-MD' + `-MD' is equivalent to `-M -MF FILE', except that `-E' is not + implied. The driver determines FILE based on whether an `-o' + option is given. If it is, the driver uses its argument but with + a suffix of `.d', otherwise it takes the name of the input file, + removes any directory components and suffix, and applies a `.d' + suffix. + + If `-MD' is used in conjunction with `-E', any `-o' switch is + understood to specify the dependency output file (*note -MF: + dashMF.), but if used without `-E', each `-o' is understood to + specify a target object file. + + Since `-E' is not implied, `-MD' can be used to generate a + dependency output file as a side-effect of the compilation process. + +`-MMD' + Like `-MD' except mention only user header files, not system + header files. + +`-x c' +`-x c++' +`-x objective-c' +`-x assembler-with-cpp' + Specify the source language: C, C++, Objective-C, or assembly. + This has nothing to do with standards conformance or extensions; + it merely selects which base syntax to expect. If you give none + of these options, cpp will deduce the language from the extension + of the source file: `.c', `.cc', `.m', or `.S'. Some other common + extensions for C++ and assembly are also recognized. If cpp does + not recognize the extension, it will treat the file as C; this is + the most generic mode. + + _Note:_ Previous versions of cpp accepted a `-lang' option which + selected both the language and the standards conformance level. + This option has been removed, because it conflicts with the `-l' + option. + +`-std=STANDARD' +`-ansi' + Specify the standard to which the code should conform. Currently + CPP knows about C and C++ standards; others may be added in the + future. + + STANDARD may be one of: + `iso9899:1990' + `c89' + The ISO C standard from 1990. `c89' is the customary + shorthand for this version of the standard. + + The `-ansi' option is equivalent to `-std=c89'. + + `iso9899:199409' + The 1990 C standard, as amended in 1994. + + `iso9899:1999' + `c99' + `iso9899:199x' + `c9x' + The revised ISO C standard, published in December 1999. + Before publication, this was known as C9X. + + `gnu89' + The 1990 C standard plus GNU extensions. This is the default. + + `gnu99' + `gnu9x' + The 1999 C standard plus GNU extensions. + + `c++98' + The 1998 ISO C++ standard plus amendments. + + `gnu++98' + The same as `-std=c++98' plus GNU extensions. This is the + default for C++ code. + +`-I-' + Split the include path. Any directories specified with `-I' + options before `-I-' are searched only for headers requested with + `#include "FILE"'; they are not searched for `#include '. + If additional directories are specified with `-I' options after + the `-I-', those directories are searched for all `#include' + directives. + + In addition, `-I-' inhibits the use of the directory of the current + file directory as the first search directory for `#include "FILE"'. + *Note Search Path::. This option has been deprecated. + +`-nostdinc' + Do not search the standard system directories for header files. + Only the directories you have specified with `-I' options (and the + directory of the current file, if appropriate) are searched. + +`-nostdinc++' + Do not search for header files in the C++-specific standard + directories, but do still search the other standard directories. + (This option is used when building the C++ library.) + +`-include FILE' + Process FILE as if `#include "file"' appeared as the first line of + the primary source file. However, the first directory searched + for FILE is the preprocessor's working directory _instead of_ the + directory containing the main source file. If not found there, it + is searched for in the remainder of the `#include "..."' search + chain as normal. + + If multiple `-include' options are given, the files are included + in the order they appear on the command line. + +`-imacros FILE' + Exactly like `-include', except that any output produced by + scanning FILE is thrown away. Macros it defines remain defined. + This allows you to acquire all the macros from a header without + also processing its declarations. + + All files specified by `-imacros' are processed before all files + specified by `-include'. + +`-idirafter DIR' + Search DIR for header files, but do it _after_ all directories + specified with `-I' and the standard system directories have been + exhausted. DIR is treated as a system include directory. If DIR + begins with `=', then the `=' will be replaced by the sysroot + prefix; see `--sysroot' and `-isysroot'. + +`-iprefix PREFIX' + Specify PREFIX as the prefix for subsequent `-iwithprefix' + options. If the prefix represents a directory, you should include + the final `/'. + +`-iwithprefix DIR' +`-iwithprefixbefore DIR' + Append DIR to the prefix specified previously with `-iprefix', and + add the resulting directory to the include search path. + `-iwithprefixbefore' puts it in the same place `-I' would; + `-iwithprefix' puts it where `-idirafter' would. + +`-isysroot DIR' + This option is like the `--sysroot' option, but applies only to + header files. See the `--sysroot' option for more information. + +`-imultilib DIR' + Use DIR as a subdirectory of the directory containing + target-specific C++ headers. + +`-isystem DIR' + Search DIR for header files, after all directories specified by + `-I' but before the standard system directories. Mark it as a + system directory, so that it gets the same special treatment as is + applied to the standard system directories. *Note System + Headers::. If DIR begins with `=', then the `=' will be replaced + by the sysroot prefix; see `--sysroot' and `-isysroot'. + +`-iquote DIR' + Search DIR only for header files requested with `#include "FILE"'; + they are not searched for `#include ', before all + directories specified by `-I' and before the standard system + directories. *Note Search Path::. If DIR begins with `=', then + the `=' will be replaced by the sysroot prefix; see `--sysroot' + and `-isysroot'. + +`-fdirectives-only' + When preprocessing, handle directives, but do not expand macros. + + The option's behavior depends on the `-E' and `-fpreprocessed' + options. + + With `-E', preprocessing is limited to the handling of directives + such as `#define', `#ifdef', and `#error'. Other preprocessor + operations, such as macro expansion and trigraph conversion are + not performed. In addition, the `-dD' option is implicitly + enabled. + + With `-fpreprocessed', predefinition of command line and most + builtin macros is disabled. Macros such as `__LINE__', which are + contextually dependent, are handled normally. This enables + compilation of files previously preprocessed with `-E + -fdirectives-only'. + + With both `-E' and `-fpreprocessed', the rules for + `-fpreprocessed' take precedence. This enables full preprocessing + of files previously preprocessed with `-E -fdirectives-only'. + +`-fdollars-in-identifiers' + Accept `$' in identifiers. *Note Identifier characters::. + +`-fextended-identifiers' + Accept universal character names in identifiers. This option is + experimental; in a future version of GCC, it will be enabled by + default for C99 and C++. + +`-fpreprocessed' + Indicate to the preprocessor that the input file has already been + preprocessed. This suppresses things like macro expansion, + trigraph conversion, escaped newline splicing, and processing of + most directives. The preprocessor still recognizes and removes + comments, so that you can pass a file preprocessed with `-C' to + the compiler without problems. In this mode the integrated + preprocessor is little more than a tokenizer for the front ends. + + `-fpreprocessed' is implicit if the input file has one of the + extensions `.i', `.ii' or `.mi'. These are the extensions that + GCC uses for preprocessed files created by `-save-temps'. + +`-ftabstop=WIDTH' + Set the distance between tab stops. This helps the preprocessor + report correct column numbers in warnings or errors, even if tabs + appear on the line. If the value is less than 1 or greater than + 100, the option is ignored. The default is 8. + +`-fexec-charset=CHARSET' + Set the execution character set, used for string and character + constants. The default is UTF-8. CHARSET can be any encoding + supported by the system's `iconv' library routine. + +`-fwide-exec-charset=CHARSET' + Set the wide execution character set, used for wide string and + character constants. The default is UTF-32 or UTF-16, whichever + corresponds to the width of `wchar_t'. As with `-fexec-charset', + CHARSET can be any encoding supported by the system's `iconv' + library routine; however, you will have problems with encodings + that do not fit exactly in `wchar_t'. + +`-finput-charset=CHARSET' + Set the input character set, used for translation from the + character set of the input file to the source character set used + by GCC. If the locale does not specify, or GCC cannot get this + information from the locale, the default is UTF-8. This can be + overridden by either the locale or this command line option. + Currently the command line option takes precedence if there's a + conflict. CHARSET can be any encoding supported by the system's + `iconv' library routine. + +`-fworking-directory' + Enable generation of linemarkers in the preprocessor output that + will let the compiler know the current working directory at the + time of preprocessing. When this option is enabled, the + preprocessor will emit, after the initial linemarker, a second + linemarker with the current working directory followed by two + slashes. GCC will use this directory, when it's present in the + preprocessed input, as the directory emitted as the current + working directory in some debugging information formats. This + option is implicitly enabled if debugging information is enabled, + but this can be inhibited with the negated form + `-fno-working-directory'. If the `-P' flag is present in the + command line, this option has no effect, since no `#line' + directives are emitted whatsoever. + +`-fno-show-column' + Do not print column numbers in diagnostics. This may be necessary + if diagnostics are being scanned by a program that does not + understand the column numbers, such as `dejagnu'. + +`-A PREDICATE=ANSWER' + Make an assertion with the predicate PREDICATE and answer ANSWER. + This form is preferred to the older form `-A PREDICATE(ANSWER)', + which is still supported, because it does not use shell special + characters. *Note Obsolete Features::. + +`-A -PREDICATE=ANSWER' + Cancel an assertion with the predicate PREDICATE and answer ANSWER. + +`-dCHARS' + CHARS is a sequence of one or more of the following characters, + and must not be preceded by a space. Other characters are + interpreted by the compiler proper, or reserved for future + versions of GCC, and so are silently ignored. If you specify + characters whose behavior conflicts, the result is undefined. + + `M' + Instead of the normal output, generate a list of `#define' + directives for all the macros defined during the execution of + the preprocessor, including predefined macros. This gives + you a way of finding out what is predefined in your version + of the preprocessor. Assuming you have no file `foo.h', the + command + + touch foo.h; cpp -dM foo.h + + will show all the predefined macros. + + If you use `-dM' without the `-E' option, `-dM' is + interpreted as a synonym for `-fdump-rtl-mach'. *Note + Debugging Options: (gcc)Debugging Options. + + `D' + Like `M' except in two respects: it does _not_ include the + predefined macros, and it outputs _both_ the `#define' + directives and the result of preprocessing. Both kinds of + output go to the standard output file. + + `N' + Like `D', but emit only the macro names, not their expansions. + + `I' + Output `#include' directives in addition to the result of + preprocessing. + + `U' + Like `D' except that only macros that are expanded, or whose + definedness is tested in preprocessor directives, are output; + the output is delayed until the use or test of the macro; and + `#undef' directives are also output for macros tested but + undefined at the time. + +`-P' + Inhibit generation of linemarkers in the output from the + preprocessor. This might be useful when running the preprocessor + on something that is not C code, and will be sent to a program + which might be confused by the linemarkers. *Note Preprocessor + Output::. + +`-C' + Do not discard comments. All comments are passed through to the + output file, except for comments in processed directives, which + are deleted along with the directive. + + You should be prepared for side effects when using `-C'; it causes + the preprocessor to treat comments as tokens in their own right. + For example, comments appearing at the start of what would be a + directive line have the effect of turning that line into an + ordinary source line, since the first token on the line is no + longer a `#'. + +`-CC' + Do not discard comments, including during macro expansion. This is + like `-C', except that comments contained within macros are also + passed through to the output file where the macro is expanded. + + In addition to the side-effects of the `-C' option, the `-CC' + option causes all C++-style comments inside a macro to be + converted to C-style comments. This is to prevent later use of + that macro from inadvertently commenting out the remainder of the + source line. + + The `-CC' option is generally used to support lint comments. + +`-traditional-cpp' + Try to imitate the behavior of old-fashioned C preprocessors, as + opposed to ISO C preprocessors. *Note Traditional Mode::. + +`-trigraphs' + Process trigraph sequences. *Note Initial processing::. + +`-remap' + Enable special code to work around file systems which only permit + very short file names, such as MS-DOS. + +`--help' +`--target-help' + Print text describing all the command line options instead of + preprocessing anything. + +`-v' + Verbose mode. Print out GNU CPP's version number at the beginning + of execution, and report the final form of the include path. + +`-H' + Print the name of each header file used, in addition to other + normal activities. Each name is indented to show how deep in the + `#include' stack it is. Precompiled header files are also + printed, even if they are found to be invalid; an invalid + precompiled header file is printed with `...x' and a valid one + with `...!' . + +`-version' +`--version' + Print out GNU CPP's version number. With one dash, proceed to + preprocess as normal. With two dashes, exit immediately. + + +File: cpp.info, Node: Environment Variables, Next: GNU Free Documentation License, Prev: Invocation, Up: Top + +13 Environment Variables +************************ + +This section describes the environment variables that affect how CPP +operates. You can use them to specify directories or prefixes to use +when searching for include files, or to control dependency output. + + Note that you can also specify places to search using options such as +`-I', and control dependency output with options like `-M' (*note +Invocation::). These take precedence over environment variables, which +in turn take precedence over the configuration of GCC. + +`CPATH' +`C_INCLUDE_PATH' +`CPLUS_INCLUDE_PATH' +`OBJC_INCLUDE_PATH' + Each variable's value is a list of directories separated by a + special character, much like `PATH', in which to look for header + files. The special character, `PATH_SEPARATOR', is + target-dependent and determined at GCC build time. For Microsoft + Windows-based targets it is a semicolon, and for almost all other + targets it is a colon. + + `CPATH' specifies a list of directories to be searched as if + specified with `-I', but after any paths given with `-I' options + on the command line. This environment variable is used regardless + of which language is being preprocessed. + + The remaining environment variables apply only when preprocessing + the particular language indicated. Each specifies a list of + directories to be searched as if specified with `-isystem', but + after any paths given with `-isystem' options on the command line. + + In all these variables, an empty element instructs the compiler to + search its current working directory. Empty elements can appear + at the beginning or end of a path. For instance, if the value of + `CPATH' is `:/special/include', that has the same effect as + `-I. -I/special/include'. + + See also *Note Search Path::. + +`DEPENDENCIES_OUTPUT' + If this variable is set, its value specifies how to output + dependencies for Make based on the non-system header files + processed by the compiler. System header files are ignored in the + dependency output. + + The value of `DEPENDENCIES_OUTPUT' can be just a file name, in + which case the Make rules are written to that file, guessing the + target name from the source file name. Or the value can have the + form `FILE TARGET', in which case the rules are written to file + FILE using TARGET as the target name. + + In other words, this environment variable is equivalent to + combining the options `-MM' and `-MF' (*note Invocation::), with + an optional `-MT' switch too. + +`SUNPRO_DEPENDENCIES' + This variable is the same as `DEPENDENCIES_OUTPUT' (see above), + except that system header files are not ignored, so it implies + `-M' rather than `-MM'. However, the dependence on the main input + file is omitted. *Note Invocation::. + + +File: cpp.info, Node: GNU Free Documentation License, Next: Index of Directives, Prev: Environment Variables, Up: Top + +GNU Free Documentation License +****************************** + + Version 1.2, November 2002 + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included in an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +ADDENDUM: How to use this License for your documents +==================================================== + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover +Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. + + +File: cpp.info, Node: Index of Directives, Next: Option Index, Prev: GNU Free Documentation License, Up: Top + +Index of Directives +******************* + +[index] +* Menu: + +* #assert: Obsolete Features. (line 48) +* #define: Object-like Macros. (line 11) +* #elif: Elif. (line 6) +* #else: Else. (line 6) +* #endif: Ifdef. (line 6) +* #error: Diagnostics. (line 6) +* #ident: Other Directives. (line 6) +* #if: Conditional Syntax. (line 6) +* #ifdef: Ifdef. (line 6) +* #ifndef: Ifdef. (line 40) +* #import: Alternatives to Wrapper #ifndef. + (line 11) +* #include: Include Syntax. (line 6) +* #include_next: Wrapper Headers. (line 6) +* #line: Line Control. (line 20) +* #pragma GCC dependency: Pragmas. (line 53) +* #pragma GCC poison: Pragmas. (line 65) +* #pragma GCC system_header <1>: Pragmas. (line 92) +* #pragma GCC system_header: System Headers. (line 31) +* #sccs: Other Directives. (line 6) +* #unassert: Obsolete Features. (line 59) +* #undef: Undefining and Redefining Macros. + (line 6) +* #warning: Diagnostics. (line 27) + + +File: cpp.info, Node: Option Index, Next: Concept Index, Prev: Index of Directives, Up: Top + +Option Index +************ + +CPP's command line options and environment variables are indexed here +without any initial `-' or `--'. + +[index] +* Menu: + +* A: Invocation. (line 522) +* ansi: Invocation. (line 308) +* C: Invocation. (line 581) +* C_INCLUDE_PATH: Environment Variables. + (line 16) +* CPATH: Environment Variables. + (line 15) +* CPLUS_INCLUDE_PATH: Environment Variables. + (line 17) +* D: Invocation. (line 39) +* dD: Invocation. (line 554) +* DEPENDENCIES_OUTPUT: Environment Variables. + (line 44) +* dI: Invocation. (line 563) +* dM: Invocation. (line 538) +* dN: Invocation. (line 560) +* dU: Invocation. (line 567) +* fdirectives-only: Invocation. (line 430) +* fdollars-in-identifiers: Invocation. (line 452) +* fexec-charset: Invocation. (line 479) +* fextended-identifiers: Invocation. (line 455) +* finput-charset: Invocation. (line 492) +* fno-show-column: Invocation. (line 517) +* fno-working-directory: Invocation. (line 502) +* fpreprocessed: Invocation. (line 460) +* ftabstop: Invocation. (line 473) +* fwide-exec-charset: Invocation. (line 484) +* fworking-directory: Invocation. (line 502) +* H: Invocation. (line 626) +* help: Invocation. (line 618) +* I: Invocation. (line 71) +* I-: Invocation. (line 345) +* idirafter: Invocation. (line 387) +* imacros: Invocation. (line 378) +* imultilib: Invocation. (line 410) +* include: Invocation. (line 367) +* iprefix: Invocation. (line 394) +* iquote: Invocation. (line 422) +* isysroot: Invocation. (line 406) +* isystem: Invocation. (line 414) +* iwithprefix: Invocation. (line 400) +* iwithprefixbefore: Invocation. (line 400) +* M: Invocation. (line 180) +* MD: Invocation. (line 269) +* MF: Invocation. (line 215) +* MG: Invocation. (line 224) +* MM: Invocation. (line 205) +* MMD: Invocation. (line 285) +* MP: Invocation. (line 234) +* MQ: Invocation. (line 260) +* MT: Invocation. (line 246) +* nostdinc: Invocation. (line 357) +* nostdinc++: Invocation. (line 362) +* o: Invocation. (line 82) +* OBJC_INCLUDE_PATH: Environment Variables. + (line 18) +* P: Invocation. (line 574) +* pedantic: Invocation. (line 170) +* pedantic-errors: Invocation. (line 175) +* remap: Invocation. (line 613) +* std=: Invocation. (line 308) +* SUNPRO_DEPENDENCIES: Environment Variables. + (line 60) +* target-help: Invocation. (line 618) +* traditional-cpp: Invocation. (line 606) +* trigraphs: Invocation. (line 610) +* U: Invocation. (line 62) +* undef: Invocation. (line 66) +* v: Invocation. (line 622) +* version: Invocation. (line 635) +* w: Invocation. (line 166) +* Wall: Invocation. (line 88) +* Wcomment: Invocation. (line 96) +* Wcomments: Invocation. (line 96) +* Wendif-labels: Invocation. (line 143) +* Werror: Invocation. (line 156) +* Wsystem-headers: Invocation. (line 160) +* Wtraditional: Invocation. (line 113) +* Wtrigraphs: Invocation. (line 101) +* Wundef: Invocation. (line 119) +* Wunused-macros: Invocation. (line 124) +* x: Invocation. (line 292) + + +File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top + +Concept Index +************* + +[index] +* Menu: + +* # operator: Stringification. (line 6) +* ## operator: Concatenation. (line 6) +* _Pragma: Pragmas. (line 25) +* alternative tokens: Tokenization. (line 106) +* arguments: Macro Arguments. (line 6) +* arguments in macro definitions: Macro Arguments. (line 6) +* assertions: Obsolete Features. (line 13) +* assertions, canceling: Obsolete Features. (line 59) +* backslash-newline: Initial processing. (line 61) +* block comments: Initial processing. (line 77) +* C++ named operators: C++ Named Operators. (line 6) +* character constants: Tokenization. (line 85) +* character set, execution: Invocation. (line 479) +* character set, input: Invocation. (line 492) +* character set, wide execution: Invocation. (line 484) +* command line: Invocation. (line 6) +* commenting out code: Deleted Code. (line 6) +* comments: Initial processing. (line 77) +* common predefined macros: Common Predefined Macros. + (line 6) +* computed includes: Computed Includes. (line 6) +* concatenation: Concatenation. (line 6) +* conditional group: Ifdef. (line 14) +* conditionals: Conditionals. (line 6) +* continued lines: Initial processing. (line 61) +* controlling macro: Once-Only Headers. (line 35) +* defined: Defined. (line 6) +* dependencies for make as output: Environment Variables. + (line 45) +* dependencies, make: Invocation. (line 180) +* diagnostic: Diagnostics. (line 6) +* differences from previous versions: Differences from previous versions. + (line 6) +* digraphs: Tokenization. (line 106) +* directive line: The preprocessing language. + (line 6) +* directive name: The preprocessing language. + (line 6) +* directives: The preprocessing language. + (line 6) +* empty macro arguments: Macro Arguments. (line 66) +* environment variables: Environment Variables. + (line 6) +* expansion of arguments: Argument Prescan. (line 6) +* FDL, GNU Free Documentation License: GNU Free Documentation License. + (line 6) +* function-like macros: Function-like Macros. + (line 6) +* grouping options: Invocation. (line 34) +* guard macro: Once-Only Headers. (line 35) +* header file: Header Files. (line 6) +* header file names: Tokenization. (line 85) +* identifiers: Tokenization. (line 34) +* implementation limits: Implementation limits. + (line 6) +* implementation-defined behavior: Implementation-defined behavior. + (line 6) +* including just once: Once-Only Headers. (line 6) +* invocation: Invocation. (line 6) +* iso646.h: C++ Named Operators. (line 6) +* line comments: Initial processing. (line 77) +* line control: Line Control. (line 6) +* line endings: Initial processing. (line 14) +* linemarkers: Preprocessor Output. (line 28) +* macro argument expansion: Argument Prescan. (line 6) +* macro arguments and directives: Directives Within Macro Arguments. + (line 6) +* macros in include: Computed Includes. (line 6) +* macros with arguments: Macro Arguments. (line 6) +* macros with variable arguments: Variadic Macros. (line 6) +* make: Invocation. (line 180) +* manifest constants: Object-like Macros. (line 6) +* named operators: C++ Named Operators. (line 6) +* newlines in macro arguments: Newlines in Arguments. + (line 6) +* null directive: Other Directives. (line 17) +* numbers: Tokenization. (line 61) +* object-like macro: Object-like Macros. (line 6) +* options: Invocation. (line 38) +* options, grouping: Invocation. (line 34) +* other tokens: Tokenization. (line 120) +* output format: Preprocessor Output. (line 12) +* overriding a header file: Wrapper Headers. (line 6) +* parentheses in macro bodies: Operator Precedence Problems. + (line 6) +* pitfalls of macros: Macro Pitfalls. (line 6) +* predefined macros: Predefined Macros. (line 6) +* predefined macros, system-specific: System-specific Predefined Macros. + (line 6) +* predicates: Obsolete Features. (line 26) +* preprocessing directives: The preprocessing language. + (line 6) +* preprocessing numbers: Tokenization. (line 61) +* preprocessing tokens: Tokenization. (line 6) +* prescan of macro arguments: Argument Prescan. (line 6) +* problems with macros: Macro Pitfalls. (line 6) +* punctuators: Tokenization. (line 106) +* redefining macros: Undefining and Redefining Macros. + (line 6) +* repeated inclusion: Once-Only Headers. (line 6) +* reporting errors: Diagnostics. (line 6) +* reporting warnings: Diagnostics. (line 6) +* reserved namespace: System-specific Predefined Macros. + (line 6) +* self-reference: Self-Referential Macros. + (line 6) +* semicolons (after macro calls): Swallowing the Semicolon. + (line 6) +* side effects (in macro arguments): Duplication of Side Effects. + (line 6) +* standard predefined macros.: Standard Predefined Macros. + (line 6) +* string constants: Tokenization. (line 85) +* string literals: Tokenization. (line 85) +* stringification: Stringification. (line 6) +* symbolic constants: Object-like Macros. (line 6) +* system header files <1>: System Headers. (line 6) +* system header files: Header Files. (line 13) +* system-specific predefined macros: System-specific Predefined Macros. + (line 6) +* testing predicates: Obsolete Features. (line 37) +* token concatenation: Concatenation. (line 6) +* token pasting: Concatenation. (line 6) +* tokens: Tokenization. (line 6) +* trigraphs: Initial processing. (line 32) +* undefining macros: Undefining and Redefining Macros. + (line 6) +* unsafe macros: Duplication of Side Effects. + (line 6) +* variable number of arguments: Variadic Macros. (line 6) +* variadic macros: Variadic Macros. (line 6) +* wrapper #ifndef: Once-Only Headers. (line 6) +* wrapper headers: Wrapper Headers. (line 6) + + + +Tag Table: +Node: Top1086 +Node: Overview3800 +Node: Character sets6621 +Ref: Character sets-Footnote-18804 +Node: Initial processing8985 +Ref: trigraphs10544 +Node: Tokenization14746 +Ref: Tokenization-Footnote-121882 +Node: The preprocessing language21993 +Node: Header Files24871 +Node: Include Syntax26787 +Node: Include Operation28424 +Node: Search Path30272 +Node: Once-Only Headers33462 +Node: Alternatives to Wrapper #ifndef35121 +Node: Computed Includes36864 +Node: Wrapper Headers40022 +Node: System Headers42448 +Node: Macros44498 +Node: Object-like Macros45639 +Node: Function-like Macros49229 +Node: Macro Arguments50845 +Node: Stringification54990 +Node: Concatenation58196 +Node: Variadic Macros61304 +Node: Predefined Macros66091 +Node: Standard Predefined Macros66679 +Node: Common Predefined Macros72615 +Node: System-specific Predefined Macros85525 +Node: C++ Named Operators87546 +Node: Undefining and Redefining Macros88510 +Node: Directives Within Macro Arguments90614 +Node: Macro Pitfalls92162 +Node: Misnesting92695 +Node: Operator Precedence Problems93807 +Node: Swallowing the Semicolon95673 +Node: Duplication of Side Effects97696 +Node: Self-Referential Macros99879 +Node: Argument Prescan102288 +Node: Newlines in Arguments106042 +Node: Conditionals106993 +Node: Conditional Uses108823 +Node: Conditional Syntax110181 +Node: Ifdef110501 +Node: If113662 +Node: Defined115966 +Node: Else117249 +Node: Elif117819 +Node: Deleted Code119108 +Node: Diagnostics120355 +Node: Line Control121972 +Node: Pragmas125776 +Node: Other Directives130046 +Node: Preprocessor Output131153 +Node: Traditional Mode134354 +Node: Traditional lexical analysis135412 +Node: Traditional macros137915 +Node: Traditional miscellany141717 +Node: Traditional warnings142714 +Node: Implementation Details144911 +Node: Implementation-defined behavior145532 +Ref: Identifier characters146284 +Node: Implementation limits149359 +Node: Obsolete Features152033 +Node: Differences from previous versions154870 +Node: Invocation159078 +Ref: Wtrigraphs163530 +Ref: dashMF168305 +Ref: fdollars-in-identifiers177688 +Node: Environment Variables185851 +Node: GNU Free Documentation License188817 +Node: Index of Directives211250 +Node: Option Index213184 +Node: Concept Index219368 + +End Tag Table diff --git a/mingw/info/cppinternals.info b/mingw/info/cppinternals.info new file mode 100644 index 00000000..1aa6a4f1 --- /dev/null +++ b/mingw/info/cppinternals.info @@ -0,0 +1,1036 @@ +This is doc/cppinternals.info, produced by makeinfo version 4.8 from +../../gcc-4.4.0/gcc/doc/cppinternals.texi. + +INFO-DIR-SECTION Software development +START-INFO-DIR-ENTRY +* Cpplib: (cppinternals). Cpplib internals. +END-INFO-DIR-ENTRY + + This file documents the internals of the GNU C Preprocessor. + + Copyright 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software +Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided also +that the entire resulting derived work is distributed under the terms +of a permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions. + + +File: cppinternals.info, Node: Top, Next: Conventions, Up: (dir) + +The GNU C Preprocessor Internals +******************************** + +1 Cpplib--the GNU C Preprocessor +******************************** + +The GNU C preprocessor is implemented as a library, "cpplib", so it can +be easily shared between a stand-alone preprocessor, and a preprocessor +integrated with the C, C++ and Objective-C front ends. It is also +available for use by other programs, though this is not recommended as +its exposed interface has not yet reached a point of reasonable +stability. + + The library has been written to be re-entrant, so that it can be used +to preprocess many files simultaneously if necessary. It has also been +written with the preprocessing token as the fundamental unit; the +preprocessor in previous versions of GCC would operate on text strings +as the fundamental unit. + + This brief manual documents the internals of cpplib, and explains +some of the tricky issues. It is intended that, along with the +comments in the source code, a reasonably competent C programmer should +be able to figure out what the code is doing, and why things have been +implemented the way they have. + +* Menu: + +* Conventions:: Conventions used in the code. +* Lexer:: The combined C, C++ and Objective-C Lexer. +* Hash Nodes:: All identifiers are entered into a hash table. +* Macro Expansion:: Macro expansion algorithm. +* Token Spacing:: Spacing and paste avoidance issues. +* Line Numbering:: Tracking location within files. +* Guard Macros:: Optimizing header files with guard macros. +* Files:: File handling. +* Concept Index:: Index. + + +File: cppinternals.info, Node: Conventions, Next: Lexer, Prev: Top, Up: Top + +Conventions +*********** + +cpplib has two interfaces--one is exposed internally only, and the +other is for both internal and external use. + + The convention is that functions and types that are exposed to +multiple files internally are prefixed with `_cpp_', and are to be +found in the file `internal.h'. Functions and types exposed to external +clients are in `cpplib.h', and prefixed with `cpp_'. For historical +reasons this is no longer quite true, but we should strive to stick to +it. + + We are striving to reduce the information exposed in `cpplib.h' to +the bare minimum necessary, and then to keep it there. This makes clear +exactly what external clients are entitled to assume, and allows us to +change internals in the future without worrying whether library clients +are perhaps relying on some kind of undocumented implementation-specific +behavior. + + +File: cppinternals.info, Node: Lexer, Next: Hash Nodes, Prev: Conventions, Up: Top + +The Lexer +********* + +Overview +======== + +The lexer is contained in the file `lex.c'. It is a hand-coded lexer, +and not implemented as a state machine. It can understand C, C++ and +Objective-C source code, and has been extended to allow reasonably +successful preprocessing of assembly language. The lexer does not make +an initial pass to strip out trigraphs and escaped newlines, but handles +them as they are encountered in a single pass of the input file. It +returns preprocessing tokens individually, not a line at a time. + + It is mostly transparent to users of the library, since the library's +interface for obtaining the next token, `cpp_get_token', takes care of +lexing new tokens, handling directives, and expanding macros as +necessary. However, the lexer does expose some functionality so that +clients of the library can easily spell a given token, such as +`cpp_spell_token' and `cpp_token_len'. These functions are useful when +generating diagnostics, and for emitting the preprocessed output. + +Lexing a token +============== + +Lexing of an individual token is handled by `_cpp_lex_direct' and its +subroutines. In its current form the code is quite complicated, with +read ahead characters and such-like, since it strives to not step back +in the character stream in preparation for handling non-ASCII file +encodings. The current plan is to convert any such files to UTF-8 +before processing them. This complexity is therefore unnecessary and +will be removed, so I'll not discuss it further here. + + The job of `_cpp_lex_direct' is simply to lex a token. It is not +responsible for issues like directive handling, returning lookahead +tokens directly, multiple-include optimization, or conditional block +skipping. It necessarily has a minor ro^le to play in memory +management of lexed lines. I discuss these issues in a separate section +(*note Lexing a line::). + + The lexer places the token it lexes into storage pointed to by the +variable `cur_token', and then increments it. This variable is +important for correct diagnostic positioning. Unless a specific line +and column are passed to the diagnostic routines, they will examine the +`line' and `col' values of the token just before the location that +`cur_token' points to, and use that location to report the diagnostic. + + The lexer does not consider whitespace to be a token in its own +right. If whitespace (other than a new line) precedes a token, it sets +the `PREV_WHITE' bit in the token's flags. Each token has its `line' +and `col' variables set to the line and column of the first character +of the token. This line number is the line number in the translation +unit, and can be converted to a source (file, line) pair using the line +map code. + + The first token on a logical, i.e. unescaped, line has the flag +`BOL' set for beginning-of-line. This flag is intended for internal +use, both to distinguish a `#' that begins a directive from one that +doesn't, and to generate a call-back to clients that want to be +notified about the start of every non-directive line with tokens on it. +Clients cannot reliably determine this for themselves: the first token +might be a macro, and the tokens of a macro expansion do not have the +`BOL' flag set. The macro expansion may even be empty, and the next +token on the line certainly won't have the `BOL' flag set. + + New lines are treated specially; exactly how the lexer handles them +is context-dependent. The C standard mandates that directives are +terminated by the first unescaped newline character, even if it appears +in the middle of a macro expansion. Therefore, if the state variable +`in_directive' is set, the lexer returns a `CPP_EOF' token, which is +normally used to indicate end-of-file, to indicate end-of-directive. +In a directive a `CPP_EOF' token never means end-of-file. +Conveniently, if the caller was `collect_args', it already handles +`CPP_EOF' as if it were end-of-file, and reports an error about an +unterminated macro argument list. + + The C standard also specifies that a new line in the middle of the +arguments to a macro is treated as whitespace. This white space is +important in case the macro argument is stringified. The state variable +`parsing_args' is nonzero when the preprocessor is collecting the +arguments to a macro call. It is set to 1 when looking for the opening +parenthesis to a function-like macro, and 2 when collecting the actual +arguments up to the closing parenthesis, since these two cases need to +be distinguished sometimes. One such time is here: the lexer sets the +`PREV_WHITE' flag of a token if it meets a new line when `parsing_args' +is set to 2. It doesn't set it if it meets a new line when +`parsing_args' is 1, since then code like + + #define foo() bar + foo + baz + +would be output with an erroneous space before `baz': + + foo + baz + + This is a good example of the subtlety of getting token spacing +correct in the preprocessor; there are plenty of tests in the testsuite +for corner cases like this. + + The lexer is written to treat each of `\r', `\n', `\r\n' and `\n\r' +as a single new line indicator. This allows it to transparently +preprocess MS-DOS, Macintosh and Unix files without their needing to +pass through a special filter beforehand. + + We also decided to treat a backslash, either `\' or the trigraph +`??/', separated from one of the above newline indicators by +non-comment whitespace only, as intending to escape the newline. It +tends to be a typing mistake, and cannot reasonably be mistaken for +anything else in any of the C-family grammars. Since handling it this +way is not strictly conforming to the ISO standard, the library issues a +warning wherever it encounters it. + + Handling newlines like this is made simpler by doing it in one place +only. The function `handle_newline' takes care of all newline +characters, and `skip_escaped_newlines' takes care of arbitrarily long +sequences of escaped newlines, deferring to `handle_newline' to handle +the newlines themselves. + + The most painful aspect of lexing ISO-standard C and C++ is handling +trigraphs and backlash-escaped newlines. Trigraphs are processed before +any interpretation of the meaning of a character is made, and +unfortunately there is a trigraph representation for a backslash, so it +is possible for the trigraph `??/' to introduce an escaped newline. + + Escaped newlines are tedious because theoretically they can occur +anywhere--between the `+' and `=' of the `+=' token, within the +characters of an identifier, and even between the `*' and `/' that +terminates a comment. Moreover, you cannot be sure there is just +one--there might be an arbitrarily long sequence of them. + + So, for example, the routine that lexes a number, `parse_number', +cannot assume that it can scan forwards until the first non-number +character and be done with it, because this could be the `\' +introducing an escaped newline, or the `?' introducing the trigraph +sequence that represents the `\' of an escaped newline. If it +encounters a `?' or `\', it calls `skip_escaped_newlines' to skip over +any potential escaped newlines before checking whether the number has +been finished. + + Similarly code in the main body of `_cpp_lex_direct' cannot simply +check for a `=' after a `+' character to determine whether it has a +`+=' token; it needs to be prepared for an escaped newline of some +sort. Such cases use the function `get_effective_char', which returns +the first character after any intervening escaped newlines. + + The lexer needs to keep track of the correct column position, +including counting tabs as specified by the `-ftabstop=' option. This +should be done even within C-style comments; they can appear in the +middle of a line, and we want to report diagnostics in the correct +position for text appearing after the end of the comment. + + Some identifiers, such as `__VA_ARGS__' and poisoned identifiers, +may be invalid and require a diagnostic. However, if they appear in a +macro expansion we don't want to complain with each use of the macro. +It is therefore best to catch them during the lexing stage, in +`parse_identifier'. In both cases, whether a diagnostic is needed or +not is dependent upon the lexer's state. For example, we don't want to +issue a diagnostic for re-poisoning a poisoned identifier, or for using +`__VA_ARGS__' in the expansion of a variable-argument macro. Therefore +`parse_identifier' makes use of state flags to determine whether a +diagnostic is appropriate. Since we change state on a per-token basis, +and don't lex whole lines at a time, this is not a problem. + + Another place where state flags are used to change behavior is whilst +lexing header names. Normally, a `<' would be lexed as a single token. +After a `#include' directive, though, it should be lexed as a single +token as far as the nearest `>' character. Note that we don't allow +the terminators of header names to be escaped; the first `"' or `>' +terminates the header name. + + Interpretation of some character sequences depends upon whether we +are lexing C, C++ or Objective-C, and on the revision of the standard in +force. For example, `::' is a single token in C++, but in C it is two +separate `:' tokens and almost certainly a syntax error. Such cases +are handled by `_cpp_lex_direct' based upon command-line flags stored +in the `cpp_options' structure. + + Once a token has been lexed, it leads an independent existence. The +spelling of numbers, identifiers and strings is copied to permanent +storage from the original input buffer, so a token remains valid and +correct even if its source buffer is freed with `_cpp_pop_buffer'. The +storage holding the spellings of such tokens remains until the client +program calls cpp_destroy, probably at the end of the translation unit. + +Lexing a line +============= + +When the preprocessor was changed to return pointers to tokens, one +feature I wanted was some sort of guarantee regarding how long a +returned pointer remains valid. This is important to the stand-alone +preprocessor, the future direction of the C family front ends, and even +to cpplib itself internally. + + Occasionally the preprocessor wants to be able to peek ahead in the +token stream. For example, after the name of a function-like macro, it +wants to check the next token to see if it is an opening parenthesis. +Another example is that, after reading the first few tokens of a +`#pragma' directive and not recognizing it as a registered pragma, it +wants to backtrack and allow the user-defined handler for unknown +pragmas to access the full `#pragma' token stream. The stand-alone +preprocessor wants to be able to test the current token with the +previous one to see if a space needs to be inserted to preserve their +separate tokenization upon re-lexing (paste avoidance), so it needs to +be sure the pointer to the previous token is still valid. The +recursive-descent C++ parser wants to be able to perform tentative +parsing arbitrarily far ahead in the token stream, and then to be able +to jump back to a prior position in that stream if necessary. + + The rule I chose, which is fairly natural, is to arrange that the +preprocessor lex all tokens on a line consecutively into a token buffer, +which I call a "token run", and when meeting an unescaped new line +(newlines within comments do not count either), to start lexing back at +the beginning of the run. Note that we do _not_ lex a line of tokens +at once; if we did that `parse_identifier' would not have state flags +available to warn about invalid identifiers (*note Invalid +identifiers::). + + In other words, accessing tokens that appeared earlier in the current +line is valid, but since each logical line overwrites the tokens of the +previous line, tokens from prior lines are unavailable. In particular, +since a directive only occupies a single logical line, this means that +the directive handlers like the `#pragma' handler can jump around in +the directive's tokens if necessary. + + Two issues remain: what about tokens that arise from macro +expansions, and what happens when we have a long line that overflows +the token run? + + Since we promise clients that we preserve the validity of pointers +that we have already returned for tokens that appeared earlier in the +line, we cannot reallocate the run. Instead, on overflow it is +expanded by chaining a new token run on to the end of the existing one. + + The tokens forming a macro's replacement list are collected by the +`#define' handler, and placed in storage that is only freed by +`cpp_destroy'. So if a macro is expanded in the line of tokens, the +pointers to the tokens of its expansion that are returned will always +remain valid. However, macros are a little trickier than that, since +they give rise to three sources of fresh tokens. They are the built-in +macros like `__LINE__', and the `#' and `##' operators for +stringification and token pasting. I handled this by allocating space +for these tokens from the lexer's token run chain. This means they +automatically receive the same lifetime guarantees as lexed tokens, and +we don't need to concern ourselves with freeing them. + + Lexing into a line of tokens solves some of the token memory +management issues, but not all. The opening parenthesis after a +function-like macro name might lie on a different line, and the front +ends definitely want the ability to look ahead past the end of the +current line. So cpplib only moves back to the start of the token run +at the end of a line if the variable `keep_tokens' is zero. +Line-buffering is quite natural for the preprocessor, and as a result +the only time cpplib needs to increment this variable is whilst looking +for the opening parenthesis to, and reading the arguments of, a +function-like macro. In the near future cpplib will export an +interface to increment and decrement this variable, so that clients can +share full control over the lifetime of token pointers too. + + The routine `_cpp_lex_token' handles moving to new token runs, +calling `_cpp_lex_direct' to lex new tokens, or returning +previously-lexed tokens if we stepped back in the token stream. It also +checks each token for the `BOL' flag, which might indicate a directive +that needs to be handled, or require a start-of-line call-back to be +made. `_cpp_lex_token' also handles skipping over tokens in failed +conditional blocks, and invalidates the control macro of the +multiple-include optimization if a token was successfully lexed outside +a directive. In other words, its callers do not need to concern +themselves with such issues. + + +File: cppinternals.info, Node: Hash Nodes, Next: Macro Expansion, Prev: Lexer, Up: Top + +Hash Nodes +********** + +When cpplib encounters an "identifier", it generates a hash code for it +and stores it in the hash table. By "identifier" we mean tokens with +type `CPP_NAME'; this includes identifiers in the usual C sense, as +well as keywords, directive names, macro names and so on. For example, +all of `pragma', `int', `foo' and `__GNUC__' are identifiers and hashed +when lexed. + + Each node in the hash table contain various information about the +identifier it represents. For example, its length and type. At any one +time, each identifier falls into exactly one of three categories: + + * Macros + + These have been declared to be macros, either on the command line + or with `#define'. A few, such as `__TIME__' are built-ins + entered in the hash table during initialization. The hash node + for a normal macro points to a structure with more information + about the macro, such as whether it is function-like, how many + arguments it takes, and its expansion. Built-in macros are + flagged as special, and instead contain an enum indicating which + of the various built-in macros it is. + + * Assertions + + Assertions are in a separate namespace to macros. To enforce + this, cpp actually prepends a `#' character before hashing and + entering it in the hash table. An assertion's node points to a + chain of answers to that assertion. + + * Void + + Everything else falls into this category--an identifier that is not + currently a macro, or a macro that has since been undefined with + `#undef'. + + When preprocessing C++, this category also includes the named + operators, such as `xor'. In expressions these behave like the + operators they represent, but in contexts where the spelling of a + token matters they are spelt differently. This spelling + distinction is relevant when they are operands of the stringizing + and pasting macro operators `#' and `##'. Named operator hash + nodes are flagged, both to catch the spelling distinction and to + prevent them from being defined as macros. + + The same identifiers share the same hash node. Since each identifier +token, after lexing, contains a pointer to its hash node, this is used +to provide rapid lookup of various information. For example, when +parsing a `#define' statement, CPP flags each argument's identifier +hash node with the index of that argument. This makes duplicated +argument checking an O(1) operation for each argument. Similarly, for +each identifier in the macro's expansion, lookup to see if it is an +argument, and which argument it is, is also an O(1) operation. Further, +each directive name, such as `endif', has an associated directive enum +stored in its hash node, so that directive lookup is also O(1). + + +File: cppinternals.info, Node: Macro Expansion, Next: Token Spacing, Prev: Hash Nodes, Up: Top + +Macro Expansion Algorithm +************************* + +Macro expansion is a tricky operation, fraught with nasty corner cases +and situations that render what you thought was a nifty way to optimize +the preprocessor's expansion algorithm wrong in quite subtle ways. + + I strongly recommend you have a good grasp of how the C and C++ +standards require macros to be expanded before diving into this +section, let alone the code!. If you don't have a clear mental picture +of how things like nested macro expansion, stringification and token +pasting are supposed to work, damage to your sanity can quickly result. + +Internal representation of macros +================================= + +The preprocessor stores macro expansions in tokenized form. This saves +repeated lexing passes during expansion, at the cost of a small +increase in memory consumption on average. The tokens are stored +contiguously in memory, so a pointer to the first one and a token count +is all you need to get the replacement list of a macro. + + If the macro is a function-like macro the preprocessor also stores +its parameters, in the form of an ordered list of pointers to the hash +table entry of each parameter's identifier. Further, in the macro's +stored expansion each occurrence of a parameter is replaced with a +special token of type `CPP_MACRO_ARG'. Each such token holds the index +of the parameter it represents in the parameter list, which allows +rapid replacement of parameters with their arguments during expansion. +Despite this optimization it is still necessary to store the original +parameters to the macro, both for dumping with e.g., `-dD', and to warn +about non-trivial macro redefinitions when the parameter names have +changed. + +Macro expansion overview +======================== + +The preprocessor maintains a "context stack", implemented as a linked +list of `cpp_context' structures, which together represent the macro +expansion state at any one time. The `struct cpp_reader' member +variable `context' points to the current top of this stack. The top +normally holds the unexpanded replacement list of the innermost macro +under expansion, except when cpplib is about to pre-expand an argument, +in which case it holds that argument's unexpanded tokens. + + When there are no macros under expansion, cpplib is in "base +context". All contexts other than the base context contain a +contiguous list of tokens delimited by a starting and ending token. +When not in base context, cpplib obtains the next token from the list +of the top context. If there are no tokens left in the list, it pops +that context off the stack, and subsequent ones if necessary, until an +unexhausted context is found or it returns to base context. In base +context, cpplib reads tokens directly from the lexer. + + If it encounters an identifier that is both a macro and enabled for +expansion, cpplib prepares to push a new context for that macro on the +stack by calling the routine `enter_macro_context'. When this routine +returns, the new context will contain the unexpanded tokens of the +replacement list of that macro. In the case of function-like macros, +`enter_macro_context' also replaces any parameters in the replacement +list, stored as `CPP_MACRO_ARG' tokens, with the appropriate macro +argument. If the standard requires that the parameter be replaced with +its expanded argument, the argument will have been fully macro expanded +first. + + `enter_macro_context' also handles special macros like `__LINE__'. +Although these macros expand to a single token which cannot contain any +further macros, for reasons of token spacing (*note Token Spacing::) +and simplicity of implementation, cpplib handles these special macros +by pushing a context containing just that one token. + + The final thing that `enter_macro_context' does before returning is +to mark the macro disabled for expansion (except for special macros +like `__TIME__'). The macro is re-enabled when its context is later +popped from the context stack, as described above. This strict +ordering ensures that a macro is disabled whilst its expansion is being +scanned, but that it is _not_ disabled whilst any arguments to it are +being expanded. + +Scanning the replacement list for macros to expand +================================================== + +The C standard states that, after any parameters have been replaced +with their possibly-expanded arguments, the replacement list is scanned +for nested macros. Further, any identifiers in the replacement list +that are not expanded during this scan are never again eligible for +expansion in the future, if the reason they were not expanded is that +the macro in question was disabled. + + Clearly this latter condition can only apply to tokens resulting from +argument pre-expansion. Other tokens never have an opportunity to be +re-tested for expansion. It is possible for identifiers that are +function-like macros to not expand initially but to expand during a +later scan. This occurs when the identifier is the last token of an +argument (and therefore originally followed by a comma or a closing +parenthesis in its macro's argument list), and when it replaces its +parameter in the macro's replacement list, the subsequent token happens +to be an opening parenthesis (itself possibly the first token of an +argument). + + It is important to note that when cpplib reads the last token of a +given context, that context still remains on the stack. Only when +looking for the _next_ token do we pop it off the stack and drop to a +lower context. This makes backing up by one token easy, but more +importantly ensures that the macro corresponding to the current context +is still disabled when we are considering the last token of its +replacement list for expansion (or indeed expanding it). As an +example, which illustrates many of the points above, consider + + #define foo(x) bar x + foo(foo) (2) + +which fully expands to `bar foo (2)'. During pre-expansion of the +argument, `foo' does not expand even though the macro is enabled, since +it has no following parenthesis [pre-expansion of an argument only uses +tokens from that argument; it cannot take tokens from whatever follows +the macro invocation]. This still leaves the argument token `foo' +eligible for future expansion. Then, when re-scanning after argument +replacement, the token `foo' is rejected for expansion, and marked +ineligible for future expansion, since the macro is now disabled. It +is disabled because the replacement list `bar foo' of the macro is +still on the context stack. + + If instead the algorithm looked for an opening parenthesis first and +then tested whether the macro were disabled it would be subtly wrong. +In the example above, the replacement list of `foo' would be popped in +the process of finding the parenthesis, re-enabling `foo' and expanding +it a second time. + +Looking for a function-like macro's opening parenthesis +======================================================= + +Function-like macros only expand when immediately followed by a +parenthesis. To do this cpplib needs to temporarily disable macros and +read the next token. Unfortunately, because of spacing issues (*note +Token Spacing::), there can be fake padding tokens in-between, and if +the next real token is not a parenthesis cpplib needs to be able to +back up that one token as well as retain the information in any +intervening padding tokens. + + Backing up more than one token when macros are involved is not +permitted by cpplib, because in general it might involve issues like +restoring popped contexts onto the context stack, which are too hard. +Instead, searching for the parenthesis is handled by a special +function, `funlike_invocation_p', which remembers padding information +as it reads tokens. If the next real token is not an opening +parenthesis, it backs up that one token, and then pushes an extra +context just containing the padding information if necessary. + +Marking tokens ineligible for future expansion +============================================== + +As discussed above, cpplib needs a way of marking tokens as +unexpandable. Since the tokens cpplib handles are read-only once they +have been lexed, it instead makes a copy of the token and adds the flag +`NO_EXPAND' to the copy. + + For efficiency and to simplify memory management by avoiding having +to remember to free these tokens, they are allocated as temporary tokens +from the lexer's current token run (*note Lexing a line::) using the +function `_cpp_temp_token'. The tokens are then re-used once the +current line of tokens has been read in. + + This might sound unsafe. However, tokens runs are not re-used at the +end of a line if it happens to be in the middle of a macro argument +list, and cpplib only wants to back-up more than one lexer token in +situations where no macro expansion is involved, so the optimization is +safe. + + +File: cppinternals.info, Node: Token Spacing, Next: Line Numbering, Prev: Macro Expansion, Up: Top + +Token Spacing +************* + +First, consider an issue that only concerns the stand-alone +preprocessor: there needs to be a guarantee that re-reading its +preprocessed output results in an identical token stream. Without +taking special measures, this might not be the case because of macro +substitution. For example: + + #define PLUS + + #define EMPTY + #define f(x) =x= + +PLUS -EMPTY- PLUS+ f(=) + ==> + + - - + + = = = + _not_ + ==> ++ -- ++ === + + One solution would be to simply insert a space between all adjacent +tokens. However, we would like to keep space insertion to a minimum, +both for aesthetic reasons and because it causes problems for people who +still try to abuse the preprocessor for things like Fortran source and +Makefiles. + + For now, just notice that when tokens are added (or removed, as +shown by the `EMPTY' example) from the original lexed token stream, we +need to check for accidental token pasting. We call this "paste +avoidance". Token addition and removal can only occur because of macro +expansion, but accidental pasting can occur in many places: both before +and after each macro replacement, each argument replacement, and +additionally each token created by the `#' and `##' operators. + + Look at how the preprocessor gets whitespace output correct +normally. The `cpp_token' structure contains a flags byte, and one of +those flags is `PREV_WHITE'. This is flagged by the lexer, and +indicates that the token was preceded by whitespace of some form other +than a new line. The stand-alone preprocessor can use this flag to +decide whether to insert a space between tokens in the output. + + Now consider the result of the following macro expansion: + + #define add(x, y, z) x + y +z; + sum = add (1,2, 3); + ==> sum = 1 + 2 +3; + + The interesting thing here is that the tokens `1' and `2' are output +with a preceding space, and `3' is output without a preceding space, +but when lexed none of these tokens had that property. Careful +consideration reveals that `1' gets its preceding whitespace from the +space preceding `add' in the macro invocation, _not_ replacement list. +`2' gets its whitespace from the space preceding the parameter `y' in +the macro replacement list, and `3' has no preceding space because +parameter `z' has none in the replacement list. + + Once lexed, tokens are effectively fixed and cannot be altered, since +pointers to them might be held in many places, in particular by +in-progress macro expansions. So instead of modifying the two tokens +above, the preprocessor inserts a special token, which I call a +"padding token", into the token stream to indicate that spacing of the +subsequent token is special. The preprocessor inserts padding tokens +in front of every macro expansion and expanded macro argument. These +point to a "source token" from which the subsequent real token should +inherit its spacing. In the above example, the source tokens are `add' +in the macro invocation, and `y' and `z' in the macro replacement list, +respectively. + + It is quite easy to get multiple padding tokens in a row, for +example if a macro's first replacement token expands straight into +another macro. + + #define foo bar + #define bar baz + [foo] + ==> [baz] + + Here, two padding tokens are generated with sources the `foo' token +between the brackets, and the `bar' token from foo's replacement list, +respectively. Clearly the first padding token is the one to use, so +the output code should contain a rule that the first padding token in a +sequence is the one that matters. + + But what if a macro expansion is left? Adjusting the above example +slightly: + + #define foo bar + #define bar EMPTY baz + #define EMPTY + [foo] EMPTY; + ==> [ baz] ; + + As shown, now there should be a space before `baz' and the semicolon +in the output. + + The rules we decided above fail for `baz': we generate three padding +tokens, one per macro invocation, before the token `baz'. We would +then have it take its spacing from the first of these, which carries +source token `foo' with no leading space. + + It is vital that cpplib get spacing correct in these examples since +any of these macro expansions could be stringified, where spacing +matters. + + So, this demonstrates that not just entering macro and argument +expansions, but leaving them requires special handling too. I made +cpplib insert a padding token with a `NULL' source token when leaving +macro expansions, as well as after each replaced argument in a macro's +replacement list. It also inserts appropriate padding tokens on either +side of tokens created by the `#' and `##' operators. I expanded the +rule so that, if we see a padding token with a `NULL' source token, +_and_ that source token has no leading space, then we behave as if we +have seen no padding tokens at all. A quick check shows this rule will +then get the above example correct as well. + + Now a relationship with paste avoidance is apparent: we have to be +careful about paste avoidance in exactly the same locations we have +padding tokens in order to get white space correct. This makes +implementation of paste avoidance easy: wherever the stand-alone +preprocessor is fixing up spacing because of padding tokens, and it +turns out that no space is needed, it has to take the extra step to +check that a space is not needed after all to avoid an accidental paste. +The function `cpp_avoid_paste' advises whether a space is required +between two consecutive tokens. To avoid excessive spacing, it tries +hard to only require a space if one is likely to be necessary, but for +reasons of efficiency it is slightly conservative and might recommend a +space where one is not strictly needed. + + +File: cppinternals.info, Node: Line Numbering, Next: Guard Macros, Prev: Token Spacing, Up: Top + +Line numbering +************** + +Just which line number anyway? +============================== + +There are three reasonable requirements a cpplib client might have for +the line number of a token passed to it: + + * The source line it was lexed on. + + * The line it is output on. This can be different to the line it was + lexed on if, for example, there are intervening escaped newlines or + C-style comments. For example: + + foo /* A long + comment */ bar \ + baz + => + foo bar baz + + * If the token results from a macro expansion, the line of the macro + name, or possibly the line of the closing parenthesis in the case + of function-like macro expansion. + + The `cpp_token' structure contains `line' and `col' members. The +lexer fills these in with the line and column of the first character of +the token. Consequently, but maybe unexpectedly, a token from the +replacement list of a macro expansion carries the location of the token +within the `#define' directive, because cpplib expands a macro by +returning pointers to the tokens in its replacement list. The current +implementation of cpplib assigns tokens created from built-in macros +and the `#' and `##' operators the location of the most recently lexed +token. This is a because they are allocated from the lexer's token +runs, and because of the way the diagnostic routines infer the +appropriate location to report. + + The diagnostic routines in cpplib display the location of the most +recently _lexed_ token, unless they are passed a specific line and +column to report. For diagnostics regarding tokens that arise from +macro expansions, it might also be helpful for the user to see the +original location in the macro definition that the token came from. +Since that is exactly the information each token carries, such an +enhancement could be made relatively easily in future. + + The stand-alone preprocessor faces a similar problem when determining +the correct line to output the token on: the position attached to a +token is fairly useless if the token came from a macro expansion. All +tokens on a logical line should be output on its first physical line, so +the token's reported location is also wrong if it is part of a physical +line other than the first. + + To solve these issues, cpplib provides a callback that is generated +whenever it lexes a preprocessing token that starts a new logical line +other than a directive. It passes this token (which may be a `CPP_EOF' +token indicating the end of the translation unit) to the callback +routine, which can then use the line and column of this token to +produce correct output. + +Representation of line numbers +============================== + +As mentioned above, cpplib stores with each token the line number that +it was lexed on. In fact, this number is not the number of the line in +the source file, but instead bears more resemblance to the number of the +line in the translation unit. + + The preprocessor maintains a monotonic increasing line count, which +is incremented at every new line character (and also at the end of any +buffer that does not end in a new line). Since a line number of zero is +useful to indicate certain special states and conditions, this variable +starts counting from one. + + This variable therefore uniquely enumerates each line in the +translation unit. With some simple infrastructure, it is straight +forward to map from this to the original source file and line number +pair, saving space whenever line number information needs to be saved. +The code the implements this mapping lies in the files `line-map.c' and +`line-map.h'. + + Command-line macros and assertions are implemented by pushing a +buffer containing the right hand side of an equivalent `#define' or +`#assert' directive. Some built-in macros are handled similarly. +Since these are all processed before the first line of the main input +file, it will typically have an assigned line closer to twenty than to +one. + + +File: cppinternals.info, Node: Guard Macros, Next: Files, Prev: Line Numbering, Up: Top + +The Multiple-Include Optimization +********************************* + +Header files are often of the form + + #ifndef FOO + #define FOO + ... + #endif + +to prevent the compiler from processing them more than once. The +preprocessor notices such header files, so that if the header file +appears in a subsequent `#include' directive and `FOO' is defined, then +it is ignored and it doesn't preprocess or even re-open the file a +second time. This is referred to as the "multiple include +optimization". + + Under what circumstances is such an optimization valid? If the file +were included a second time, it can only be optimized away if that +inclusion would result in no tokens to return, and no relevant +directives to process. Therefore the current implementation imposes +requirements and makes some allowances as follows: + + 1. There must be no tokens outside the controlling `#if'-`#endif' + pair, but whitespace and comments are permitted. + + 2. There must be no directives outside the controlling directive + pair, but the "null directive" (a line containing nothing other + than a single `#' and possibly whitespace) is permitted. + + 3. The opening directive must be of the form + + #ifndef FOO + + or + + #if !defined FOO [equivalently, #if !defined(FOO)] + + 4. In the second form above, the tokens forming the `#if' expression + must have come directly from the source file--no macro expansion + must have been involved. This is because macro definitions can + change, and tracking whether or not a relevant change has been + made is not worth the implementation cost. + + 5. There can be no `#else' or `#elif' directives at the outer + conditional block level, because they would probably contain + something of interest to a subsequent pass. + + First, when pushing a new file on the buffer stack, +`_stack_include_file' sets the controlling macro `mi_cmacro' to `NULL', +and sets `mi_valid' to `true'. This indicates that the preprocessor +has not yet encountered anything that would invalidate the +multiple-include optimization. As described in the next few +paragraphs, these two variables having these values effectively +indicates top-of-file. + + When about to return a token that is not part of a directive, +`_cpp_lex_token' sets `mi_valid' to `false'. This enforces the +constraint that tokens outside the controlling conditional block +invalidate the optimization. + + The `do_if', when appropriate, and `do_ifndef' directive handlers +pass the controlling macro to the function `push_conditional'. cpplib +maintains a stack of nested conditional blocks, and after processing +every opening conditional this function pushes an `if_stack' structure +onto the stack. In this structure it records the controlling macro for +the block, provided there is one and we're at top-of-file (as described +above). If an `#elif' or `#else' directive is encountered, the +controlling macro for that block is cleared to `NULL'. Otherwise, it +survives until the `#endif' closing the block, upon which `do_endif' +sets `mi_valid' to true and stores the controlling macro in `mi_cmacro'. + + `_cpp_handle_directive' clears `mi_valid' when processing any +directive other than an opening conditional and the null directive. +With this, and requiring top-of-file to record a controlling macro, and +no `#else' or `#elif' for it to survive and be copied to `mi_cmacro' by +`do_endif', we have enforced the absence of directives outside the main +conditional block for the optimization to be on. + + Note that whilst we are inside the conditional block, `mi_valid' is +likely to be reset to `false', but this does not matter since the +closing `#endif' restores it to `true' if appropriate. + + Finally, since `_cpp_lex_direct' pops the file off the buffer stack +at `EOF' without returning a token, if the `#endif' directive was not +followed by any tokens, `mi_valid' is `true' and `_cpp_pop_file_buffer' +remembers the controlling macro associated with the file. Subsequent +calls to `stack_include_file' result in no buffer being pushed if the +controlling macro is defined, effecting the optimization. + + A quick word on how we handle the + + #if !defined FOO + +case. `_cpp_parse_expr' and `parse_defined' take steps to see whether +the three stages `!', `defined-expression' and `end-of-directive' occur +in order in a `#if' expression. If so, they return the guard macro to +`do_if' in the variable `mi_ind_cmacro', and otherwise set it to `NULL'. +`enter_macro_context' sets `mi_valid' to false, so if a macro was +expanded whilst parsing any part of the expression, then the +top-of-file test in `push_conditional' fails and the optimization is +turned off. + + +File: cppinternals.info, Node: Files, Next: Concept Index, Prev: Guard Macros, Up: Top + +File Handling +************* + +Fairly obviously, the file handling code of cpplib resides in the file +`files.c'. It takes care of the details of file searching, opening, +reading and caching, for both the main source file and all the headers +it recursively includes. + + The basic strategy is to minimize the number of system calls. On +many systems, the basic `open ()' and `fstat ()' system calls can be +quite expensive. For every `#include'-d file, we need to try all the +directories in the search path until we find a match. Some projects, +such as glibc, pass twenty or thirty include paths on the command line, +so this can rapidly become time consuming. + + For a header file we have not encountered before we have little +choice but to do this. However, it is often the case that the same +headers are repeatedly included, and in these cases we try to avoid +repeating the filesystem queries whilst searching for the correct file. + + For each file we try to open, we store the constructed path in a +splay tree. This path first undergoes simplification by the function +`_cpp_simplify_pathname'. For example, `/usr/include/bits/../foo.h' is +simplified to `/usr/include/foo.h' before we enter it in the splay tree +and try to `open ()' the file. CPP will then find subsequent uses of +`foo.h', even as `/usr/include/foo.h', in the splay tree and save +system calls. + + Further, it is likely the file contents have also been cached, +saving a `read ()' system call. We don't bother caching the contents of +header files that are re-inclusion protected, and whose re-inclusion +macro is defined when we leave the header file for the first time. If +the host supports it, we try to map suitably large files into memory, +rather than reading them in directly. + + The include paths are internally stored on a null-terminated +singly-linked list, starting with the `"header.h"' directory search +chain, which then links into the `' directory chain. + + Files included with the `' syntax start the lookup directly +in the second half of this chain. However, files included with the +`"foo.h"' syntax start at the beginning of the chain, but with one +extra directory prepended. This is the directory of the current file; +the one containing the `#include' directive. Prepending this directory +on a per-file basis is handled by the function `search_from'. + + Note that a header included with a directory component, such as +`#include "mydir/foo.h"' and opened as +`/usr/local/include/mydir/foo.h', will have the complete path minus the +basename `foo.h' as the current directory. + + Enough information is stored in the splay tree that CPP can +immediately tell whether it can skip the header file because of the +multiple include optimization, whether the file didn't exist or +couldn't be opened for some reason, or whether the header was flagged +not to be re-used, as it is with the obsolete `#import' directive. + + For the benefit of MS-DOS filesystems with an 8.3 filename +limitation, CPP offers the ability to treat various include file names +as aliases for the real header files with shorter names. The map from +one to the other is found in a special file called `header.gcc', stored +in the command line (or system) include directories to which the mapping +applies. This may be higher up the directory tree than the full path to +the file minus the base name. + + +File: cppinternals.info, Node: Concept Index, Prev: Files, Up: Top + +Concept Index +************* + +[index] +* Menu: + +* assertions: Hash Nodes. (line 6) +* controlling macros: Guard Macros. (line 6) +* escaped newlines: Lexer. (line 6) +* files: Files. (line 6) +* guard macros: Guard Macros. (line 6) +* hash table: Hash Nodes. (line 6) +* header files: Conventions. (line 6) +* identifiers: Hash Nodes. (line 6) +* interface: Conventions. (line 6) +* lexer: Lexer. (line 6) +* line numbers: Line Numbering. (line 6) +* macro expansion: Macro Expansion. (line 6) +* macro representation (internal): Macro Expansion. (line 19) +* macros: Hash Nodes. (line 6) +* multiple-include optimization: Guard Macros. (line 6) +* named operators: Hash Nodes. (line 6) +* newlines: Lexer. (line 6) +* paste avoidance: Token Spacing. (line 6) +* spacing: Token Spacing. (line 6) +* token run: Lexer. (line 192) +* token spacing: Token Spacing. (line 6) + + + +Tag Table: +Node: Top963 +Node: Conventions2648 +Node: Lexer3590 +Ref: Invalid identifiers11503 +Ref: Lexing a line13452 +Node: Hash Nodes18225 +Node: Macro Expansion21104 +Node: Token Spacing30051 +Node: Line Numbering35911 +Node: Guard Macros39996 +Node: Files44787 +Node: Concept Index48253 + +End Tag Table diff --git a/mingw/info/gcc.info b/mingw/info/gcc.info new file mode 100644 index 00000000..53378008 --- /dev/null +++ b/mingw/info/gcc.info @@ -0,0 +1,44016 @@ +This is doc/gcc.info, produced by makeinfo version 4.8 from +../../gcc-4.4.0/gcc/doc/gcc.texi. + + Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free +Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with the +Invariant Sections being "Funding Free Software", the Front-Cover Texts +being (a) (see below), and with the Back-Cover Texts being (b) (see +below). A copy of the license is included in the section entitled "GNU +Free Documentation License". + + (a) The FSF's Front-Cover Text is: + + A GNU Manual + + (b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU +software. Copies published by the Free Software Foundation raise +funds for GNU development. + +INFO-DIR-SECTION Software development +START-INFO-DIR-ENTRY +* gcc: (gcc). The GNU Compiler Collection. +* g++: (gcc). The GNU C++ compiler. +END-INFO-DIR-ENTRY + This file documents the use of the GNU compilers. + + Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free +Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with the +Invariant Sections being "Funding Free Software", the Front-Cover Texts +being (a) (see below), and with the Back-Cover Texts being (b) (see +below). A copy of the license is included in the section entitled "GNU +Free Documentation License". + + (a) The FSF's Front-Cover Text is: + + A GNU Manual + + (b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU +software. Copies published by the Free Software Foundation raise +funds for GNU development. + + + +File: gcc.info, Node: Top, Next: G++ and GCC, Up: (DIR) + +Introduction +************ + +This manual documents how to use the GNU compilers, as well as their +features and incompatibilities, and how to report bugs. It corresponds +to the compilers (TDM-1 mingw32) version 4.4.0. The internals of the +GNU compilers, including how to port them to new targets and some +information about how to write front ends for new languages, are +documented in a separate manual. *Note Introduction: (gccint)Top. + +* Menu: + +* G++ and GCC:: You can compile C or C++ programs. +* Standards:: Language standards supported by GCC. +* Invoking GCC:: Command options supported by `gcc'. +* C Implementation:: How GCC implements the ISO C specification. +* C Extensions:: GNU extensions to the C language family. +* C++ Extensions:: GNU extensions to the C++ language. +* Objective-C:: GNU Objective-C runtime features. +* Compatibility:: Binary Compatibility +* Gcov:: `gcov'---a test coverage program. +* Trouble:: If you have trouble using GCC. +* Bugs:: How, why and where to report bugs. +* Service:: How to find suppliers of support for GCC. +* Contributing:: How to contribute to testing and developing GCC. + +* Funding:: How to help assure funding for free software. +* GNU Project:: The GNU Project and GNU/Linux. + +* Copying:: GNU General Public License says + how you can copy and share GCC. +* GNU Free Documentation License:: How you can copy and share this manual. +* Contributors:: People who have contributed to GCC. + +* Option Index:: Index to command line options. +* Keyword Index:: Index of concepts and symbol names. + + +File: gcc.info, Node: G++ and GCC, Next: Standards, Prev: Top, Up: Top + +1 Programming Languages Supported by GCC +**************************************** + +GCC stands for "GNU Compiler Collection". GCC is an integrated +distribution of compilers for several major programming languages. +These languages currently include C, C++, Objective-C, Objective-C++, +Java, Fortran, and Ada. + + The abbreviation "GCC" has multiple meanings in common use. The +current official meaning is "GNU Compiler Collection", which refers +generically to the complete suite of tools. The name historically stood +for "GNU C Compiler", and this usage is still common when the emphasis +is on compiling C programs. Finally, the name is also used when +speaking of the "language-independent" component of GCC: code shared +among the compilers for all supported languages. + + The language-independent component of GCC includes the majority of the +optimizers, as well as the "back ends" that generate machine code for +various processors. + + The part of a compiler that is specific to a particular language is +called the "front end". In addition to the front ends that are +integrated components of GCC, there are several other front ends that +are maintained separately. These support languages such as Pascal, +Mercury, and COBOL. To use these, they must be built together with GCC +proper. + + Most of the compilers for languages other than C have their own names. +The C++ compiler is G++, the Ada compiler is GNAT, and so on. When we +talk about compiling one of those languages, we might refer to that +compiler by its own name, or as GCC. Either is correct. + + Historically, compilers for many languages, including C++ and Fortran, +have been implemented as "preprocessors" which emit another high level +language such as C. None of the compilers included in GCC are +implemented this way; they all generate machine code directly. This +sort of preprocessor should not be confused with the "C preprocessor", +which is an integral feature of the C, C++, Objective-C and +Objective-C++ languages. + + +File: gcc.info, Node: Standards, Next: Invoking GCC, Prev: G++ and GCC, Up: Top + +2 Language Standards Supported by GCC +************************************* + +For each language compiled by GCC for which there is a standard, GCC +attempts to follow one or more versions of that standard, possibly with +some exceptions, and possibly with some extensions. + +2.1 C language +============== + +GCC supports three versions of the C standard, although support for the +most recent version is not yet complete. + + The original ANSI C standard (X3.159-1989) was ratified in 1989 and +published in 1990. This standard was ratified as an ISO standard +(ISO/IEC 9899:1990) later in 1990. There were no technical differences +between these publications, although the sections of the ANSI standard +were renumbered and became clauses in the ISO standard. This standard, +in both its forms, is commonly known as "C89", or occasionally as +"C90", from the dates of ratification. The ANSI standard, but not the +ISO standard, also came with a Rationale document. To select this +standard in GCC, use one of the options `-ansi', `-std=c89' or +`-std=iso9899:1990'; to obtain all the diagnostics required by the +standard, you should also specify `-pedantic' (or `-pedantic-errors' if +you want them to be errors rather than warnings). *Note Options +Controlling C Dialect: C Dialect Options. + + Errors in the 1990 ISO C standard were corrected in two Technical +Corrigenda published in 1994 and 1996. GCC does not support the +uncorrected version. + + An amendment to the 1990 standard was published in 1995. This +amendment added digraphs and `__STDC_VERSION__' to the language, but +otherwise concerned the library. This amendment is commonly known as +"AMD1"; the amended standard is sometimes known as "C94" or "C95". To +select this standard in GCC, use the option `-std=iso9899:199409' +(with, as for other standard versions, `-pedantic' to receive all +required diagnostics). + + A new edition of the ISO C standard was published in 1999 as ISO/IEC +9899:1999, and is commonly known as "C99". GCC has incomplete support +for this standard version; see +`http://gcc.gnu.org/gcc-4.4/c99status.html' for details. To select this +standard, use `-std=c99' or `-std=iso9899:1999'. (While in +development, drafts of this standard version were referred to as "C9X".) + + Errors in the 1999 ISO C standard were corrected in three Technical +Corrigenda published in 2001, 2004 and 2007. GCC does not support the +uncorrected version. + + By default, GCC provides some extensions to the C language that on +rare occasions conflict with the C standard. *Note Extensions to the C +Language Family: C Extensions. Use of the `-std' options listed above +will disable these extensions where they conflict with the C standard +version selected. You may also select an extended version of the C +language explicitly with `-std=gnu89' (for C89 with GNU extensions) or +`-std=gnu99' (for C99 with GNU extensions). The default, if no C +language dialect options are given, is `-std=gnu89'; this will change to +`-std=gnu99' in some future release when the C99 support is complete. +Some features that are part of the C99 standard are accepted as +extensions in C89 mode. + + The ISO C standard defines (in clause 4) two classes of conforming +implementation. A "conforming hosted implementation" supports the +whole standard including all the library facilities; a "conforming +freestanding implementation" is only required to provide certain +library facilities: those in `', `', `', +and `'; since AMD1, also those in `'; and in C99, +also those in `' and `'. In addition, complex +types, added in C99, are not required for freestanding implementations. +The standard also defines two environments for programs, a +"freestanding environment", required of all implementations and which +may not have library facilities beyond those required of freestanding +implementations, where the handling of program startup and termination +are implementation-defined, and a "hosted environment", which is not +required, in which all the library facilities are provided and startup +is through a function `int main (void)' or `int main (int, char *[])'. +An OS kernel would be a freestanding environment; a program using the +facilities of an operating system would normally be in a hosted +implementation. + + GCC aims towards being usable as a conforming freestanding +implementation, or as the compiler for a conforming hosted +implementation. By default, it will act as the compiler for a hosted +implementation, defining `__STDC_HOSTED__' as `1' and presuming that +when the names of ISO C functions are used, they have the semantics +defined in the standard. To make it act as a conforming freestanding +implementation for a freestanding environment, use the option +`-ffreestanding'; it will then define `__STDC_HOSTED__' to `0' and not +make assumptions about the meanings of function names from the standard +library, with exceptions noted below. To build an OS kernel, you may +well still need to make your own arrangements for linking and startup. +*Note Options Controlling C Dialect: C Dialect Options. + + GCC does not provide the library facilities required only of hosted +implementations, nor yet all the facilities required by C99 of +freestanding implementations; to use the facilities of a hosted +environment, you will need to find them elsewhere (for example, in the +GNU C library). *Note Standard Libraries: Standard Libraries. + + Most of the compiler support routines used by GCC are present in +`libgcc', but there are a few exceptions. GCC requires the +freestanding environment provide `memcpy', `memmove', `memset' and +`memcmp'. Finally, if `__builtin_trap' is used, and the target does +not implement the `trap' pattern, then GCC will emit a call to `abort'. + + For references to Technical Corrigenda, Rationale documents and +information concerning the history of C that is available online, see +`http://gcc.gnu.org/readings.html' + +2.2 C++ language +================ + +GCC supports the ISO C++ standard (1998) and contains experimental +support for the upcoming ISO C++ standard (200x). + + The original ISO C++ standard was published as the ISO standard +(ISO/IEC 14882:1998) and amended by a Technical Corrigenda published in +2003 (ISO/IEC 14882:2003). These standards are referred to as C++98 and +C++03, respectively. GCC implements the majority of C++98 (`export' is +a notable exception) and most of the changes in C++03. To select this +standard in GCC, use one of the options `-ansi' or `-std=c++98'; to +obtain all the diagnostics required by the standard, you should also +specify `-pedantic' (or `-pedantic-errors' if you want them to be +errors rather than warnings). + + The ISO C++ committee is working on a new ISO C++ standard, dubbed +C++0x, that is intended to be published by 2009. C++0x contains several +changes to the C++ language, some of which have been implemented in an +experimental C++0x mode in GCC. The C++0x mode in GCC tracks the draft +working paper for the C++0x standard; the latest working paper is +available on the ISO C++ committee's web site at +`http://www.open-std.org/jtc1/sc22/wg21/'. For information regarding +the C++0x features available in the experimental C++0x mode, see +`http://gcc.gnu.org/gcc-4.3/cxx0x_status.html'. To select this standard +in GCC, use the option `-std=c++0x'; to obtain all the diagnostics +required by the standard, you should also specify `-pedantic' (or +`-pedantic-errors' if you want them to be errors rather than warnings). + + By default, GCC provides some extensions to the C++ language; *Note +Options Controlling C++ Dialect: C++ Dialect Options. Use of the +`-std' option listed above will disable these extensions. You may also +select an extended version of the C++ language explicitly with +`-std=gnu++98' (for C++98 with GNU extensions) or `-std=gnu++0x' (for +C++0x with GNU extensions). The default, if no C++ language dialect +options are given, is `-std=gnu++98'. + +2.3 Objective-C and Objective-C++ languages +=========================================== + +There is no formal written standard for Objective-C or Objective-C++. +The most authoritative manual is "Object-Oriented Programming and the +Objective-C Language", available at a number of web sites: + + * + `http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/' + is a recent (and periodically updated) version; + + * `http://www.toodarkpark.org/computers/objc/' is an older example; + + * `http://www.gnustep.org' and `http://gcc.gnu.org/readings.html' + have additional useful information. + + *Note GNAT Reference Manual: (gnat_rm)Top, for information on standard +conformance and compatibility of the Ada compiler. + + *Note Standards: (gfortran)Standards, for details of standards +supported by GNU Fortran. + + *Note Compatibility with the Java Platform: (gcj)Compatibility, for +details of compatibility between `gcj' and the Java Platform. + + +File: gcc.info, Node: Invoking GCC, Next: C Implementation, Prev: Standards, Up: Top + +3 GCC Command Options +********************* + +When you invoke GCC, it normally does preprocessing, compilation, +assembly and linking. The "overall options" allow you to stop this +process at an intermediate stage. For example, the `-c' option says +not to run the linker. Then the output consists of object files output +by the assembler. + + Other options are passed on to one stage of processing. Some options +control the preprocessor and others the compiler itself. Yet other +options control the assembler and linker; most of these are not +documented here, since you rarely need to use any of them. + + Most of the command line options that you can use with GCC are useful +for C programs; when an option is only useful with another language +(usually C++), the explanation says so explicitly. If the description +for a particular option does not mention a source language, you can use +that option with all supported languages. + + *Note Compiling C++ Programs: Invoking G++, for a summary of special +options for compiling C++ programs. + + The `gcc' program accepts options and file names as operands. Many +options have multi-letter names; therefore multiple single-letter +options may _not_ be grouped: `-dv' is very different from `-d -v'. + + You can mix options and other arguments. For the most part, the order +you use doesn't matter. Order does matter when you use several options +of the same kind; for example, if you specify `-L' more than once, the +directories are searched in the order specified. Also, the placement +of the `-l' option is significant. + + Many options have long names starting with `-f' or with `-W'--for +example, `-fmove-loop-invariants', `-Wformat' and so on. Most of these +have both positive and negative forms; the negative form of `-ffoo' +would be `-fno-foo'. This manual documents only one of these two +forms, whichever one is not the default. + + *Note Option Index::, for an index to GCC's options. + +* Menu: + +* Option Summary:: Brief list of all options, without explanations. +* Overall Options:: Controlling the kind of output: + an executable, object files, assembler files, + or preprocessed source. +* Invoking G++:: Compiling C++ programs. +* C Dialect Options:: Controlling the variant of C language compiled. +* C++ Dialect Options:: Variations on C++. +* Objective-C and Objective-C++ Dialect Options:: Variations on Objective-C + and Objective-C++. +* Language Independent Options:: Controlling how diagnostics should be + formatted. +* Warning Options:: How picky should the compiler be? +* Debugging Options:: Symbol tables, measurements, and debugging dumps. +* Optimize Options:: How much optimization? +* Preprocessor Options:: Controlling header files and macro definitions. + Also, getting dependency information for Make. +* Assembler Options:: Passing options to the assembler. +* Link Options:: Specifying libraries and so on. +* Directory Options:: Where to find header files and libraries. + Where to find the compiler executable files. +* Spec Files:: How to pass switches to sub-processes. +* Target Options:: Running a cross-compiler, or an old version of GCC. +* Submodel Options:: Specifying minor hardware or convention variations, + such as 68010 vs 68020. +* Code Gen Options:: Specifying conventions for function calls, data layout + and register usage. +* Environment Variables:: Env vars that affect GCC. +* Precompiled Headers:: Compiling a header once, and using it many times. +* Running Protoize:: Automatically adding or removing function prototypes. + + +File: gcc.info, Node: Option Summary, Next: Overall Options, Up: Invoking GCC + +3.1 Option Summary +================== + +Here is a summary of all the options, grouped by type. Explanations are +in the following sections. + +_Overall Options_ + *Note Options Controlling the Kind of Output: Overall Options. + -c -S -E -o FILE -combine -pipe -pass-exit-codes + -x LANGUAGE -v -### --help[=CLASS[,...]] --target-help + --version -wrapper@FILE + +_C Language Options_ + *Note Options Controlling C Dialect: C Dialect Options. + -ansi -std=STANDARD -fgnu89-inline + -aux-info FILENAME + -fno-asm -fno-builtin -fno-builtin-FUNCTION + -fhosted -ffreestanding -fopenmp -fms-extensions + -trigraphs -no-integrated-cpp -traditional -traditional-cpp + -fallow-single-precision -fcond-mismatch -flax-vector-conversions + -fsigned-bitfields -fsigned-char + -funsigned-bitfields -funsigned-char + +_C++ Language Options_ + *Note Options Controlling C++ Dialect: C++ Dialect Options. + -fabi-version=N -fno-access-control -fcheck-new + -fconserve-space -ffriend-injection + -fno-elide-constructors + -fno-enforce-eh-specs + -ffor-scope -fno-for-scope -fno-gnu-keywords + -fno-implicit-templates + -fno-implicit-inline-templates + -fno-implement-inlines -fms-extensions + -fno-nonansi-builtins -fno-operator-names + -fno-optional-diags -fpermissive + -frepo -fno-rtti -fstats -ftemplate-depth-N + -fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ + -fno-default-inline -fvisibility-inlines-hidden + -fvisibility-ms-compat + -Wabi -Wctor-dtor-privacy + -Wnon-virtual-dtor -Wreorder + -Weffc++ -Wstrict-null-sentinel + -Wno-non-template-friend -Wold-style-cast + -Woverloaded-virtual -Wno-pmf-conversions + -Wsign-promo + +_Objective-C and Objective-C++ Language Options_ + *Note Options Controlling Objective-C and Objective-C++ Dialects: + Objective-C and Objective-C++ Dialect Options. + -fconstant-string-class=CLASS-NAME + -fgnu-runtime -fnext-runtime + -fno-nil-receivers + -fobjc-call-cxx-cdtors + -fobjc-direct-dispatch + -fobjc-exceptions + -fobjc-gc + -freplace-objc-classes + -fzero-link + -gen-decls + -Wassign-intercept + -Wno-protocol -Wselector + -Wstrict-selector-match + -Wundeclared-selector + +_Language Independent Options_ + *Note Options to Control Diagnostic Messages Formatting: Language + Independent Options. + -fmessage-length=N + -fdiagnostics-show-location=[once|every-line] + -fdiagnostics-show-option + +_Warning Options_ + *Note Options to Request or Suppress Warnings: Warning Options. + -fsyntax-only -pedantic -pedantic-errors + -w -Wextra -Wall -Waddress -Waggregate-return -Warray-bounds + -Wno-attributes -Wno-builtin-macro-redefined + -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual + -Wchar-subscripts -Wclobbered -Wcomment + -Wconversion -Wcoverage-mismatch -Wno-deprecated + -Wno-deprecated-declarations -Wdisabled-optimization + -Wno-div-by-zero -Wempty-body -Wenum-compare -Wno-endif-labels + -Werror -Werror=* + -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 + -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral + -Wformat-security -Wformat-y2k + -Wframe-larger-than=LEN -Wignored-qualifiers + -Wimplicit -Wimplicit-function-declaration -Wimplicit-int + -Winit-self -Winline + -Wno-int-to-pointer-cast -Wno-invalid-offsetof + -Winvalid-pch -Wlarger-than=LEN -Wunsafe-loop-optimizations + -Wlogical-op -Wlong-long + -Wmain -Wmissing-braces -Wmissing-field-initializers + -Wmissing-format-attribute -Wmissing-include-dirs + -Wmissing-noreturn -Wno-mudflap + -Wno-multichar -Wnonnull -Wno-overflow + -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded + -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format + -Wpointer-arith -Wno-pointer-to-int-cast + -Wredundant-decls + -Wreturn-type -Wsequence-point -Wshadow + -Wsign-compare -Wsign-conversion -Wstack-protector + -Wstrict-aliasing -Wstrict-aliasing=n + -Wstrict-overflow -Wstrict-overflow=N + -Wswitch -Wswitch-default -Wswitch-enum -Wsync-nand + -Wsystem-headers -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized + -Wunknown-pragmas -Wno-pragmas -Wunreachable-code + -Wunused -Wunused-function -Wunused-label -Wunused-parameter + -Wunused-value -Wunused-variable + -Wvariadic-macros -Wvla + -Wvolatile-register-var -Wwrite-strings + +_C and Objective-C-only Warning Options_ + -Wbad-function-cast -Wmissing-declarations + -Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs + -Wold-style-declaration -Wold-style-definition + -Wstrict-prototypes -Wtraditional -Wtraditional-conversion + -Wdeclaration-after-statement -Wpointer-sign + +_Debugging Options_ + *Note Options for Debugging Your Program or GCC: Debugging Options. + -dLETTERS -dumpspecs -dumpmachine -dumpversion + -fdbg-cnt-list -fdbg-cnt=COUNTER-VALUE-LIST + -fdump-noaddr -fdump-unnumbered + -fdump-translation-unit[-N] + -fdump-class-hierarchy[-N] + -fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline + -fdump-statistics + -fdump-tree-all + -fdump-tree-original[-N] + -fdump-tree-optimized[-N] + -fdump-tree-cfg -fdump-tree-vcg -fdump-tree-alias + -fdump-tree-ch + -fdump-tree-ssa[-N] -fdump-tree-pre[-N] + -fdump-tree-ccp[-N] -fdump-tree-dce[-N] + -fdump-tree-gimple[-raw] -fdump-tree-mudflap[-N] + -fdump-tree-dom[-N] + -fdump-tree-dse[-N] + -fdump-tree-phiopt[-N] + -fdump-tree-forwprop[-N] + -fdump-tree-copyrename[-N] + -fdump-tree-nrv -fdump-tree-vect + -fdump-tree-sink + -fdump-tree-sra[-N] + -fdump-tree-fre[-N] + -fdump-tree-vrp[-N] + -ftree-vectorizer-verbose=N + -fdump-tree-storeccp[-N] + -feliminate-dwarf2-dups -feliminate-unused-debug-types + -feliminate-unused-debug-symbols -femit-class-debug-always + -fmem-report -fpre-ipa-mem-report -fpost-ipa-mem-report -fprofile-arcs + -frandom-seed=STRING -fsched-verbose=N + -fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose + -ftest-coverage -ftime-report -fvar-tracking + -g -gLEVEL -gcoff -gdwarf-2 + -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ + -fno-merge-debug-strings -fno-dwarf2-cfi-asm + -fdebug-prefix-map=OLD=NEW + -femit-struct-debug-baseonly -femit-struct-debug-reduced + -femit-struct-debug-detailed[=SPEC-LIST] + -p -pg -print-file-name=LIBRARY -print-libgcc-file-name + -print-multi-directory -print-multi-lib + -print-prog-name=PROGRAM -print-search-dirs -Q + -print-sysroot -print-sysroot-headers-suffix + -save-temps -time + +_Optimization Options_ + *Note Options that Control Optimization: Optimize Options. + -falign-functions[=N] -falign-jumps[=N] + -falign-labels[=N] -falign-loops[=N] -fassociative-math + -fauto-inc-dec -fbranch-probabilities -fbranch-target-load-optimize + -fbranch-target-load-optimize2 -fbtr-bb-exclusive -fcaller-saves + -fcheck-data-deps -fconserve-stack -fcprop-registers -fcrossjumping + -fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules -fcx-limited-range + -fdata-sections -fdce -fdce + -fdelayed-branch -fdelete-null-pointer-checks -fdse -fdse + -fearly-inlining -fexpensive-optimizations -ffast-math + -ffinite-math-only -ffloat-store -fforward-propagate + -ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm + -fgcse-sm -fif-conversion -fif-conversion2 -findirect-inlining + -finline-functions -finline-functions-called-once -finline-limit=N + -finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg -fipa-pta + -fipa-pure-const -fipa-reference -fipa-struct-reorg + -fipa-type-escape -fira-algorithm=ALGORITHM + -fira-region=REGION -fira-coalesce -fno-ira-share-save-slots + -fno-ira-share-spill-slots -fira-verbose=N + -fivopts -fkeep-inline-functions -fkeep-static-consts + -floop-block -floop-interchange -floop-strip-mine + -fmerge-all-constants -fmerge-constants -fmodulo-sched + -fmodulo-sched-allow-regmoves -fmove-loop-invariants -fmudflap + -fmudflapir -fmudflapth -fno-branch-count-reg -fno-default-inline + -fno-defer-pop -fno-function-cse -fno-guess-branch-probability + -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 + -fno-sched-interblock -fno-sched-spec -fno-signed-zeros + -fno-toplevel-reorder -fno-trapping-math -fno-zero-initialized-in-bss + -fomit-frame-pointer -foptimize-register-move -foptimize-sibling-calls + -fpeel-loops -fpredictive-commoning -fprefetch-loop-arrays + -fprofile-correction -fprofile-dir=PATH -fprofile-generate + -fprofile-generate=PATH + -fprofile-use -fprofile-use=PATH -fprofile-values + -freciprocal-math -fregmove -frename-registers -freorder-blocks + -freorder-blocks-and-partition -freorder-functions + -frerun-cse-after-loop -freschedule-modulo-scheduled-loops + -frounding-math -frtl-abstract-sequences -fsched2-use-superblocks + -fsched2-use-traces -fsched-spec-load -fsched-spec-load-dangerous + -fsched-stalled-insns-dep[=N] -fsched-stalled-insns[=N] + -fschedule-insns -fschedule-insns2 -fsection-anchors -fsee + -fselective-scheduling -fselective-scheduling2 + -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops + -fsignaling-nans -fsingle-precision-constant -fsplit-ivs-in-unroller + -fsplit-wide-types -fstack-protector -fstack-protector-all + -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftracer + -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copy-prop + -ftree-copyrename -ftree-dce + -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im + -ftree-loop-distribution + -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize + -ftree-parallelize-loops=N -ftree-pre -ftree-reassoc + -ftree-sink -ftree-sra -ftree-switch-conversion + -ftree-ter -ftree-vect-loop-version -ftree-vectorize -ftree-vrp + -funit-at-a-time -funroll-all-loops -funroll-loops + -funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops + -fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb + -fwhole-program + --param NAME=VALUE + -O -O0 -O1 -O2 -O3 -Os + +_Preprocessor Options_ + *Note Options Controlling the Preprocessor: Preprocessor Options. + -AQUESTION=ANSWER + -A-QUESTION[=ANSWER] + -C -dD -dI -dM -dN + -DMACRO[=DEFN] -E -H + -idirafter DIR + -include FILE -imacros FILE + -iprefix FILE -iwithprefix DIR + -iwithprefixbefore DIR -isystem DIR + -imultilib DIR -isysroot DIR + -M -MM -MF -MG -MP -MQ -MT -nostdinc + -P -fworking-directory -remap + -trigraphs -undef -UMACRO -Wp,OPTION + -Xpreprocessor OPTION + +_Assembler Option_ + *Note Passing Options to the Assembler: Assembler Options. + -Wa,OPTION -Xassembler OPTION + +_Linker Options_ + *Note Options for Linking: Link Options. + OBJECT-FILE-NAME -lLIBRARY + -nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic + -s -static -static-libgcc -shared -shared-libgcc -symbolic + -T SCRIPT -Wl,OPTION -Xlinker OPTION + -u SYMBOL + +_Directory Options_ + *Note Options for Directory Search: Directory Options. + -BPREFIX -IDIR -iquoteDIR -LDIR + -specs=FILE -I- --sysroot=DIR + +_Target Options_ + *Note Target Options::. + -V VERSION -b MACHINE + +_Machine Dependent Options_ + *Note Hardware Models and Configurations: Submodel Options. + + _ARC Options_ + -EB -EL + -mmangle-cpu -mcpu=CPU -mtext=TEXT-SECTION + -mdata=DATA-SECTION -mrodata=READONLY-DATA-SECTION + + _ARM Options_ + -mapcs-frame -mno-apcs-frame + -mabi=NAME + -mapcs-stack-check -mno-apcs-stack-check + -mapcs-float -mno-apcs-float + -mapcs-reentrant -mno-apcs-reentrant + -msched-prolog -mno-sched-prolog + -mlittle-endian -mbig-endian -mwords-little-endian + -mfloat-abi=NAME -msoft-float -mhard-float -mfpe + -mthumb-interwork -mno-thumb-interwork + -mcpu=NAME -march=NAME -mfpu=NAME + -mstructure-size-boundary=N + -mabort-on-noreturn + -mlong-calls -mno-long-calls + -msingle-pic-base -mno-single-pic-base + -mpic-register=REG + -mnop-fun-dllimport + -mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns + -mpoke-function-name + -mthumb -marm + -mtpcs-frame -mtpcs-leaf-frame + -mcaller-super-interworking -mcallee-super-interworking + -mtp=NAME + -mword-relocations + -mfix-cortex-m3-ldrd + + _AVR Options_ + -mmcu=MCU -msize -minit-stack=N -mno-interrupts + -mcall-prologues -mno-tablejump -mtiny-stack -mint8 + + _Blackfin Options_ + -mcpu=CPU[-SIREVISION] + -msim -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer + -mspecld-anomaly -mno-specld-anomaly -mcsync-anomaly -mno-csync-anomaly + -mlow-64k -mno-low64k -mstack-check-l1 -mid-shared-library + -mno-id-shared-library -mshared-library-id=N + -mleaf-id-shared-library -mno-leaf-id-shared-library + -msep-data -mno-sep-data -mlong-calls -mno-long-calls + -mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram + -micplb + + _CRIS Options_ + -mcpu=CPU -march=CPU -mtune=CPU + -mmax-stack-frame=N -melinux-stacksize=N + -metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects + -mstack-align -mdata-align -mconst-align + -m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt + -melf -maout -melinux -mlinux -sim -sim2 + -mmul-bug-workaround -mno-mul-bug-workaround + + _CRX Options_ + -mmac -mpush-args + + _Darwin Options_ + -all_load -allowable_client -arch -arch_errors_fatal + -arch_only -bind_at_load -bundle -bundle_loader + -client_name -compatibility_version -current_version + -dead_strip + -dependency-file -dylib_file -dylinker_install_name + -dynamic -dynamiclib -exported_symbols_list + -filelist -flat_namespace -force_cpusubtype_ALL + -force_flat_namespace -headerpad_max_install_names + -iframework + -image_base -init -install_name -keep_private_externs + -multi_module -multiply_defined -multiply_defined_unused + -noall_load -no_dead_strip_inits_and_terms + -nofixprebinding -nomultidefs -noprebind -noseglinkedit + -pagezero_size -prebind -prebind_all_twolevel_modules + -private_bundle -read_only_relocs -sectalign + -sectobjectsymbols -whyload -seg1addr + -sectcreate -sectobjectsymbols -sectorder + -segaddr -segs_read_only_addr -segs_read_write_addr + -seg_addr_table -seg_addr_table_filename -seglinkedit + -segprot -segs_read_only_addr -segs_read_write_addr + -single_module -static -sub_library -sub_umbrella + -twolevel_namespace -umbrella -undefined + -unexported_symbols_list -weak_reference_mismatches + -whatsloaded -F -gused -gfull -mmacosx-version-min=VERSION + -mkernel -mone-byte-bool + + _DEC Alpha Options_ + -mno-fp-regs -msoft-float -malpha-as -mgas + -mieee -mieee-with-inexact -mieee-conformant + -mfp-trap-mode=MODE -mfp-rounding-mode=MODE + -mtrap-precision=MODE -mbuild-constants + -mcpu=CPU-TYPE -mtune=CPU-TYPE + -mbwx -mmax -mfix -mcix + -mfloat-vax -mfloat-ieee + -mexplicit-relocs -msmall-data -mlarge-data + -msmall-text -mlarge-text + -mmemory-latency=TIME + + _DEC Alpha/VMS Options_ + -mvms-return-codes + + _FR30 Options_ + -msmall-model -mno-lsim + + _FRV Options_ + -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 + -mhard-float -msoft-float + -malloc-cc -mfixed-cc -mdword -mno-dword + -mdouble -mno-double + -mmedia -mno-media -mmuladd -mno-muladd + -mfdpic -minline-plt -mgprel-ro -multilib-library-pic + -mlinked-fp -mlong-calls -malign-labels + -mlibrary-pic -macc-4 -macc-8 + -mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move + -moptimize-membar -mno-optimize-membar + -mscc -mno-scc -mcond-exec -mno-cond-exec + -mvliw-branch -mno-vliw-branch + -mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec + -mno-nested-cond-exec -mtomcat-stats + -mTLS -mtls + -mcpu=CPU + + _GNU/Linux Options_ + -muclibc + + _H8/300 Options_ + -mrelax -mh -ms -mn -mint32 -malign-300 + + _HPPA Options_ + -march=ARCHITECTURE-TYPE + -mbig-switch -mdisable-fpregs -mdisable-indexing + -mfast-indirect-calls -mgas -mgnu-ld -mhp-ld + -mfixed-range=REGISTER-RANGE + -mjump-in-delay -mlinker-opt -mlong-calls + -mlong-load-store -mno-big-switch -mno-disable-fpregs + -mno-disable-indexing -mno-fast-indirect-calls -mno-gas + -mno-jump-in-delay -mno-long-load-store + -mno-portable-runtime -mno-soft-float + -mno-space-regs -msoft-float -mpa-risc-1-0 + -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime + -mschedule=CPU-TYPE -mspace-regs -msio -mwsio + -munix=UNIX-STD -nolibdld -static -threads + + _i386 and x86-64 Options_ + -mtune=CPU-TYPE -march=CPU-TYPE + -mfpmath=UNIT + -masm=DIALECT -mno-fancy-math-387 + -mno-fp-ret-in-387 -msoft-float + -mno-wide-multiply -mrtd -malign-double + -mpreferred-stack-boundary=NUM + -mincoming-stack-boundary=NUM + -mcld -mcx16 -msahf -mrecip + -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx + -maes -mpclmul + -msse4a -m3dnow -mpopcnt -mabm -msse5 + -mthreads -mno-align-stringops -minline-all-stringops + -minline-stringops-dynamically -mstringop-strategy=ALG + -mpush-args -maccumulate-outgoing-args -m128bit-long-double + -m96bit-long-double -mregparm=NUM -msseregparm + -mveclibabi=TYPE -mpc32 -mpc64 -mpc80 -mstackrealign + -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs + -mcmodel=CODE-MODEL + -m32 -m64 -mlarge-data-threshold=NUM + -mfused-madd -mno-fused-madd -msse2avx + + _IA-64 Options_ + -mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic + -mvolatile-asm-stop -mregister-names -mno-sdata + -mconstant-gp -mauto-pic -minline-float-divide-min-latency + -minline-float-divide-max-throughput + -minline-int-divide-min-latency + -minline-int-divide-max-throughput + -minline-sqrt-min-latency -minline-sqrt-max-throughput + -mno-dwarf2-asm -mearly-stop-bits + -mfixed-range=REGISTER-RANGE -mtls-size=TLS-SIZE + -mtune=CPU-TYPE -mt -pthread -milp32 -mlp64 + -mno-sched-br-data-spec -msched-ar-data-spec -mno-sched-control-spec + -msched-br-in-data-spec -msched-ar-in-data-spec -msched-in-control-spec + -msched-ldc -mno-sched-control-ldc -mno-sched-spec-verbose + -mno-sched-prefer-non-data-spec-insns + -mno-sched-prefer-non-control-spec-insns + -mno-sched-count-spec-in-critical-path + + _M32R/D Options_ + -m32r2 -m32rx -m32r + -mdebug + -malign-loops -mno-align-loops + -missue-rate=NUMBER + -mbranch-cost=NUMBER + -mmodel=CODE-SIZE-MODEL-TYPE + -msdata=SDATA-TYPE + -mno-flush-func -mflush-func=NAME + -mno-flush-trap -mflush-trap=NUMBER + -G NUM + + _M32C Options_ + -mcpu=CPU -msim -memregs=NUMBER + + _M680x0 Options_ + -march=ARCH -mcpu=CPU -mtune=TUNE + -m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 + -m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407 + -mcfv4e -mbitfield -mno-bitfield -mc68000 -mc68020 + -mnobitfield -mrtd -mno-rtd -mdiv -mno-div -mshort + -mno-short -mhard-float -m68881 -msoft-float -mpcrel + -malign-int -mstrict-align -msep-data -mno-sep-data + -mshared-library-id=n -mid-shared-library -mno-id-shared-library + -mxgot -mno-xgot + + _M68hc1x Options_ + -m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 + -mauto-incdec -minmax -mlong-calls -mshort + -msoft-reg-count=COUNT + + _MCore Options_ + -mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates + -mno-relax-immediates -mwide-bitfields -mno-wide-bitfields + -m4byte-functions -mno-4byte-functions -mcallgraph-data + -mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim + -mlittle-endian -mbig-endian -m210 -m340 -mstack-increment + + _MIPS Options_ + -EL -EB -march=ARCH -mtune=ARCH + -mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 + -mips64 -mips64r2 + -mips16 -mno-mips16 -mflip-mips16 + -minterlink-mips16 -mno-interlink-mips16 + -mabi=ABI -mabicalls -mno-abicalls + -mshared -mno-shared -mplt -mno-plt -mxgot -mno-xgot + -mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float + -msingle-float -mdouble-float -mdsp -mno-dsp -mdspr2 -mno-dspr2 + -mfpu=FPU-TYPE + -msmartmips -mno-smartmips + -mpaired-single -mno-paired-single -mdmx -mno-mdmx + -mips3d -mno-mips3d -mmt -mno-mt -mllsc -mno-llsc + -mlong64 -mlong32 -msym32 -mno-sym32 + -GNUM -mlocal-sdata -mno-local-sdata + -mextern-sdata -mno-extern-sdata -mgpopt -mno-gopt + -membedded-data -mno-embedded-data + -muninit-const-in-rodata -mno-uninit-const-in-rodata + -mcode-readable=SETTING + -msplit-addresses -mno-split-addresses + -mexplicit-relocs -mno-explicit-relocs + -mcheck-zero-division -mno-check-zero-division + -mdivide-traps -mdivide-breaks + -mmemcpy -mno-memcpy -mlong-calls -mno-long-calls + -mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp + -mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 + -mfix-r10000 -mno-fix-r10000 -mfix-vr4120 -mno-fix-vr4120 + -mfix-vr4130 -mno-fix-vr4130 -mfix-sb1 -mno-fix-sb1 + -mflush-func=FUNC -mno-flush-func + -mbranch-cost=NUM -mbranch-likely -mno-branch-likely + -mfp-exceptions -mno-fp-exceptions + -mvr4130-align -mno-vr4130-align + + _MMIX Options_ + -mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu + -mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols + -melf -mbranch-predict -mno-branch-predict -mbase-addresses + -mno-base-addresses -msingle-exit -mno-single-exit + + _MN10300 Options_ + -mmult-bug -mno-mult-bug + -mam33 -mno-am33 + -mam33-2 -mno-am33-2 + -mreturn-pointer-on-d0 + -mno-crt0 -mrelax + + _PDP-11 Options_ + -mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 + -mbcopy -mbcopy-builtin -mint32 -mno-int16 + -mint16 -mno-int32 -mfloat32 -mno-float64 + -mfloat64 -mno-float32 -mabshi -mno-abshi + -mbranch-expensive -mbranch-cheap + -msplit -mno-split -munix-asm -mdec-asm + + _picoChip Options_ + -mae=AE_TYPE -mvliw-lookahead=N + -msymbol-as-address -mno-inefficient-warnings + + _PowerPC Options_ See RS/6000 and PowerPC Options. + + _RS/6000 and PowerPC Options_ + -mcpu=CPU-TYPE + -mtune=CPU-TYPE + -mpower -mno-power -mpower2 -mno-power2 + -mpowerpc -mpowerpc64 -mno-powerpc + -maltivec -mno-altivec + -mpowerpc-gpopt -mno-powerpc-gpopt + -mpowerpc-gfxopt -mno-powerpc-gfxopt + -mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb -mfprnd -mno-fprnd + -mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr -mhard-dfp -mno-hard-dfp + -mnew-mnemonics -mold-mnemonics + -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc + -m64 -m32 -mxl-compat -mno-xl-compat -mpe + -malign-power -malign-natural + -msoft-float -mhard-float -mmultiple -mno-multiple + -msingle-float -mdouble-float -msimple-fpu + -mstring -mno-string -mupdate -mno-update + -mavoid-indexed-addresses -mno-avoid-indexed-addresses + -mfused-madd -mno-fused-madd -mbit-align -mno-bit-align + -mstrict-align -mno-strict-align -mrelocatable + -mno-relocatable -mrelocatable-lib -mno-relocatable-lib + -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian + -mdynamic-no-pic -maltivec -mswdiv + -mprioritize-restricted-insns=PRIORITY + -msched-costly-dep=DEPENDENCE_TYPE + -minsert-sched-nops=SCHEME + -mcall-sysv -mcall-netbsd + -maix-struct-return -msvr4-struct-return + -mabi=ABI-TYPE -msecure-plt -mbss-plt + -misel -mno-isel + -misel=yes -misel=no + -mspe -mno-spe + -mspe=yes -mspe=no + -mpaired + -mgen-cell-microcode -mwarn-cell-microcode + -mvrsave -mno-vrsave + -mmulhw -mno-mulhw + -mdlmzb -mno-dlmzb + -mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double + -mprototype -mno-prototype + -msim -mmvme -mads -myellowknife -memb -msdata + -msdata=OPT -mvxworks -G NUM -pthread + + _S/390 and zSeries Options_ + -mtune=CPU-TYPE -march=CPU-TYPE + -mhard-float -msoft-float -mhard-dfp -mno-hard-dfp + -mlong-double-64 -mlong-double-128 + -mbackchain -mno-backchain -mpacked-stack -mno-packed-stack + -msmall-exec -mno-small-exec -mmvcle -mno-mvcle + -m64 -m31 -mdebug -mno-debug -mesa -mzarch + -mtpf-trace -mno-tpf-trace -mfused-madd -mno-fused-madd + -mwarn-framesize -mwarn-dynamicstack -mstack-size -mstack-guard + + _Score Options_ + -meb -mel + -mnhwloop + -muls + -mmac + -mscore5 -mscore5u -mscore7 -mscore7d + + _SH Options_ + -m1 -m2 -m2e -m3 -m3e + -m4-nofpu -m4-single-only -m4-single -m4 + -m4a-nofpu -m4a-single-only -m4a-single -m4a -m4al + -m5-64media -m5-64media-nofpu + -m5-32media -m5-32media-nofpu + -m5-compact -m5-compact-nofpu + -mb -ml -mdalign -mrelax + -mbigtable -mfmovd -mhitachi -mrenesas -mno-renesas -mnomacsave + -mieee -mbitops -misize -minline-ic_invalidate -mpadstruct -mspace + -mprefergot -musermode -multcost=NUMBER -mdiv=STRATEGY + -mdivsi3_libfunc=NAME -mfixed-range=REGISTER-RANGE + -madjust-unroll -mindexed-addressing -mgettrcost=NUMBER -mpt-fixed + -minvalid-symbols + + _SPARC Options_ + -mcpu=CPU-TYPE + -mtune=CPU-TYPE + -mcmodel=CODE-MODEL + -m32 -m64 -mapp-regs -mno-app-regs + -mfaster-structs -mno-faster-structs + -mfpu -mno-fpu -mhard-float -msoft-float + -mhard-quad-float -msoft-quad-float + -mimpure-text -mno-impure-text -mlittle-endian + -mstack-bias -mno-stack-bias + -munaligned-doubles -mno-unaligned-doubles + -mv8plus -mno-v8plus -mvis -mno-vis + -threads -pthreads -pthread + + _SPU Options_ + -mwarn-reloc -merror-reloc + -msafe-dma -munsafe-dma + -mbranch-hints + -msmall-mem -mlarge-mem -mstdmain + -mfixed-range=REGISTER-RANGE + + _System V Options_ + -Qy -Qn -YP,PATHS -Ym,DIR + + _V850 Options_ + -mlong-calls -mno-long-calls -mep -mno-ep + -mprolog-function -mno-prolog-function -mspace + -mtda=N -msda=N -mzda=N + -mapp-regs -mno-app-regs + -mdisable-callt -mno-disable-callt + -mv850e1 + -mv850e + -mv850 -mbig-switch + + _VAX Options_ + -mg -mgnu -munix + + _VxWorks Options_ + -mrtp -non-static -Bstatic -Bdynamic + -Xbind-lazy -Xbind-now + + _x86-64 Options_ See i386 and x86-64 Options. + + _i386 and x86-64 Windows Options_ + -mconsole -mcygwin -mno-cygwin -mdll + -mnop-fun-dllimport -mthread -mwin32 -mwindows + + _Xstormy16 Options_ + -msim + + _Xtensa Options_ + -mconst16 -mno-const16 + -mfused-madd -mno-fused-madd + -mserialize-volatile -mno-serialize-volatile + -mtext-section-literals -mno-text-section-literals + -mtarget-align -mno-target-align + -mlongcalls -mno-longcalls + + _zSeries Options_ See S/390 and zSeries Options. + +_Code Generation Options_ + *Note Options for Code Generation Conventions: Code Gen Options. + -fcall-saved-REG -fcall-used-REG + -ffixed-REG -fexceptions + -fnon-call-exceptions -funwind-tables + -fasynchronous-unwind-tables + -finhibit-size-directive -finstrument-functions + -finstrument-functions-exclude-function-list=SYM,SYM,... + -finstrument-functions-exclude-file-list=FILE,FILE,... + -fno-common -fno-ident + -fpcc-struct-return -fpic -fPIC -fpie -fPIE + -fno-jump-tables + -frecord-gcc-switches + -freg-struct-return -fshort-enums + -fshort-double -fshort-wchar + -fverbose-asm -fpack-struct[=N] -fstack-check + -fstack-limit-register=REG -fstack-limit-symbol=SYM + -fno-stack-limit -fargument-alias -fargument-noalias + -fargument-noalias-global -fargument-noalias-anything + -fleading-underscore -ftls-model=MODEL + -ftrapv -fwrapv -fbounds-check + -fvisibility + + +* Menu: + +* Overall Options:: Controlling the kind of output: + an executable, object files, assembler files, + or preprocessed source. +* C Dialect Options:: Controlling the variant of C language compiled. +* C++ Dialect Options:: Variations on C++. +* Objective-C and Objective-C++ Dialect Options:: Variations on Objective-C + and Objective-C++. +* Language Independent Options:: Controlling how diagnostics should be + formatted. +* Warning Options:: How picky should the compiler be? +* Debugging Options:: Symbol tables, measurements, and debugging dumps. +* Optimize Options:: How much optimization? +* Preprocessor Options:: Controlling header files and macro definitions. + Also, getting dependency information for Make. +* Assembler Options:: Passing options to the assembler. +* Link Options:: Specifying libraries and so on. +* Directory Options:: Where to find header files and libraries. + Where to find the compiler executable files. +* Spec Files:: How to pass switches to sub-processes. +* Target Options:: Running a cross-compiler, or an old version of GCC. + + +File: gcc.info, Node: Overall Options, Next: Invoking G++, Prev: Option Summary, Up: Invoking GCC + +3.2 Options Controlling the Kind of Output +========================================== + +Compilation can involve up to four stages: preprocessing, compilation +proper, assembly and linking, always in that order. GCC is capable of +preprocessing and compiling several files either into several assembler +input files, or into one assembler input file; then each assembler +input file produces an object file, and linking combines all the object +files (those newly compiled, and those specified as input) into an +executable file. + + For any given input file, the file name suffix determines what kind of +compilation is done: + +`FILE.c' + C source code which must be preprocessed. + +`FILE.i' + C source code which should not be preprocessed. + +`FILE.ii' + C++ source code which should not be preprocessed. + +`FILE.m' + Objective-C source code. Note that you must link with the + `libobjc' library to make an Objective-C program work. + +`FILE.mi' + Objective-C source code which should not be preprocessed. + +`FILE.mm' +`FILE.M' + Objective-C++ source code. Note that you must link with the + `libobjc' library to make an Objective-C++ program work. Note + that `.M' refers to a literal capital M. + +`FILE.mii' + Objective-C++ source code which should not be preprocessed. + +`FILE.h' + C, C++, Objective-C or Objective-C++ header file to be turned into + a precompiled header. + +`FILE.cc' +`FILE.cp' +`FILE.cxx' +`FILE.cpp' +`FILE.CPP' +`FILE.c++' +`FILE.C' + C++ source code which must be preprocessed. Note that in `.cxx', + the last two letters must both be literally `x'. Likewise, `.C' + refers to a literal capital C. + +`FILE.mm' +`FILE.M' + Objective-C++ source code which must be preprocessed. + +`FILE.mii' + Objective-C++ source code which should not be preprocessed. + +`FILE.hh' +`FILE.H' +`FILE.hp' +`FILE.hxx' +`FILE.hpp' +`FILE.HPP' +`FILE.h++' +`FILE.tcc' + C++ header file to be turned into a precompiled header. + +`FILE.f' +`FILE.for' +`FILE.ftn' + Fixed form Fortran source code which should not be preprocessed. + +`FILE.F' +`FILE.FOR' +`FILE.fpp' +`FILE.FPP' +`FILE.FTN' + Fixed form Fortran source code which must be preprocessed (with + the traditional preprocessor). + +`FILE.f90' +`FILE.f95' +`FILE.f03' +`FILE.f08' + Free form Fortran source code which should not be preprocessed. + +`FILE.F90' +`FILE.F95' +`FILE.F03' +`FILE.F08' + Free form Fortran source code which must be preprocessed (with the + traditional preprocessor). + +`FILE.ads' + Ada source code file which contains a library unit declaration (a + declaration of a package, subprogram, or generic, or a generic + instantiation), or a library unit renaming declaration (a package, + generic, or subprogram renaming declaration). Such files are also + called "specs". + +`FILE.adb' + Ada source code file containing a library unit body (a subprogram + or package body). Such files are also called "bodies". + +`FILE.s' + Assembler code. + +`FILE.S' +`FILE.sx' + Assembler code which must be preprocessed. + +`OTHER' + An object file to be fed straight into linking. Any file name + with no recognized suffix is treated this way. + + You can specify the input language explicitly with the `-x' option: + +`-x LANGUAGE' + Specify explicitly the LANGUAGE for the following input files + (rather than letting the compiler choose a default based on the + file name suffix). This option applies to all following input + files until the next `-x' option. Possible values for LANGUAGE + are: + c c-header c-cpp-output + c++ c++-header c++-cpp-output + objective-c objective-c-header objective-c-cpp-output + objective-c++ objective-c++-header objective-c++-cpp-output + assembler assembler-with-cpp + ada + f77 f77-cpp-input f95 f95-cpp-input + java + +`-x none' + Turn off any specification of a language, so that subsequent files + are handled according to their file name suffixes (as they are if + `-x' has not been used at all). + +`-pass-exit-codes' + Normally the `gcc' program will exit with the code of 1 if any + phase of the compiler returns a non-success return code. If you + specify `-pass-exit-codes', the `gcc' program will instead return + with numerically highest error produced by any phase that returned + an error indication. The C, C++, and Fortran frontends return 4, + if an internal compiler error is encountered. + + If you only want some of the stages of compilation, you can use `-x' +(or filename suffixes) to tell `gcc' where to start, and one of the +options `-c', `-S', or `-E' to say where `gcc' is to stop. Note that +some combinations (for example, `-x cpp-output -E') instruct `gcc' to +do nothing at all. + +`-c' + Compile or assemble the source files, but do not link. The linking + stage simply is not done. The ultimate output is in the form of an + object file for each source file. + + By default, the object file name for a source file is made by + replacing the suffix `.c', `.i', `.s', etc., with `.o'. + + Unrecognized input files, not requiring compilation or assembly, + are ignored. + +`-S' + Stop after the stage of compilation proper; do not assemble. The + output is in the form of an assembler code file for each + non-assembler input file specified. + + By default, the assembler file name for a source file is made by + replacing the suffix `.c', `.i', etc., with `.s'. + + Input files that don't require compilation are ignored. + +`-E' + Stop after the preprocessing stage; do not run the compiler + proper. The output is in the form of preprocessed source code, + which is sent to the standard output. + + Input files which don't require preprocessing are ignored. + +`-o FILE' + Place output in file FILE. This applies regardless to whatever + sort of output is being produced, whether it be an executable file, + an object file, an assembler file or preprocessed C code. + + If `-o' is not specified, the default is to put an executable file + in `a.out', the object file for `SOURCE.SUFFIX' in `SOURCE.o', its + assembler file in `SOURCE.s', a precompiled header file in + `SOURCE.SUFFIX.gch', and all preprocessed C source on standard + output. + +`-v' + Print (on standard error output) the commands executed to run the + stages of compilation. Also print the version number of the + compiler driver program and of the preprocessor and the compiler + proper. + +`-###' + Like `-v' except the commands are not executed and all command + arguments are quoted. This is useful for shell scripts to capture + the driver-generated command lines. + +`-pipe' + Use pipes rather than temporary files for communication between the + various stages of compilation. This fails to work on some systems + where the assembler is unable to read from a pipe; but the GNU + assembler has no trouble. + +`-combine' + If you are compiling multiple source files, this option tells the + driver to pass all the source files to the compiler at once (for + those languages for which the compiler can handle this). This + will allow intermodule analysis (IMA) to be performed by the + compiler. Currently the only language for which this is supported + is C. If you pass source files for multiple languages to the + driver, using this option, the driver will invoke the compiler(s) + that support IMA once each, passing each compiler all the source + files appropriate for it. For those languages that do not support + IMA this option will be ignored, and the compiler will be invoked + once for each source file in that language. If you use this + option in conjunction with `-save-temps', the compiler will + generate multiple pre-processed files (one for each source file), + but only one (combined) `.o' or `.s' file. + +`--help' + Print (on the standard output) a description of the command line + options understood by `gcc'. If the `-v' option is also specified + then `--help' will also be passed on to the various processes + invoked by `gcc', so that they can display the command line options + they accept. If the `-Wextra' option has also been specified + (prior to the `--help' option), then command line options which + have no documentation associated with them will also be displayed. + +`--target-help' + Print (on the standard output) a description of target-specific + command line options for each tool. For some targets extra + target-specific information may also be printed. + +`--help={CLASS|[^]QUALIFIER}[,...]' + Print (on the standard output) a description of the command line + options understood by the compiler that fit into all specified + classes and qualifiers. These are the supported classes: + + `optimizers' + This will display all of the optimization options supported + by the compiler. + + `warnings' + This will display all of the options controlling warning + messages produced by the compiler. + + `target' + This will display target-specific options. Unlike the + `--target-help' option however, target-specific options of the + linker and assembler will not be displayed. This is because + those tools do not currently support the extended `--help=' + syntax. + + `params' + This will display the values recognized by the `--param' + option. + + LANGUAGE + This will display the options supported for LANGUAGE, where + LANGUAGE is the name of one of the languages supported in this + version of GCC. + + `common' + This will display the options that are common to all + languages. + + These are the supported qualifiers: + + `undocumented' + Display only those options which are undocumented. + + `joined' + Display options which take an argument that appears after an + equal sign in the same continuous piece of text, such as: + `--help=target'. + + `separate' + Display options which take an argument that appears as a + separate word following the original option, such as: `-o + output-file'. + + Thus for example to display all the undocumented target-specific + switches supported by the compiler the following can be used: + + --help=target,undocumented + + The sense of a qualifier can be inverted by prefixing it with the + `^' character, so for example to display all binary warning + options (i.e., ones that are either on or off and that do not take + an argument), which have a description the following can be used: + + --help=warnings,^joined,^undocumented + + The argument to `--help=' should not consist solely of inverted + qualifiers. + + Combining several classes is possible, although this usually + restricts the output by so much that there is nothing to display. + One case where it does work however is when one of the classes is + TARGET. So for example to display all the target-specific + optimization options the following can be used: + + --help=target,optimizers + + The `--help=' option can be repeated on the command line. Each + successive use will display its requested class of options, + skipping those that have already been displayed. + + If the `-Q' option appears on the command line before the + `--help=' option, then the descriptive text displayed by `--help=' + is changed. Instead of describing the displayed options, an + indication is given as to whether the option is enabled, disabled + or set to a specific value (assuming that the compiler knows this + at the point where the `--help=' option is used). + + Here is a truncated example from the ARM port of `gcc': + + % gcc -Q -mabi=2 --help=target -c + The following options are target specific: + -mabi= 2 + -mabort-on-noreturn [disabled] + -mapcs [disabled] + + The output is sensitive to the effects of previous command line + options, so for example it is possible to find out which + optimizations are enabled at `-O2' by using: + + -Q -O2 --help=optimizers + + Alternatively you can discover which binary optimizations are + enabled by `-O3' by using: + + gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts + gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts + diff /tmp/O2-opts /tmp/O3-opts | grep enabled + +`--version' + Display the version number and copyrights of the invoked GCC. + +`-wrapper' + Invoke all subcommands under a wrapper program. It takes a single + comma separated list as an argument, which will be used to invoke + the wrapper: + + gcc -c t.c -wrapper gdb,--args + + This will invoke all subprograms of gcc under "gdb -args", thus + cc1 invocation will be "gdb -args cc1 ...". + +`@FILE' + Read command-line options from FILE. The options read are + inserted in place of the original @FILE option. If FILE does not + exist, or cannot be read, then the option will be treated + literally, and not removed. + + Options in FILE are separated by whitespace. A whitespace + character may be included in an option by surrounding the entire + option in either single or double quotes. Any character + (including a backslash) may be included by prefixing the character + to be included with a backslash. The FILE may itself contain + additional @FILE options; any such options will be processed + recursively. + + +File: gcc.info, Node: Invoking G++, Next: C Dialect Options, Prev: Overall Options, Up: Invoking GCC + +3.3 Compiling C++ Programs +========================== + +C++ source files conventionally use one of the suffixes `.C', `.cc', +`.cpp', `.CPP', `.c++', `.cp', or `.cxx'; C++ header files often use +`.hh', `.hpp', `.H', or (for shared template code) `.tcc'; and +preprocessed C++ files use the suffix `.ii'. GCC recognizes files with +these names and compiles them as C++ programs even if you call the +compiler the same way as for compiling C programs (usually with the +name `gcc'). + + However, the use of `gcc' does not add the C++ library. `g++' is a +program that calls GCC and treats `.c', `.h' and `.i' files as C++ +source files instead of C source files unless `-x' is used, and +automatically specifies linking against the C++ library. This program +is also useful when precompiling a C header file with a `.h' extension +for use in C++ compilations. On many systems, `g++' is also installed +with the name `c++'. + + When you compile C++ programs, you may specify many of the same +command-line options that you use for compiling programs in any +language; or command-line options meaningful for C and related +languages; or options that are meaningful only for C++ programs. *Note +Options Controlling C Dialect: C Dialect Options, for explanations of +options for languages related to C. *Note Options Controlling C++ +Dialect: C++ Dialect Options, for explanations of options that are +meaningful only for C++ programs. + + +File: gcc.info, Node: C Dialect Options, Next: C++ Dialect Options, Prev: Invoking G++, Up: Invoking GCC + +3.4 Options Controlling C Dialect +================================= + +The following options control the dialect of C (or languages derived +from C, such as C++, Objective-C and Objective-C++) that the compiler +accepts: + +`-ansi' + In C mode, this is equivalent to `-std=c89'. In C++ mode, it is + equivalent to `-std=c++98'. + + This turns off certain features of GCC that are incompatible with + ISO C90 (when compiling C code), or of standard C++ (when + compiling C++ code), such as the `asm' and `typeof' keywords, and + predefined macros such as `unix' and `vax' that identify the type + of system you are using. It also enables the undesirable and + rarely used ISO trigraph feature. For the C compiler, it disables + recognition of C++ style `//' comments as well as the `inline' + keyword. + + The alternate keywords `__asm__', `__extension__', `__inline__' + and `__typeof__' continue to work despite `-ansi'. You would not + want to use them in an ISO C program, of course, but it is useful + to put them in header files that might be included in compilations + done with `-ansi'. Alternate predefined macros such as `__unix__' + and `__vax__' are also available, with or without `-ansi'. + + The `-ansi' option does not cause non-ISO programs to be rejected + gratuitously. For that, `-pedantic' is required in addition to + `-ansi'. *Note Warning Options::. + + The macro `__STRICT_ANSI__' is predefined when the `-ansi' option + is used. Some header files may notice this macro and refrain from + declaring certain functions or defining certain macros that the + ISO standard doesn't call for; this is to avoid interfering with + any programs that might use these names for other things. + + Functions that would normally be built in but do not have semantics + defined by ISO C (such as `alloca' and `ffs') are not built-in + functions when `-ansi' is used. *Note Other built-in functions + provided by GCC: Other Builtins, for details of the functions + affected. + +`-std=' + Determine the language standard. *Note Language Standards + Supported by GCC: Standards, for details of these standard + versions. This option is currently only supported when compiling + C or C++. + + The compiler can accept several base standards, such as `c89' or + `c++98', and GNU dialects of those standards, such as `gnu89' or + `gnu++98'. By specifying a base standard, the compiler will + accept all programs following that standard and those using GNU + extensions that do not contradict it. For example, `-std=c89' + turns off certain features of GCC that are incompatible with ISO + C90, such as the `asm' and `typeof' keywords, but not other GNU + extensions that do not have a meaning in ISO C90, such as omitting + the middle term of a `?:' expression. On the other hand, by + specifying a GNU dialect of a standard, all features the compiler + support are enabled, even when those features change the meaning + of the base standard and some strict-conforming programs may be + rejected. The particular standard is used by `-pedantic' to + identify which features are GNU extensions given that version of + the standard. For example `-std=gnu89 -pedantic' would warn about + C++ style `//' comments, while `-std=gnu99 -pedantic' would not. + + A value for this option must be provided; possible values are + + `c89' + `iso9899:1990' + Support all ISO C90 programs (certain GNU extensions that + conflict with ISO C90 are disabled). Same as `-ansi' for C + code. + + `iso9899:199409' + ISO C90 as modified in amendment 1. + + `c99' + `c9x' + `iso9899:1999' + `iso9899:199x' + ISO C99. Note that this standard is not yet fully supported; + see `http://gcc.gnu.org/gcc-4.4/c99status.html' for more + information. The names `c9x' and `iso9899:199x' are + deprecated. + + `gnu89' + GNU dialect of ISO C90 (including some C99 features). This is + the default for C code. + + `gnu99' + `gnu9x' + GNU dialect of ISO C99. When ISO C99 is fully implemented in + GCC, this will become the default. The name `gnu9x' is + deprecated. + + `c++98' + The 1998 ISO C++ standard plus amendments. Same as `-ansi' for + C++ code. + + `gnu++98' + GNU dialect of `-std=c++98'. This is the default for C++ + code. + + `c++0x' + The working draft of the upcoming ISO C++0x standard. This + option enables experimental features that are likely to be + included in C++0x. The working draft is constantly changing, + and any feature that is enabled by this flag may be removed + from future versions of GCC if it is not part of the C++0x + standard. + + `gnu++0x' + GNU dialect of `-std=c++0x'. This option enables experimental + features that may be removed in future versions of GCC. + +`-fgnu89-inline' + The option `-fgnu89-inline' tells GCC to use the traditional GNU + semantics for `inline' functions when in C99 mode. *Note An + Inline Function is As Fast As a Macro: Inline. This option is + accepted and ignored by GCC versions 4.1.3 up to but not including + 4.3. In GCC versions 4.3 and later it changes the behavior of GCC + in C99 mode. Using this option is roughly equivalent to adding the + `gnu_inline' function attribute to all inline functions (*note + Function Attributes::). + + The option `-fno-gnu89-inline' explicitly tells GCC to use the C99 + semantics for `inline' when in C99 or gnu99 mode (i.e., it + specifies the default behavior). This option was first supported + in GCC 4.3. This option is not supported in C89 or gnu89 mode. + + The preprocessor macros `__GNUC_GNU_INLINE__' and + `__GNUC_STDC_INLINE__' may be used to check which semantics are in + effect for `inline' functions. *Note Common Predefined Macros: + (cpp)Common Predefined Macros. + +`-aux-info FILENAME' + Output to the given filename prototyped declarations for all + functions declared and/or defined in a translation unit, including + those in header files. This option is silently ignored in any + language other than C. + + Besides declarations, the file indicates, in comments, the origin + of each declaration (source file and line), whether the + declaration was implicit, prototyped or unprototyped (`I', `N' for + new or `O' for old, respectively, in the first character after the + line number and the colon), and whether it came from a declaration + or a definition (`C' or `F', respectively, in the following + character). In the case of function definitions, a K&R-style list + of arguments followed by their declarations is also provided, + inside comments, after the declaration. + +`-fno-asm' + Do not recognize `asm', `inline' or `typeof' as a keyword, so that + code can use these words as identifiers. You can use the keywords + `__asm__', `__inline__' and `__typeof__' instead. `-ansi' implies + `-fno-asm'. + + In C++, this switch only affects the `typeof' keyword, since `asm' + and `inline' are standard keywords. You may want to use the + `-fno-gnu-keywords' flag instead, which has the same effect. In + C99 mode (`-std=c99' or `-std=gnu99'), this switch only affects + the `asm' and `typeof' keywords, since `inline' is a standard + keyword in ISO C99. + +`-fno-builtin' +`-fno-builtin-FUNCTION' + Don't recognize built-in functions that do not begin with + `__builtin_' as prefix. *Note Other built-in functions provided + by GCC: Other Builtins, for details of the functions affected, + including those which are not built-in functions when `-ansi' or + `-std' options for strict ISO C conformance are used because they + do not have an ISO standard meaning. + + GCC normally generates special code to handle certain built-in + functions more efficiently; for instance, calls to `alloca' may + become single instructions that adjust the stack directly, and + calls to `memcpy' may become inline copy loops. The resulting + code is often both smaller and faster, but since the function + calls no longer appear as such, you cannot set a breakpoint on + those calls, nor can you change the behavior of the functions by + linking with a different library. In addition, when a function is + recognized as a built-in function, GCC may use information about + that function to warn about problems with calls to that function, + or to generate more efficient code, even if the resulting code + still contains calls to that function. For example, warnings are + given with `-Wformat' for bad calls to `printf', when `printf' is + built in, and `strlen' is known not to modify global memory. + + With the `-fno-builtin-FUNCTION' option only the built-in function + FUNCTION is disabled. FUNCTION must not begin with `__builtin_'. + If a function is named that is not built-in in this version of + GCC, this option is ignored. There is no corresponding + `-fbuiltin-FUNCTION' option; if you wish to enable built-in + functions selectively when using `-fno-builtin' or + `-ffreestanding', you may define macros such as: + + #define abs(n) __builtin_abs ((n)) + #define strcpy(d, s) __builtin_strcpy ((d), (s)) + +`-fhosted' + Assert that compilation takes place in a hosted environment. This + implies `-fbuiltin'. A hosted environment is one in which the + entire standard library is available, and in which `main' has a + return type of `int'. Examples are nearly everything except a + kernel. This is equivalent to `-fno-freestanding'. + +`-ffreestanding' + Assert that compilation takes place in a freestanding environment. + This implies `-fno-builtin'. A freestanding environment is one + in which the standard library may not exist, and program startup + may not necessarily be at `main'. The most obvious example is an + OS kernel. This is equivalent to `-fno-hosted'. + + *Note Language Standards Supported by GCC: Standards, for details + of freestanding and hosted environments. + +`-fopenmp' + Enable handling of OpenMP directives `#pragma omp' in C/C++ and + `!$omp' in Fortran. When `-fopenmp' is specified, the compiler + generates parallel code according to the OpenMP Application + Program Interface v2.5 `http://www.openmp.org/'. This option + implies `-pthread', and thus is only supported on targets that + have support for `-pthread'. + +`-fms-extensions' + Accept some non-standard constructs used in Microsoft header files. + + Some cases of unnamed fields in structures and unions are only + accepted with this option. *Note Unnamed struct/union fields + within structs/unions: Unnamed Fields, for details. + +`-trigraphs' + Support ISO C trigraphs. The `-ansi' option (and `-std' options + for strict ISO C conformance) implies `-trigraphs'. + +`-no-integrated-cpp' + Performs a compilation in two passes: preprocessing and compiling. + This option allows a user supplied "cc1", "cc1plus", or "cc1obj" + via the `-B' option. The user supplied compilation step can then + add in an additional preprocessing step after normal preprocessing + but before compiling. The default is to use the integrated cpp + (internal cpp) + + The semantics of this option will change if "cc1", "cc1plus", and + "cc1obj" are merged. + +`-traditional' +`-traditional-cpp' + Formerly, these options caused GCC to attempt to emulate a + pre-standard C compiler. They are now only supported with the + `-E' switch. The preprocessor continues to support a pre-standard + mode. See the GNU CPP manual for details. + +`-fcond-mismatch' + Allow conditional expressions with mismatched types in the second + and third arguments. The value of such an expression is void. + This option is not supported for C++. + +`-flax-vector-conversions' + Allow implicit conversions between vectors with differing numbers + of elements and/or incompatible element types. This option should + not be used for new code. + +`-funsigned-char' + Let the type `char' be unsigned, like `unsigned char'. + + Each kind of machine has a default for what `char' should be. It + is either like `unsigned char' by default or like `signed char' by + default. + + Ideally, a portable program should always use `signed char' or + `unsigned char' when it depends on the signedness of an object. + But many programs have been written to use plain `char' and expect + it to be signed, or expect it to be unsigned, depending on the + machines they were written for. This option, and its inverse, let + you make such a program work with the opposite default. + + The type `char' is always a distinct type from each of `signed + char' or `unsigned char', even though its behavior is always just + like one of those two. + +`-fsigned-char' + Let the type `char' be signed, like `signed char'. + + Note that this is equivalent to `-fno-unsigned-char', which is the + negative form of `-funsigned-char'. Likewise, the option + `-fno-signed-char' is equivalent to `-funsigned-char'. + +`-fsigned-bitfields' +`-funsigned-bitfields' +`-fno-signed-bitfields' +`-fno-unsigned-bitfields' + These options control whether a bit-field is signed or unsigned, + when the declaration does not use either `signed' or `unsigned'. + By default, such a bit-field is signed, because this is + consistent: the basic integer types such as `int' are signed types. + + +File: gcc.info, Node: C++ Dialect Options, Next: Objective-C and Objective-C++ Dialect Options, Prev: C Dialect Options, Up: Invoking GCC + +3.5 Options Controlling C++ Dialect +=================================== + +This section describes the command-line options that are only meaningful +for C++ programs; but you can also use most of the GNU compiler options +regardless of what language your program is in. For example, you might +compile a file `firstClass.C' like this: + + g++ -g -frepo -O -c firstClass.C + +In this example, only `-frepo' is an option meant only for C++ +programs; you can use the other options with any language supported by +GCC. + + Here is a list of options that are _only_ for compiling C++ programs: + +`-fabi-version=N' + Use version N of the C++ ABI. Version 2 is the version of the C++ + ABI that first appeared in G++ 3.4. Version 1 is the version of + the C++ ABI that first appeared in G++ 3.2. Version 0 will always + be the version that conforms most closely to the C++ ABI + specification. Therefore, the ABI obtained using version 0 will + change as ABI bugs are fixed. + + The default is version 2. + +`-fno-access-control' + Turn off all access checking. This switch is mainly useful for + working around bugs in the access control code. + +`-fcheck-new' + Check that the pointer returned by `operator new' is non-null + before attempting to modify the storage allocated. This check is + normally unnecessary because the C++ standard specifies that + `operator new' will only return `0' if it is declared `throw()', + in which case the compiler will always check the return value even + without this option. In all other cases, when `operator new' has + a non-empty exception specification, memory exhaustion is + signalled by throwing `std::bad_alloc'. See also `new (nothrow)'. + +`-fconserve-space' + Put uninitialized or runtime-initialized global variables into the + common segment, as C does. This saves space in the executable at + the cost of not diagnosing duplicate definitions. If you compile + with this flag and your program mysteriously crashes after + `main()' has completed, you may have an object that is being + destroyed twice because two definitions were merged. + + This option is no longer useful on most targets, now that support + has been added for putting variables into BSS without making them + common. + +`-ffriend-injection' + Inject friend functions into the enclosing namespace, so that they + are visible outside the scope of the class in which they are + declared. Friend functions were documented to work this way in + the old Annotated C++ Reference Manual, and versions of G++ before + 4.1 always worked that way. However, in ISO C++ a friend function + which is not declared in an enclosing scope can only be found + using argument dependent lookup. This option causes friends to be + injected as they were in earlier releases. + + This option is for compatibility, and may be removed in a future + release of G++. + +`-fno-elide-constructors' + The C++ standard allows an implementation to omit creating a + temporary which is only used to initialize another object of the + same type. Specifying this option disables that optimization, and + forces G++ to call the copy constructor in all cases. + +`-fno-enforce-eh-specs' + Don't generate code to check for violation of exception + specifications at runtime. This option violates the C++ standard, + but may be useful for reducing code size in production builds, + much like defining `NDEBUG'. This does not give user code + permission to throw exceptions in violation of the exception + specifications; the compiler will still optimize based on the + specifications, so throwing an unexpected exception will result in + undefined behavior. + +`-ffor-scope' +`-fno-for-scope' + If `-ffor-scope' is specified, the scope of variables declared in + a for-init-statement is limited to the `for' loop itself, as + specified by the C++ standard. If `-fno-for-scope' is specified, + the scope of variables declared in a for-init-statement extends to + the end of the enclosing scope, as was the case in old versions of + G++, and other (traditional) implementations of C++. + + The default if neither flag is given to follow the standard, but + to allow and give a warning for old-style code that would + otherwise be invalid, or have different behavior. + +`-fno-gnu-keywords' + Do not recognize `typeof' as a keyword, so that code can use this + word as an identifier. You can use the keyword `__typeof__' + instead. `-ansi' implies `-fno-gnu-keywords'. + +`-fno-implicit-templates' + Never emit code for non-inline templates which are instantiated + implicitly (i.e. by use); only emit code for explicit + instantiations. *Note Template Instantiation::, for more + information. + +`-fno-implicit-inline-templates' + Don't emit code for implicit instantiations of inline templates, + either. The default is to handle inlines differently so that + compiles with and without optimization will need the same set of + explicit instantiations. + +`-fno-implement-inlines' + To save space, do not emit out-of-line copies of inline functions + controlled by `#pragma implementation'. This will cause linker + errors if these functions are not inlined everywhere they are + called. + +`-fms-extensions' + Disable pedantic warnings about constructs used in MFC, such as + implicit int and getting a pointer to member function via + non-standard syntax. + +`-fno-nonansi-builtins' + Disable built-in declarations of functions that are not mandated by + ANSI/ISO C. These include `ffs', `alloca', `_exit', `index', + `bzero', `conjf', and other related functions. + +`-fno-operator-names' + Do not treat the operator name keywords `and', `bitand', `bitor', + `compl', `not', `or' and `xor' as synonyms as keywords. + +`-fno-optional-diags' + Disable diagnostics that the standard says a compiler does not + need to issue. Currently, the only such diagnostic issued by G++ + is the one for a name having multiple meanings within a class. + +`-fpermissive' + Downgrade some diagnostics about nonconformant code from errors to + warnings. Thus, using `-fpermissive' will allow some + nonconforming code to compile. + +`-frepo' + Enable automatic template instantiation at link time. This option + also implies `-fno-implicit-templates'. *Note Template + Instantiation::, for more information. + +`-fno-rtti' + Disable generation of information about every class with virtual + functions for use by the C++ runtime type identification features + (`dynamic_cast' and `typeid'). If you don't use those parts of + the language, you can save some space by using this flag. Note + that exception handling uses the same information, but it will + generate it as needed. The `dynamic_cast' operator can still be + used for casts that do not require runtime type information, i.e. + casts to `void *' or to unambiguous base classes. + +`-fstats' + Emit statistics about front-end processing at the end of the + compilation. This information is generally only useful to the G++ + development team. + +`-ftemplate-depth-N' + Set the maximum instantiation depth for template classes to N. A + limit on the template instantiation depth is needed to detect + endless recursions during template class instantiation. ANSI/ISO + C++ conforming programs must not rely on a maximum depth greater + than 17. + +`-fno-threadsafe-statics' + Do not emit the extra code to use the routines specified in the C++ + ABI for thread-safe initialization of local statics. You can use + this option to reduce code size slightly in code that doesn't need + to be thread-safe. + +`-fuse-cxa-atexit' + Register destructors for objects with static storage duration with + the `__cxa_atexit' function rather than the `atexit' function. + This option is required for fully standards-compliant handling of + static destructors, but will only work if your C library supports + `__cxa_atexit'. + +`-fno-use-cxa-get-exception-ptr' + Don't use the `__cxa_get_exception_ptr' runtime routine. This + will cause `std::uncaught_exception' to be incorrect, but is + necessary if the runtime routine is not available. + +`-fvisibility-inlines-hidden' + This switch declares that the user does not attempt to compare + pointers to inline methods where the addresses of the two functions + were taken in different shared objects. + + The effect of this is that GCC may, effectively, mark inline + methods with `__attribute__ ((visibility ("hidden")))' so that + they do not appear in the export table of a DSO and do not require + a PLT indirection when used within the DSO. Enabling this option + can have a dramatic effect on load and link times of a DSO as it + massively reduces the size of the dynamic export table when the + library makes heavy use of templates. + + The behavior of this switch is not quite the same as marking the + methods as hidden directly, because it does not affect static + variables local to the function or cause the compiler to deduce + that the function is defined in only one shared object. + + You may mark a method as having a visibility explicitly to negate + the effect of the switch for that method. For example, if you do + want to compare pointers to a particular inline method, you might + mark it as having default visibility. Marking the enclosing class + with explicit visibility will have no effect. + + Explicitly instantiated inline methods are unaffected by this + option as their linkage might otherwise cross a shared library + boundary. *Note Template Instantiation::. + +`-fvisibility-ms-compat' + This flag attempts to use visibility settings to make GCC's C++ + linkage model compatible with that of Microsoft Visual Studio. + + The flag makes these changes to GCC's linkage model: + + 1. It sets the default visibility to `hidden', like + `-fvisibility=hidden'. + + 2. Types, but not their members, are not hidden by default. + + 3. The One Definition Rule is relaxed for types without explicit + visibility specifications which are defined in more than one + different shared object: those declarations are permitted if + they would have been permitted when this option was not used. + + In new code it is better to use `-fvisibility=hidden' and export + those classes which are intended to be externally visible. + Unfortunately it is possible for code to rely, perhaps + accidentally, on the Visual Studio behavior. + + Among the consequences of these changes are that static data + members of the same type with the same name but defined in + different shared objects will be different, so changing one will + not change the other; and that pointers to function members + defined in different shared objects may not compare equal. When + this flag is given, it is a violation of the ODR to define types + with the same name differently. + +`-fno-weak' + Do not use weak symbol support, even if it is provided by the + linker. By default, G++ will use weak symbols if they are + available. This option exists only for testing, and should not be + used by end-users; it will result in inferior code and has no + benefits. This option may be removed in a future release of G++. + +`-nostdinc++' + Do not search for header files in the standard directories + specific to C++, but do still search the other standard + directories. (This option is used when building the C++ library.) + + In addition, these optimization, warning, and code generation options +have meanings only for C++ programs: + +`-fno-default-inline' + Do not assume `inline' for functions defined inside a class scope. + *Note Options That Control Optimization: Optimize Options. Note + that these functions will have linkage like inline functions; they + just won't be inlined by default. + +`-Wabi (C, Objective-C, C++ and Objective-C++ only)' + Warn when G++ generates code that is probably not compatible with + the vendor-neutral C++ ABI. Although an effort has been made to + warn about all such cases, there are probably some cases that are + not warned about, even though G++ is generating incompatible code. + There may also be cases where warnings are emitted even though + the code that is generated will be compatible. + + You should rewrite your code to avoid these warnings if you are + concerned about the fact that code generated by G++ may not be + binary compatible with code generated by other compilers. + + The known incompatibilities at this point include: + + * Incorrect handling of tail-padding for bit-fields. G++ may + attempt to pack data into the same byte as a base class. For + example: + + struct A { virtual void f(); int f1 : 1; }; + struct B : public A { int f2 : 1; }; + + In this case, G++ will place `B::f2' into the same byte + as`A::f1'; other compilers will not. You can avoid this + problem by explicitly padding `A' so that its size is a + multiple of the byte size on your platform; that will cause + G++ and other compilers to layout `B' identically. + + * Incorrect handling of tail-padding for virtual bases. G++ + does not use tail padding when laying out virtual bases. For + example: + + struct A { virtual void f(); char c1; }; + struct B { B(); char c2; }; + struct C : public A, public virtual B {}; + + In this case, G++ will not place `B' into the tail-padding for + `A'; other compilers will. You can avoid this problem by + explicitly padding `A' so that its size is a multiple of its + alignment (ignoring virtual base classes); that will cause + G++ and other compilers to layout `C' identically. + + * Incorrect handling of bit-fields with declared widths greater + than that of their underlying types, when the bit-fields + appear in a union. For example: + + union U { int i : 4096; }; + + Assuming that an `int' does not have 4096 bits, G++ will make + the union too small by the number of bits in an `int'. + + * Empty classes can be placed at incorrect offsets. For + example: + + struct A {}; + + struct B { + A a; + virtual void f (); + }; + + struct C : public B, public A {}; + + G++ will place the `A' base class of `C' at a nonzero offset; + it should be placed at offset zero. G++ mistakenly believes + that the `A' data member of `B' is already at offset zero. + + * Names of template functions whose types involve `typename' or + template template parameters can be mangled incorrectly. + + template + void f(typename Q::X) {} + + template