From 5ee6392c98279218cbad12ab361ebd693e72216d Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 4 May 2009 14:21:34 +0200 Subject: [PATCH] Remove gcc in preparation for upgrade Signed-off-by: Johannes Schindelin --- mingw/COPYING-gcc-tdm.txt | 674 - mingw/COPYING.lib-gcc-tdm.txt | 502 - mingw/README-gcc-tdm.txt | 255 - mingw/bin/cpp.exe | Bin 194560 -> 0 bytes mingw/bin/gcc.exe | Bin 193024 -> 0 bytes mingw/bin/gccbug | 558 - mingw/bin/gcov.exe | Bin 26643 -> 0 bytes mingw/bin/mingw32-gcc-4.3.3.exe | Bin 193024 -> 0 bytes mingw/bin/mingw32-gcc.exe | Bin 193024 -> 0 bytes mingw/bin/pthreadGC2.dll | Bin 65124 -> 0 bytes mingw/bin/pthreadGCE2.dll | Bin 91752 -> 0 bytes mingw/include/pthread.h | 1368 - mingw/include/sched.h | 178 - mingw/include/semaphore.h | 166 - mingw/info/cpp.info | 5349 --- mingw/info/cppinternals.info | 1036 - mingw/info/gcc.info | 42252 ------------------- mingw/info/gccinstall.info | 4268 -- mingw/info/gccint.info | 41203 ------------------ mingw/info/libgomp.info | 2123 - mingw/lib/gcc/mingw32/4.3.3/crtbegin.o | Bin 1005 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/crtend.o | Bin 855 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/crtfastmath.o | Bin 3493 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/include-fixed/README | 14 - mingw/lib/gcc/mingw32/4.3.3/include-fixed/limits.h | 125 - .../gcc/mingw32/4.3.3/include-fixed/syslimits.h | 8 - mingw/lib/gcc/mingw32/4.3.3/include/ammintrin.h | 91 - mingw/lib/gcc/mingw32/4.3.3/include/bmmintrin.h | 1264 - mingw/lib/gcc/mingw32/4.3.3/include/cpuid.h | 162 - mingw/lib/gcc/mingw32/4.3.3/include/emmintrin.h | 1515 - mingw/lib/gcc/mingw32/4.3.3/include/float.h | 241 - mingw/lib/gcc/mingw32/4.3.3/include/iso646.h | 48 - mingw/lib/gcc/mingw32/4.3.3/include/mm3dnow.h | 221 - mingw/lib/gcc/mingw32/4.3.3/include/mm_malloc.h | 77 - .../gcc/mingw32/4.3.3/include/mmintrin-common.h | 158 - mingw/lib/gcc/mingw32/4.3.3/include/mmintrin.h | 922 - mingw/lib/gcc/mingw32/4.3.3/include/nmmintrin.h | 40 - mingw/lib/gcc/mingw32/4.3.3/include/omp.h | 90 - mingw/lib/gcc/mingw32/4.3.3/include/pmmintrin.h | 130 - mingw/lib/gcc/mingw32/4.3.3/include/smmintrin.h | 726 - mingw/lib/gcc/mingw32/4.3.3/include/ssp/ssp.h | 66 - mingw/lib/gcc/mingw32/4.3.3/include/ssp/stdio.h | 101 - mingw/lib/gcc/mingw32/4.3.3/include/ssp/string.h | 168 - mingw/lib/gcc/mingw32/4.3.3/include/ssp/unistd.h | 85 - mingw/lib/gcc/mingw32/4.3.3/include/stdarg.h | 133 - mingw/lib/gcc/mingw32/4.3.3/include/stdbool.h | 53 - mingw/lib/gcc/mingw32/4.3.3/include/stddef.h | 419 - mingw/lib/gcc/mingw32/4.3.3/include/stdfix.h | 207 - mingw/lib/gcc/mingw32/4.3.3/include/tgmath.h | 174 - mingw/lib/gcc/mingw32/4.3.3/include/tmmintrin.h | 247 - mingw/lib/gcc/mingw32/4.3.3/include/unwind.h | 279 - mingw/lib/gcc/mingw32/4.3.3/include/varargs.h | 7 - mingw/lib/gcc/mingw32/4.3.3/include/xmmintrin.h | 1256 - .../gcc/mingw32/4.3.3/install-tools/fixinc_list | 1 - .../gcc/mingw32/4.3.3/install-tools/gsyslimits.h | 8 - .../gcc/mingw32/4.3.3/install-tools/include/README | 14 - .../mingw32/4.3.3/install-tools/include/limits.h | 125 - .../lib/gcc/mingw32/4.3.3/install-tools/macro_list | 6 - .../gcc/mingw32/4.3.3/install-tools/mkheaders.conf | 5 - mingw/lib/gcc/mingw32/4.3.3/libgcc.a | Bin 311316 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libgcov.a | Bin 74858 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libgomp.a | Bin 41498 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libgomp.la | 41 - mingw/lib/gcc/mingw32/4.3.3/libgomp.spec | 3 - mingw/lib/gcc/mingw32/4.3.3/libiberty.a | Bin 200460 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libssp.a | Bin 9498 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libssp.la | 41 - mingw/lib/gcc/mingw32/4.3.3/libssp_nonshared.a | Bin 660 -> 0 bytes mingw/lib/gcc/mingw32/4.3.3/libssp_nonshared.la | 41 - mingw/lib/libpthread.a | Bin 89608 -> 0 bytes mingw/lib/libpthreadGC2-static.a | Bin 53332 -> 0 bytes mingw/lib/libpthreadGCE2.a | Bin 89614 -> 0 bytes mingw/libexec/gcc/mingw32/4.3.3/cc1.exe | Bin 7336960 -> 0 bytes mingw/libexec/gcc/mingw32/4.3.3/collect2.exe | Bin 91136 -> 0 bytes .../gcc/mingw32/4.3.3/install-tools/fixinc.sh | 2 - .../gcc/mingw32/4.3.3/install-tools/fixincl.exe | Bin 105984 -> 0 bytes .../gcc/mingw32/4.3.3/install-tools/mkheaders | 110 - .../gcc/mingw32/4.3.3/install-tools/mkinstalldirs | 158 - mingw/man/man1/cpp.1 | 975 - mingw/man/man1/gcc.1 | 14523 ------- mingw/man/man1/gcov.1 | 635 - mingw/man/man7/fsf-funding.7 | 192 - mingw/man/man7/gfdl.7 | 591 - mingw/man/man7/gpl.7 | 1 - mingw/pthreads-win32-README | 593 - 85 files changed, 127024 deletions(-) delete mode 100644 mingw/COPYING-gcc-tdm.txt delete mode 100644 mingw/COPYING.lib-gcc-tdm.txt delete mode 100644 mingw/README-gcc-tdm.txt delete mode 100644 mingw/bin/cpp.exe delete mode 100644 mingw/bin/gcc.exe delete mode 100644 mingw/bin/gccbug delete mode 100644 mingw/bin/gcov.exe delete mode 100644 mingw/bin/mingw32-gcc-4.3.3.exe delete mode 100644 mingw/bin/mingw32-gcc.exe delete mode 100644 mingw/bin/pthreadGC2.dll delete mode 100644 mingw/bin/pthreadGCE2.dll delete mode 100644 mingw/include/pthread.h delete mode 100644 mingw/include/sched.h delete mode 100644 mingw/include/semaphore.h delete mode 100644 mingw/info/cpp.info delete mode 100644 mingw/info/cppinternals.info delete mode 100644 mingw/info/gcc.info delete mode 100644 mingw/info/gccinstall.info delete mode 100644 mingw/info/gccint.info delete mode 100644 mingw/info/libgomp.info delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/crtbegin.o delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/crtend.o delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/crtfastmath.o delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include-fixed/README delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include-fixed/limits.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include-fixed/syslimits.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/ammintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/bmmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/cpuid.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/emmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/float.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/iso646.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/mm3dnow.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/mm_malloc.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/mmintrin-common.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/mmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/nmmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/omp.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/pmmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/smmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/ssp/ssp.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/ssp/stdio.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/ssp/string.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/ssp/unistd.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/stdarg.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/stdbool.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/stddef.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/stdfix.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/tgmath.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/tmmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/unwind.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/varargs.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/include/xmmintrin.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/fixinc_list delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/gsyslimits.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/include/README delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/include/limits.h delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/macro_list delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/install-tools/mkheaders.conf delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libgcc.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libgcov.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libgomp.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libgomp.la delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libgomp.spec delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libiberty.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libssp.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libssp.la delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libssp_nonshared.a delete mode 100644 mingw/lib/gcc/mingw32/4.3.3/libssp_nonshared.la delete mode 100644 mingw/lib/libpthread.a delete mode 100644 mingw/lib/libpthreadGC2-static.a delete mode 100644 mingw/lib/libpthreadGCE2.a delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/cc1.exe delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/collect2.exe delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/install-tools/fixinc.sh delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/install-tools/fixincl.exe delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/install-tools/mkheaders delete mode 100644 mingw/libexec/gcc/mingw32/4.3.3/install-tools/mkinstalldirs delete mode 100644 mingw/man/man1/cpp.1 delete mode 100644 mingw/man/man1/gcc.1 delete mode 100644 mingw/man/man1/gcov.1 delete mode 100644 mingw/man/man7/fsf-funding.7 delete mode 100644 mingw/man/man7/gfdl.7 delete mode 100644 mingw/man/man7/gpl.7 delete mode 100644 mingw/pthreads-win32-README diff --git a/mingw/COPYING-gcc-tdm.txt b/mingw/COPYING-gcc-tdm.txt deleted file mode 100644 index 818433ecc0..0000000000 --- a/mingw/COPYING-gcc-tdm.txt +++ /dev/null @@ -1,674 +0,0 @@ - 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 deleted file mode 100644 index 0f295d9988..0000000000 --- a/mingw/COPYING.lib-gcc-tdm.txt +++ /dev/null @@ -1,502 +0,0 @@ - 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 deleted file mode 100644 index 7d95baeee8..0000000000 --- a/mingw/README-gcc-tdm.txt +++ /dev/null @@ -1,255 +0,0 @@ -===== 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, - mingwrt-3.15.2-mingw32-dll.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 - -*** 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. - -TDM releases from the GCC 4.2 series use the SJLJ unwind method. - -*** Exceptions and DLLs *** - -The TDM-2 release of GCC 4.3.0 incorporated experimental builds of libgcc and -libstdc++ as DLLs in order to allow exceptions to be thrown out of DLLs. With -the more recent releases this has been dropped in favor of a ported version of -3.4.5's shared memory patch, because of various problems encountered in the DLL -versions. (Once these problems are solved, the DLL versions will be included -again.) - -Therefore, you no longer need to add any additional command-line options to -throw exceptions out of a DLL. You should, however, still add "-mthreads" to the -command line any time you throw exceptions in a multi-threading context. - -The ported exceptions/DLLs patch is experimental and has only received limited -testing, so please report any bugs you encounter in throwing exceptions that are -not present in the official MinGW 3.4.5 release. - -TDM releases from the GCC 4.2 series cannot yet throw exceptions out of DLLs. - -*** 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.3.2[-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 -advent of the 4.3 release series. For you, the end user, this will mean that -code which used to compile and run without problems 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 - - * [4.3 series only] 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. - * [4.1 and 4.2 series only] Exceptions cannot leave DLLs. Recent TDM - releases from the 4.3 series do not have this problem. It only appears in - previous releases when a function in a DLL called from outside the DLL - throws (or fails to catch) an exception, and results in program termination - at that point. - * [4.2 series only] A miscompilation can occur in very specific situations when - -O2 optimization is enabled, if you pass the address of a local pointer - variable to a function that modifies it. Use "-O2 -fno-strict-aliasing" as - a workaround. This has been fixed as of the 4.3 series. (See - .) - -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 - - - [4.3 series] 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++. - - [4.3 series] 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 fix a crash when all temporary directory environment - variables are empty. - - 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.2 series and have been -applied in the 4.3 sources] - - - Includes a patch which fixes GCC bug #27067. The primary reason for including - this patch was to let the wxWidgets GUI library compile successfully - out-of-the-box. (See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27067) - - Includes a patch to remove a dependency on the runtime for the classic ctype - table, moving it to libstdc++ itself. (See - http://gcc.gnu.org/ml/gcc-patches/2007-07/msg01413.html) - - Includes a patch to fix an ICE when compiling gettext (See - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29826) - - ->>>>> 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, which is 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 deleted file mode 100644 index dacf66afb4501de7ab259988941d92ce27a51916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 194560 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%0D7`TK@nJjcW|AzVNq|&VS25$TxPVqu!&oRjh;=FB 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

w?nX+^2 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

oPbyh?<4kvVxuw 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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.3.3/configure --prefix=/mingw --build=mingw32 --enable-languages=c,ada,c++,fortran,objc,obj-c++ --with-bugurl=http://www.tdragon.net/recentgcc/bugs.php --disable-nls --disable-win32-registry --enable-libgomp --disable-werror --enable-threads --disable-symvers --enable-cxx-flags='-fno-function-sections -fno-data-sections' --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-sjlj-exceptions --with-pkgversion='4.3.3-tdm-1 mingw32' -__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 deleted file mode 100644 index f2d520cd08f69636adae66e7aa4edfc14c2cfcdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 26643 zcwX&&dwf*YweXqA0Fy8{qlPxtU|a?=z2}_1^EF z@4Mf<_xw27ueH}+d%gDB`&O^4E+Iw5VYdlF zv1YXJ)`O2O5S+a3lwgb-tI=i)3!$)9V8nT@gVY3f3qn|UUd!p$a1efV^FrM^4V#xB zm^m!|F>w%+5OeJngrrfz|Me?FbZinKy>Fht2`Um|Cc&>YLgt!jGkM;uVHIr7Lh(pA zGr(okR*Th;w_`<%3U}v7IE#?ko#Enu=4%Bm!0W=DV&T?UGS<4?n12fK>=M56@(7mh zjCzib@ep_^j25`eVlEu_%f0{S`ppWe zUbX_7)F@nZw7+1>SZE3S9vK;UVUo(va_{LBfEG*^L4FR0JFSy9TLeKC3xJEZ3k=$J z0g#wFl3OguSluoQA~ghT=OEE{3B0V6x56MD<|i!zu%Nax4WQ|G&u^i4%;@g`Jl>0^ z#BVbI1n@!`Kn#Mt}*8YmdETr4ak!NW>)n;0_q#gCV&A zQu#G(K^*#yFnt}2aKJSFTfmiG`Bwl!l2hd80WoJw%#bDo+*24PD`)}UwKM(G0}GI^ z%6JhPu6!}*uo?+PAN!Qb)>hheUC*tuN3HG8w}KH7;Dvw?u*J%k@1gF7=RVJv)>IN&_(T(cxCdj2-os>CvD_YYAL7g)>-Z8KXC1&&^ z=le&!3MGN%PDXNrk=!ZBq5J6{^+BZWw3_oD+q4i_b{EjFR2K6Dp%YO9k3r5;`bWu7 zKm`Pt20@vHZSpl1)!G3n;JC1A^^sox328FWhnUtdOt+21G&V5zMolLo3+>P9Ry*09 z0}ok*hGOR&=psAQgz)@2a29kN&VWw9PW}_dhd&e0kfywxbJk@JBnFW9xbf$pF`&!p zL{KuI;;n1fj6;reU~5?*aVNq;+E!+lSKblJ8!`b$3MAgtF~mvDIk;iEzgyDPbqPAn zKp;^d<5|mTeb1>lyD|$g$_+U%H_U~5(ea3eb7#sx&nd0FLDTb|mXlW|e>_JJdSq=J z6Hezzb)>$H3L62dU}HTt?#ndqoEhFy0eZU4yFU%)0y0~UxJb81XBkaY;0(H zT{~Ts?LQ$-0h*N=OXZjH1+HS!N7Sm%8`T1kTh@?4RTa2SHq36&$d_+N{UI|`^Ro9MV*$ebhMxB9JmreX`fSjsNeDd`eg=B}`v9WsTEs4}7B znC>6Be^o%IB|TG_Qs<3B_1G9snC^hL{VJO;YYYvGaJ zQs)KKuAzu_othk8TT~|_n!yL#=XoZ2;21v!LR5F1dY&!S+v#i|t8cf}}7pKsY#|1tt-WX`Z8uC*6Hf>v>X3;|LB}F=S z{`EdxRz?@L1RUp9t*!zYyt97ro%I86e;!=M{dCS>U3+N7$r&&e+u#h_K>R`RvA|{} z^eD6`(n&=cbe@b1sN}K%M_^==d~=izrowyx_x+4t2GY;e&)aP#wjpI>a+&izA1=>- zy`U)cc20VeozB<&xIs(K_FVdQ`BM4&V7p80&JX}9(vZCS0xGJxBa;g_n{L$mhow?f z%5pyk*?NKN^2S79ynma(mH_8wwY7$~hRMYyo!V5yn?g?l%|L}AhKhJj#SJRtO-S%Y zz4uTuoo|W(d+!SdHcJINf1VM`DPbXOIh~&r1OE(%U!%hJbNDcAQNGzulQ*`NCJi4n ziPNcuE>EH@$z&*g(C9w|)3Yyg{*+-jE&BmObb(W4Jbch1RgLJz;tub7dZS-P6}Juj z9{SrU#5AP_I?e*TJ^yCu(sKDapl=0G1|#&TBis@lAwnqdtD~I@#0}1J*mAR0Y8Xl9 zL!8dU2RW9%4M*t=mIGt#;E2ymEzsXMl7L4pL(?*+R~`Hp!(Se}t{s=||K^|LAKLoYJza6T={$2bQ`f8Kn zHpz>pL!;FIz8>}Yg!K0g0iCmd7hC9zzEW*C;Fys*U~rlaRxi z(4AOE0|*?q!a#QJ!J;*JtTjnY^d4Yf;@F%Wn8Bzvk@^|L@)T;BjKuFkx`wlk&^Yi# z8QxwUjicj`1$hNJQBN0SLn>XEH;?zrYnd!M84xJOG1A}jkuGktfikLb%^#j`&`5f^ z1IvmQ%zo?`>6>&18{zP50G$z0R(`cUOx5@^VqbiSTglS!36!hq|Ctw|P$L*C*wvga(ot}=tt z91r~%$6o{E(^*X9;K?ctP&&W{-;zdH27vs31sml7fdAALu48?15gjv=9Uojl9kUSs zt4#O^LJDLWb(Xr5aoR9P1ePB^1Nere4=KZp+}Mek zVXHwSUQZ7oW@UaNwd%&kfdZfym_k_$dkyI!nFu8fY00F&}d?q`*W<6X^mo@c5r}LmF_P zo$g>n7wU0x?aZZ|!-`Demmv)$wbOYz&;3clrm>XGH?L^2xQT8sGxqI}S?3h&oClrz z3z?czJqfUu7IWy0K6h&1dNJ~m^J_BcF(Va+`GCaQwIH~HzC0I&2 z1a?v(&BBPIf^iuQQ$GGlxGS|}a}#DkyU||?>rr@NQz4Q%)^N{~LfQI*+a=si?8id6 zyfI6S_>KN2$KVR`98QV6bLQ#uN5L(6d*Vywvr|#ih5){g0n>3FrpB-`K^O84pj)Qw z$9CDm(b4e?;+WV#cVd0W1nYgks?9kl7WQdx39QuM;y0~a)^m7r5XhPnSft50Dh+z_ zGNj|%%C*mF*^(A8j19$YOVqR_##wyFq|ZW!5a2maPKLCvPqUhx(LJ*|^twtqJ%9ru z`E&>70&^3Tej#IBO>CCj-w%Js^R6=gYh zcFK$f!Px>$P8VxO9CAe_TlYIme7W^)AB9mQ>=o94k%Zx&i^8We_$23FQ0Ux?-7cTH z4QU#P(llihF4bJt%o$O6Qd`;~-!u((!nW z`>o-EB%L^V>I(ghcN^$}6!crm=z&daVouZdA`?%Wh7&hHv`p>E)RNSoGys3(H_xzB zBD*s=3aa6t4FUiwEy+qt62^S;(_zp_QP9^jRIG_v#{hn@$s5#WohUDrw}yddMuC3` zz^hjCLPLW5JQV5t$%Ju$pWztk4&*|P-E8zJOe2tY!vzM7(SHya($&Hwi9E79?~Gzz zoWTvi&rd0gzCi$f5fu|m1m)^H44e=6^%zjfQ!;Ryu8R6;4cm5bM0R;R$K=Tq#6#p$ z@=jJaDz)dnu~!nL-;te&KfIh7eJ5B%cbKaQ@pr3(<1td!iL7C|18as0Z`O*d$<7xL zET3tPBBoLX%>s@a+R2;b3}rSU{}w_EO&<>~WR8HAr4g3FnDNIfI%K#a*rg|6_e(c*6@3pkpio(= zs^q*OzMN$%(Yonsod9sE0_htx&SlV7z9%hgn`ndxwerdcgWGXPW!^8KWRF#d9jFjx zauQ%5{i;H26_^KE#<|8F$mS^LK0yC<5qOt197>E)oRe7p7OGCJASQBu{stN1+LLf4 zL7X^ZvYBKD8e?!egdt()c{=Jm<=bMtAa*`; z5#|n#X5hid$p0oI^JB&F=Zj1adEgR8>yM&+0j5y9x-@<`CA>2GetZGeu}zxb zqmaIc^33W+k8tK`^3wTZ2s6ydMlHcVFf^;?k|B2hkuj#6KIAY=Mph(8}a7se&Lse+yH5V5)$} zb-!#woY<`FM`-!)w=mXvFDT*-Ub)(PVf=;!em4B--=RIle|j4}Av569s~vNpCT9os z6Hib!+EhQ*72TiEKMEIX?5G|x!H#DWk`q7xx)X;C7$_;(71}^;r#kVxRlXbaIlsB7 zW}VUJg++JdF>jBoXXnB311iW;04Y@i<>$8HJa7Qn1a!*Y5Mz+S$nn~C>F9n&ESsd! zcQ>rsv~m}{k?h20WONog71&>-;1Me31>vfIEwDoA@Nm^Nuw%^UCNW_##fnt!=9T@U zJSvXtM`IqNR1g*DT=i_w5Ld)2mt;1{VQ5ZUWZz#{qC{UB6XVEv!~4c@SFp`HOA$^ISDh z>dha9BZFIk?m)$%GIn6Bw3y`Gsgaq!@desu@Hiyps?dMm77_Z5A8>;hi?)6k8at7* zK|C=7fwpjV2jf_AjjEWzbC(gNeCd6xwTElpzKlgnxcFCA%nTR1SZKmx@I56?jALSPd(8mwRkWTQggXeWboIe!Xq@fJZv7($A^ zk2?xK!e%ZGy~H1DGOzdc2e=>3zime5OtGX#PHMBsWS~bjwb_E0>f3DpXsZbI*-p>w zv;8x(&-U?*KHDd^v4_p4?ST?G?4Vwa>T2`5>|9y)0_sk51^s?}i-NfZe@i%L+rtFE z8prpG>a1=6bC(yfDksiMeXwJE_$}N>Ou&aRWT%~ZH1;HO{}RY=Js@(V8XmP$HVBwo zX1JvQTHFRf2$!u;&P|AxZBXvR5o~+H!4s|6vv5Ymo}Pc`DWk4v21{TUS`sq}zdACE ziIl|o8Erd|c6rT*s1gI*0nVng@Oh4ZSej1RprmzAkZlfZd(IEeuzH=B9N%nyOk2)kzKy^MvQ9Ex)0za^QufnFUDGd*{ga!($O7QNec~hZZ;lr z`3W>-oshfVMe6`nnhX}aD4=6c$gL!CG-WECXE(V{1PV2D2bM^oDfDOgwRf5BN%CEc z#r*xDCzy^{bY$)mI&ZHw^o#z{tR{fXv_MDZ>ALU<=pSI+7D7K`eu7Rw9_LimGW2DY zyQ#FBa32G^zr-c-#>jf1`r1zmQMo9m}n z*mFvHzkwV;kIZ&6n2~Ka3BoF6Ly|ljGJG9CA3kjKfA%>pPyxr#3Ot|-RA255v-+;+ z0K+G6wzvVo*`ltGXZBjL5BH4&pMhqS?4t{kNXcWga-a8JJl{D7K_-><(WM4jm^il3 zWb|*rx{uCRk8c9@fw*M=YZzOoH~MEVSUra|Fj(6@YB3PoURtq_ z7P81@p9bCicJB2bXFw%;=?!2}tyxOeaKEh`>q0jpPpmrsusAkn$UO$C*}iv`ne?He z;t|KTMM-Uky{B}uHQqOb;U2B@S8964;TN$_-xIV|woqP1~X*7|2_o zSG=VL1yFk}CdF${R6;+c6?;i8Gk&k}1ADNiQ%rg{Ieh77e?Co^*0s)`AHf{OZxb^e25Iu zOd{>|6eVehT~CS(UMontJdq7(*HfrCsCbVmym8y|iNn1xQGBXE20&=>hmHPXAYi!H zV)R>)P7vxnY2KGDZ7U}NnM{Da)DiTi3=%qlILbg`6x`jvzFEi=)@i7FY(Ok{DQ z@%I}ip6@e*n2o;OLJTRt1TLTNvtWaNC&rZ}U1Tu`+yVlhKane3Fn|q}ds*aXVvhmY z_(op7mIGUZ<6>%#7QxEnHDbYtzlcW8AulCP|A;NL3 zHR@h}q&9yKy340ADrRh1PjejZrV5Ai1eeZny!8R}gMj^h@u%FFSH=S6`BzZa+(hPVl zdX3j^5a`@o@W(0SE=Vq5wF#;d1)S+2(;l7Chl?`}APd3Y`SFzr?_o2rAQHrQinDLl z0etWyb^^vudv@T#3Z47><>1aU_>M&z(k>?rV#J3mLdPM;W6|d8V7rHIU~}BPDGiV>^}F@|NnvDfIp{(%QxVV6S&VEQTzMPI^OsQ%0@9 zzCcO=4s+&pB)u&UR&HN9Glw=MOARAFk5coS^K*_nxv z;||PaV~%1DPd4QbF=xRLWc*w#zlP-^RxZZ!pRjCaSB0K?Qn<1tgUZ^}HVk9F1F@L}$=@b@FYm<0FA<-yk!{y*kDA5N&-3#>(52EFBMi z`bC&BV*ocOUEc&B5?sa9lWkl1KFZFHsWQvtUtNQtKC3G*U|6;vp-^qU2|A215IM{H z#4R_-#jhz!s`72mQ_-4B{J@WI)$WY_DRxS8;l3g-j|=(N=kC z>rl?cE!F;G_ovbl29?}KOJ24(iQKBE zwxJxGyyaw4*euN&&K{yc=*OtW){v4WAhNkx1+Gc_EDJW#4#BK{i6od4)`s=Wn|os zz&Upgp}v=xwp|PQ;JKJ?^t}c#mgnMBqi-*SiJ;TlyN$o^?mX3jC|*%RdO87-k;?5D z5Vt{%Cl7*$EiA}NL_5gTh6y9mN!n_lv!5lcr?$=4wAntIoi2{2wqyj0$Fa6(p>H0B z|0UbE#kZAw;)AI366{MopXVEWXYlL^BI8OqG`g;RcD`s(Y%-PPZKHkN5=bYJW}`e{`%CYtA0MC&}zp+QC3zD(Y6ZTJ-L zJ$7n~M{EmnN(PO-MfmKxqzeP#0k(a3fo*9x3h6*rH^e7s!^gFZS^k$H?J)7LGbSn0 zDOzDrraO%fTO!BvcKH(%-xQ5wOf1cwKyjc1t_24YbY8)jcmj6FnSf%ye>7of-UO6?E0i$x=A$TKEpfm^@+$R`nb}L; zC@$G*UL9VWhQtd%g;qLK*(EPgAy z$LO1eGN>@2{Ih$+_`+>k5dCLa$MCW8LO^f#e4Z;V^5iZv`X&SWVffj(MqdXEZ+x*Q zI*#;xQwtl;-%P3!9|ymuK}xu zVdMTVhf!nnjYcvCL_L!6;ziUxJ;`SdGarG2f9Eo>b>Y)I-w^&OK!;D*pk7=1rN1(ps?1ys_j%sCzAUg;H{ z3}6Dz$r$!cM&A=aFZ!of6=`Uh{Fx!_pWcr3Pp=w%J|tYAOGz(Nrr^`S4AAl548Gm-Zq|XPSgeUY&Qg7pv>hL^c5;a% zfenHlb<@@)G6s6lQa!rF^{4{{2BM9=sI1x>8#;Ipw9a#nHdkE8*q^8w$$qfi=$aKA z!)2Cp9OenL;l3=`huI-ZC-w@iP*g#_svU_b22JP^dw0R#4r%bA&lyg(JO(c#kJzf@ z9~0xlr+ZpI0`+}f%hVSZ3s~)qFKX?y#Gqt32S@1dH^(yl<-=Wg_+Pm1;B1&TnDzY< ztu#=bmk|%fEP9EZ~MlD@~p} z@TiY#!&BJIP627fDHxPWc1<34%xO(jJ}QB!?YK2&+`(mmxfTkGJ*79*BAVJH7dYb%~uLA_{b$@ zZV-Y`cV>>zsa`#QX!y}ZbnfApFF553d;-B&DSxqsElhmz0gAG^J-NBY9o>Psp4?#9 zWen7}^F^y`1nzYz?nO8~+hOk}H1Me|#rKKxy_sX?PiNwCR}a@c+bIUMEx)$N(Ay*=_>T@vh{$$3@J&pb_D zK7YJiM!}PQ^5)syku_BP*6+S2na9;C16(}va$V#*z}X-^Z?+(QQvpYZg+QT>mgzb% z3juBr<`(%T9r@EyyA(QHP{b+zZqh4WPlnas08kQlV$&jN7(eYVg-zqq9z|KPs^v+%b<>^mP{zB6m^mzX#Dx&`!H#wXdM z9zp%$+4$sepT_9_Ujm+MrwSfHr~_KYc*j|Q1nv2Q_|qTZq7I9KCS26BqBdMKZG8`l zx^U4v+!KMc4FAb2CTwMSkHCL<#$$XkACnDfNC%WUu$A;|J%T%EhRY&;dmR3i?B)^KV!if2wct2Xia>p8gphZPTly}u{?7gR#G%N^I{HDzKY`0y$0Y<>z z0JuF+@fXIDtP=t0>5!p4>qz{|3vTc?vAs znbHp8|0yhb_J*~*W)0R5sEK?d#@@!P_&4??*WLp1#@Sy5Y%l+I3h96G6u_R{T_*no zBdJ4%I`qz34U4K8>@xl)0)LI}IlI6=0>i@DU-7ry`q}Tg^jnh9H2N*EcruqKMF!BzeoOJWGT?B<*57Kt?gKlkp+iV}^j(g8;$iOv%?;h&Q)X{>L7R4A z&Rfz40ow!5O#uuM!tvRwf31S=Ug0?apMkg>I4tA$9Hcjg;S%Sthp3p9QO@ig)<9uV zXDy1ju(;ESN-!Qp7O`il}3{M|Z%jeYe12r8|)5~glT1{m& z?NZY{YPw5J_p0gRYWkF#9#+#=)bxUyZdcO*H62vb-D>)Rnr>3lhtzbYnii?4MNQ|b z>1;L4RMTvha$o;K_&eSs!Q(Hmb52yX;-yT-*e^6JSM&dK{lCAM?+ZwV@QZ+!Qe{@- zlVCu*0{E8S=Fiw$fJJTRo^6pR4+nz?7so~19~^${FnX1?M>49wGP)vB!HtDaa1=p zrmt;muKBL}Y8>Ux=8dtWn;~a*0M5w>15MhRHLAYL2XlGq}J=T;MgtEO3M5=W9YzkUNuLv3iTQ*i>71x9b)MU7#-DqvaXG3*hq*dT zyt%Hv(UE}t8?k?5bJMzXtV(aHUhjyVL5164#@5(=W)6fLuIH?({SQsV-7Eq1427GG zU58`WNli5$+Q|o67Hk&pc(NruWfMDi0QTUE=Za|?sFHE z-G{1fE_YPBuoLv=K%4~j!Y8S=HGQ&0&>O^+jxMP7o620fB3! zb!L~NrP(FcgDmQs+@ecj9B`+ZTN)kJASJiMk(-d}&PWh4GN!@5bu~5VGc#sn%)s0< zbOq`4%^5Xs+$9dI*;0gBz!xY=A=?`~u0xR9}r@q%y>I{HnIAdxI34nmMPKvU3K{Q*A|nEC@o_h;Ymwpek{gbRjjzotrwV zHn*IKEEfk1SItNHkEoejEmn`HD3h8XBSkCh{MTlArHhToe|NUI1*Q|D7YSF5{8hS_ zAcXB57$Jm>6|*st5zOks5atKg-GY}of|M&vyUn(E-fhzogcQ8O^?XG^jwVDvp)b(v zaJhhu8(sB`Rk0pWH3Xbjv(#8?j!f;#Kx`4_lAmmajkvYBWwWb(ol}HL^YqNjZ1X&q z!(lFOt`j#_yBy|uVEeUf4NJq7Ctbk zVEJH-y>qb{I)eI%oAVgS4qTkDTZygAT2yf7l7hko#S50KK%bZ}Z^4o~ZRO?Wd5g=; z1!j9e*^&j;isFJYv%R9szPQ|m(LwdvnmT7=Q*&;MwBc$gNBsu#sn8l;;wPnM%ydrz z&*gH|Ib3S->;0A!`&T!D+SYEyc{hc{9aVHD43|r4i7|$-;vgKbHG$I+OC|nLE+aC{ z455{@9+}5j6E*9vqkUwxir+0(uWvE0uXjT%0+zn9UUZJ&27su}H$osFkoX)R++f-h z={{nH7^T%UHg9x<=YlQf#%iYdO(HCN)lIe2aGiw6N##*O1kPFQHp5zoD~k#p35&iA zQ|D@4AA?36kIw^?2~57ZaRYPCBPc}XRrApEsyWBBM7W+H9Ghkldg0y&_rWxN|6I*K z5mSfv_tmlo(!1dvx~d)TccD&!8$(e+6^{@N9EGon`@)rc-4!C?lyFsGBz!qo5k|%c z!qs6&xB`)k^x=_MK={%%ms%ou{Q2z#G35<#m&TN<;l3-TycX`eW6CvfZ;2^4!A)Yy zjd1@srd$X2Q!!=y+3G(~z7NH#8SYoEDi6lMOTw2glzA1J8_%^gyBQC732nM+W3#K) z&CBl1O*O37;X;9Ld%tu|`l`y9YqnDqTXLsO+qiLKhFA;R8raJ;ImBro6Ht5fD-ck* zGg_Q2a|GsVgvl&P7i-t2XPMCnY@9KDiuqsR2W2+1Kj2QA09Y+8Xo4*ouFh=XfXeE% z5V2vLnF?`QHG2Hq)Y`A~bF7CO!ZQI}>w@LQE2^xE%gSulB|>^S!`qn^CHT~u|3i3yb~)~rK*8Nt z10tN%1YB-j*HnKGMuM?KCH(7lMg(6_&GoRnuLCBkZRzRe)EeHkzG*{sV}0#aEhFjs zD$*j5Blxt;{O|LU!+bq+K+XxczJtraFmkYrY{l>cX@gJ*+|dTU zIYT<;Tdjc8%zJT%TP-%PzZu5|;Pg3ekbpTq-;8N<-Q=n&b)YKVWeUUp6`DiS;su4)74u6L+&MqpR+PSEZb?>p`NHCb>GPKqm8E0#vKiBb|EAZH zz0rKpK9Kcq1z}T6T`kltfx3rc>J0l~t@y3*FE9Nwf{+OJ&2VSHJqPYGxNDz@!aM-^ zhv5EUOx+WZe;V!=;eG|~x8auIJ_GkfxOKl11QXmzaNi7f8r(DCo&)zhxbK8}IoxaD zcEa5P_a?X>fO{Lk2gp(lluMdxrA9{)M1zf3 z*NAo484$Vdz|Wh=HBauCppg0NVqVwp)o zRncSjeuEYOT1pgb0sw%fbtg3ElsS-E0I51+U z!c$C_C~Ow0YB0hSgrHDW-wdJ4YE4yh6RYxRup7rQUdvWeAz523a`=hb8s=dI;WjO= zN!QlZG&Z{ddWNJlxsa2@8X=FRZefnL4xZVkq;-p~8szF@Ea!AV6vlGvA>jHc%e8D4gbvI#VdZYjF~H}w z8^RO9Ywy3l7um}0v=z^o&d!nHO57X0*Sj~=xJ2GEdGCMTJC@G>F4y&f`hU@6NKK9P K-*q%@7XCM~eOU?s diff --git a/mingw/bin/mingw32-gcc-4.3.3.exe b/mingw/bin/mingw32-gcc-4.3.3.exe deleted file mode 100644 index baa22769ab52131152a7c5cf2ba77fb418e4ae89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 193024 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
oPbyh?<4kvVxuw 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
oPbyh?<4kvVxuw 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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 deleted file mode 100644 index dfb8e934af..0000000000 --- a/mingw/include/sched.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * 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 deleted file mode 100644 index a3330a6388..0000000000 --- a/mingw/include/semaphore.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * 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 deleted file mode 100644 index ce6092287c..0000000000 --- a/mingw/info/cpp.info +++ /dev/null @@ -1,5349 +0,0 @@ -This is doc/cpp.info, produced by makeinfo version 4.8 from -../../gcc-4.3.3/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 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.1 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:: -* 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 - -* Assertions:: -* Obsolete once-only headers:: - - Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, -1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 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.1 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:: -* 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: Computed Includes, 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: Computed Includes, Next: Wrapper Headers, Prev: Once-Only Headers, Up: Header Files - -2.5 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.6 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.7 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. - - - -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. - - 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. - - Currently, CPP requires its input to be ASCII or UTF-8. The - execution character set may be controlled by the user, with 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 - and BeOS operating systems. - - 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 a number of 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. - -* Menu: - -* Assertions:: -* Obsolete once-only headers:: - - -File: cpp.info, Node: Assertions, Next: Obsolete once-only headers, Up: Obsolete Features - -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: Obsolete once-only headers, Prev: Assertions, Up: Obsolete Features - -11.3.2 Obsolete once-only headers ---------------------------------- - -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. - - In the Objective-C language, there is 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. -GCC permits the use of `#import' in C and C++ as well as Objective-C. -However, it is not in standard C or C++ and should therefore not be -used by portable programs. - - `#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: 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::. - -`-Wimport' - Warn the first time `#import' is used. - -`-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 Assertions::. - -`-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. - -`-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: Assertions. (line 41) -* #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: Obsolete once-only headers. - (line 10) -* #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: Assertions. (line 52) -* #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 525) -* ansi: Invocation. (line 311) -* C: Invocation. (line 577) -* 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 557) -* DEPENDENCIES_OUTPUT: Environment Variables. - (line 44) -* dI: Invocation. (line 566) -* dM: Invocation. (line 541) -* dN: Invocation. (line 563) -* fdirectives-only: Invocation. (line 433) -* fdollars-in-identifiers: Invocation. (line 455) -* fexec-charset: Invocation. (line 482) -* fextended-identifiers: Invocation. (line 458) -* finput-charset: Invocation. (line 495) -* fno-show-column: Invocation. (line 520) -* fno-working-directory: Invocation. (line 505) -* fpreprocessed: Invocation. (line 463) -* ftabstop: Invocation. (line 476) -* fwide-exec-charset: Invocation. (line 487) -* fworking-directory: Invocation. (line 505) -* H: Invocation. (line 622) -* help: Invocation. (line 614) -* I: Invocation. (line 71) -* I-: Invocation. (line 348) -* idirafter: Invocation. (line 390) -* imacros: Invocation. (line 381) -* imultilib: Invocation. (line 413) -* include: Invocation. (line 370) -* iprefix: Invocation. (line 397) -* iquote: Invocation. (line 425) -* isysroot: Invocation. (line 409) -* isystem: Invocation. (line 417) -* iwithprefix: Invocation. (line 403) -* iwithprefixbefore: Invocation. (line 403) -* M: Invocation. (line 183) -* MD: Invocation. (line 272) -* MF: Invocation. (line 218) -* MG: Invocation. (line 227) -* MM: Invocation. (line 208) -* MMD: Invocation. (line 288) -* MP: Invocation. (line 237) -* MQ: Invocation. (line 263) -* MT: Invocation. (line 249) -* nostdinc: Invocation. (line 360) -* nostdinc++: Invocation. (line 365) -* o: Invocation. (line 82) -* OBJC_INCLUDE_PATH: Environment Variables. - (line 18) -* P: Invocation. (line 570) -* pedantic: Invocation. (line 173) -* pedantic-errors: Invocation. (line 178) -* remap: Invocation. (line 609) -* std=: Invocation. (line 311) -* SUNPRO_DEPENDENCIES: Environment Variables. - (line 60) -* target-help: Invocation. (line 614) -* traditional-cpp: Invocation. (line 602) -* trigraphs: Invocation. (line 606) -* U: Invocation. (line 62) -* undef: Invocation. (line 66) -* v: Invocation. (line 618) -* version: Invocation. (line 631) -* w: Invocation. (line 169) -* Wall: Invocation. (line 88) -* Wcomment: Invocation. (line 96) -* Wcomments: Invocation. (line 96) -* Wendif-labels: Invocation. (line 146) -* Werror: Invocation. (line 159) -* Wimport: Invocation. (line 119) -* Wsystem-headers: Invocation. (line 163) -* Wtraditional: Invocation. (line 113) -* Wtrigraphs: Invocation. (line 101) -* Wundef: Invocation. (line 122) -* Wunused-macros: Invocation. (line 127) -* x: Invocation. (line 295) - - -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: Assertions. (line 6) -* assertions, canceling: Assertions. (line 52) -* 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 482) -* character set, input: Invocation. (line 495) -* character set, wide execution: Invocation. (line 487) -* 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 183) -* 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 183) -* 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 15) -* 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: Assertions. (line 19) -* 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: Assertions. (line 30) -* 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: Top1071 -Node: Overview3767 -Node: Character sets6588 -Ref: Character sets-Footnote-18771 -Node: Initial processing8952 -Ref: trigraphs10511 -Node: Tokenization14713 -Ref: Tokenization-Footnote-121849 -Node: The preprocessing language21960 -Node: Header Files24838 -Node: Include Syntax26718 -Node: Include Operation28355 -Node: Search Path30203 -Node: Once-Only Headers33393 -Node: Computed Includes35038 -Node: Wrapper Headers38182 -Node: System Headers40608 -Node: Macros42658 -Node: Object-like Macros43799 -Node: Function-like Macros47389 -Node: Macro Arguments49005 -Node: Stringification53150 -Node: Concatenation56356 -Node: Variadic Macros59464 -Node: Predefined Macros64251 -Node: Standard Predefined Macros64839 -Node: Common Predefined Macros70775 -Node: System-specific Predefined Macros83462 -Node: C++ Named Operators85483 -Node: Undefining and Redefining Macros86447 -Node: Directives Within Macro Arguments88551 -Node: Macro Pitfalls90099 -Node: Misnesting90632 -Node: Operator Precedence Problems91744 -Node: Swallowing the Semicolon93610 -Node: Duplication of Side Effects95633 -Node: Self-Referential Macros97816 -Node: Argument Prescan100225 -Node: Newlines in Arguments103979 -Node: Conditionals104930 -Node: Conditional Uses106760 -Node: Conditional Syntax108118 -Node: Ifdef108438 -Node: If111599 -Node: Defined113903 -Node: Else115186 -Node: Elif115756 -Node: Deleted Code117045 -Node: Diagnostics118292 -Node: Line Control119909 -Node: Pragmas123713 -Node: Other Directives127983 -Node: Preprocessor Output129033 -Node: Traditional Mode132234 -Node: Traditional lexical analysis133292 -Node: Traditional macros135795 -Node: Traditional miscellany139597 -Node: Traditional warnings140594 -Node: Implementation Details142791 -Node: Implementation-defined behavior143412 -Ref: Identifier characters144145 -Node: Implementation limits147230 -Node: Obsolete Features149904 -Node: Assertions150359 -Node: Obsolete once-only headers152900 -Node: Differences from previous versions154635 -Node: Invocation158843 -Ref: Wtrigraphs163295 -Ref: dashMF168126 -Ref: fdollars-in-identifiers177509 -Node: Environment Variables185342 -Node: GNU Free Documentation License188308 -Node: Index of Directives210741 -Node: Option Index212670 -Node: Concept Index218854 - -End Tag Table diff --git a/mingw/info/cppinternals.info b/mingw/info/cppinternals.info deleted file mode 100644 index 766e706aa9..0000000000 --- a/mingw/info/cppinternals.info +++ /dev/null @@ -1,1036 +0,0 @@ -This is doc/cppinternals.info, produced by makeinfo version 4.8 from -../../gcc-4.3.3/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 deleted file mode 100644 index 0a08abe6ce..0000000000 --- a/mingw/info/gcc.info +++ /dev/null @@ -1,42252 +0,0 @@ -This is doc/gcc.info, produced by makeinfo version 4.8 from -../../gcc-4.3.3/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 "GNU General Public License" and "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 "GNU General Public License" and "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 (4.3.3-tdm-1 mingw32) version 4.3.3. 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.3/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. - -2.4 Treelang language -===================== - -There is no standard for treelang, which is a sample language front end -for GCC. Its only purpose is as a sample for people wishing to write a -new language for GCC. The language is documented in -`gcc/treelang/treelang.texi' which can be turned into info or HTML -format. - - *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: `-dr' is very different from `-d -r'. - - 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 @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++ -Wno-deprecated -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 -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual - -Wchar-subscripts -Wclobbered -Wcomment - -Wconversion -Wcoverage-mismatch -Wno-deprecated-declarations - -Wdisabled-optimization -Wno-div-by-zero - -Wempty-body -Wno-endif-labels - -Werror -Werror=* - -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 - -Wno-format-extra-args -Wformat-nonliteral - -Wformat-security -Wformat-y2k -Wignored-qualifiers - -Wimplicit -Wimplicit-function-declaration -Wimplicit-int - -Wimport -Wno-import -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-multichar -Wnonnull -Wno-overflow - -Woverlength-strings -Wpacked -Wpadded - -Wparentheses -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 - -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-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-salias - -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 - -ftest-coverage -ftime-report -fvar-tracking - -g -gLEVEL -gcoff -gdwarf-2 - -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ - -fno-merge-debug-strings -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-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 -fcprop-registers -fcrossjumping -fcse-follow-jumps - -fcse-skip-blocks -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 -finline-functions - -finline-functions-called-once -finline-limit=N - -finline-small-functions -fipa-cp -fipa-matrix-reorg -fipa-pta - -fipa-pure-const -fipa-reference -fipa-struct-reorg - -fipa-type-escape -fivopts -fkeep-inline-functions -fkeep-static-consts - -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-generate -fprofile-use -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 - -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-ccp - -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce - -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im - -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize - -ftree-parallelize-loops=N -ftree-pre -ftree-reassoc -ftree-salias - -ftree-sink -ftree-sra -ftree-store-ccp -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 - -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 - - _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 - - _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 - - _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 -mcld -mcx16 -msahf -mrecip - -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 - -msse4a -m3dnow -mpopcnt -mabm -msse5 - -mthreads -mno-align-stringops -minline-all-stringops - -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 - - _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 - - _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 - -mips16 -mno-mips16 -mflip-mips16 - -minterlink-mips16 -mno-interlink-mips16 - -mabi=ABI -mabicalls -mno-abicalls - -mshared -mno-shared -mxgot -mno-xgot -mgp32 -mgp64 - -mfp32 -mfp64 -mhard-float -msoft-float - -msingle-float -mdouble-float -mdsp -mno-dsp -mdspr2 -mno-dspr2 - -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-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 - - _MT Options_ - -mno-crt0 -mbacc -msim - -march=CPU-TYPE - - _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 - - _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 - -mstring -mno-string -mupdate -mno-update - -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 - -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 -mwindiss -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 -misize -minline-ic_invalidate -mpadstruct -mspace - -mprefergot -musermode -multcost=NUMBER -mdiv=STRATEGY - -mdivsi3_libfunc=NAME - -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. - - _Xstormy16 Options_ - -msim - - _Xtensa Options_ - -mconst16 -mno-const16 - -mfused-madd -mno-fused-madd - -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.FOR' - Fixed form Fortran source code which should not be preprocessed. - -`FILE.F' -`FILE.fpp' -`FILE.FPP' - Fixed form Fortran source code which must be preprocessed (with - the traditional preprocessor). - -`FILE.f90' -`FILE.f95' - Free form Fortran source code which should not be preprocessed. - -`FILE.F90' -`FILE.F95' - 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 - f95 f95-cpp-input - java - treelang - -`-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 a specific class. - The class can be one of `optimizers', `warnings', `target', - `params', or LANGUAGE: - - `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. - - It is possible to further refine the output of the `--help=' - option by adding a comma separated list of qualifiers after the - class. These can be any from the following list: - - `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 - - A class can also be used as a qualifier, 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: - - -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. - -`@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 specifing 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 - specifing 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.3/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 this 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++ 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