MCPP(1) Commands for GCC MCPP(1)
NAME
mcpp - Matsui CPP, an alternative C preprocessor
SYNOPSIS
mcpp [options] [<infile> [<outfile>]]
DESCRIPTION
mcpp is a C/C++ preprocessor with the highest conformance which imple-
ments C90, C99 and C++98. mcpp has plentiful diagnostics and many
#pragmas. It is useful to check portability of your program, and also
useful to debug complicated macro. This is a man-page for mcpp of GCC-
specific-build.
OPTIONS
mcpp expects two file names as arguments, <infile> and <outfile>. If
not specified, <infile> defaults to standard input and <outfile>
defaults to standard output.
It takes the following options.
Commonly used options:
-$, -fno-dollars-in-identifiers
Forbid '$' in identifiers.
-@MODE Specify preprocessing mode. MODE should be one of these 4:
-@std
Standard conforming mode. (default)
-@poststd, -@post
special 'post-Standard' mode.
-@kr
K&R 1st mode.
-@oldprep, -@old
"old_preprocessor" mode (i.e. "Reiser model" cpp).
-@compat
Standard 'compatible' mode.
-b Output #line lines in C source style (default: GCC style).
-C Output also comments.
-D <macro>[=<value>]
Define <macro> as <value> (default:1).
-D <macro(args)>[=<replace>]
Define <macro(args)> as <replace>.
-dM, -dD
Dump all current macro definitions to output stream.
-e <encoding>
Change the default multi-byte character encoding to one of:
euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.
-finput-charset=<encoding>
Same as -e <encoding>. (Do not insert spaces around '=').
-f[no-]working-directory
(Don't) emit #line marks with current working directory.
-fstack-protector[-all]
Add defines for GCC stack protector.
-f[no-]exceptions
(Don't) add define for exception support.
-fpic, -fPIC, -fpie, -fPIE
Add defines for PIC/PIE code.
-I <directory>
Add <directory> to the #include search list.
-I- Unset system or site specific include directories.
-include <file>
Include the <file> prior to the main input file.
-isystem <dir>
Look for include files in DIR, if not found in -I's.
-iquote <dir>
Look for #include "file" (with quotes) in DIR.
-j Do not output the source line in diagnostics.
-k Keep white spaces of input lines as they are.
-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file
Output source file dependency line for makefile.
-m32 Change target CPU from x86_64, ppc64 to i386, ppc, respectively.
-m64 Change target CPU from i386, ppc to x86_64, ppc64, respectively.
-[no-]mmx
(Un-)define __MMX__.
-N Don't predefine any non-standard macros.
-nostdinc
Unset system or site specific include directories.
-o <file>
Output to <file>.
-P Don't output #line lines.
-Q Output diagnostics to "mcpp.err" (default:stderr).
-U <macro>
Undefine <macro>.
-undef Same as -N.
-v Show version of mcpp.
-W <level>
Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).
-w Same as -W0.
-z Don't output the included file, only defining macros.
Options available with -@std (default) or -@poststd options:
-+ Process C++ source.
-2 Enable digraphs.
-digraphs
Enable digraphs.
-h <n> Re-define the pre-defined macro __STDC_HOSTED__ as <n>.
-lang-c89
Same as -S1.
-lang-c99, -lang-c9x
Same as -S199901L.
-lang-c++
Same as -+.
-lang-asm
Same as -a.
-pedantic, -pedantic-errors
Same as -W7.
-S <n> Redefine __STDC__ to <n>, undefine old style macros.
-std=<STANDARD>
Specify the standard to which the code should conform. <STAN-
DARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.
iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).
-V <n> Redefine __STDC_VERSION__ or __cplusplus to <n>.
C with -V199901L specifies C99 mode.
C++ with -V199901L specifies C99 compatible mode.
-x c++ Same as -+.
Options available with only -@std (default) option:
-@compat
Expand recursive macro more than Standard.
-3 Enable trigraphs.
-trigraphs
Enable trigraphs.
-K Embed macro annotations into comments.
Options available with -@std (default), -@kr or -@oldprep options:
-lang-asm
Same as -x assembler-with-cpp.
-x assembler-with-cpp
Process "assembler" source.
Option available on Mac OS X / Apple-GCC:
-arch <arch>
Change the target to <arch> (one of i386, x86_64, ppc and
ppc64).
Option available on CygWIN:
-mno-cygwin
Change include directory and predefined macros for msvcrt.dll
rather than cygwin1.dll.
PRAGMA
mcpp has the following #pragma directives.
#pragma once
Read the header file only once even if multiply #included.
#pragma __setlocale( "encoding")
Specify the multibyte character encoding to "encoding". See -e
option for the encodings.
#pragma MCPP put_defines
Putout all the macro definitions currently valid.
#pragma MCPP debug <args>
Start to putout debugging informations.
<args> should be one or more of:
token expand macro_call path if expression memory getc
#pragma MCPP end_debug <args>
Stop to putout debugging informations.
<args> are the same with 'debug'.
No argument specifies all arguments.
#pragma MCPP push_macro( "MACRO")
Save the macro definition to the stack.
#pragma MCPP pop_macro( "MACRO")
Retrieve the macro definition from the stack.
#pragma MCPP preprocess
"Pre-preprocess" the following header files for mcpp.
#pragma MCPP warning any message
Putout warning "any message".
VERSION
MCPP V.2.7 (2008/03) for GCC
SEE ALSO
The full documentation for mcpp are maintained as html files. Please
see mcpp-manual.html.
alternative CPP Mar 2008 MCPP(1)