Scroll to navigation

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 implements 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.
Output #line lines in C source style (default: GCC style).
Output also comments.
Define <macro> as <value> (default:1).
Define <macro(args)> as <replace>.
Dump all current macro definitions to output stream.
Change the default multi-byte character encoding to one of: euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.
Same as -e <encoding>. (Do not insert spaces around '=').
(Don't) emit #line marks with current working directory.
Add defines for GCC stack protector.
(Don't) add define for exception support.
Add defines for PIC/PIE code.
Add <directory> to the #include search list.
Unset system or site specific include directories.
Include the <file> prior to the main input file.
Look for include files in DIR, if not found in -I's.
Look for #include "file" (with quotes) in DIR.
Do not output the source line in diagnostics.
Keep white spaces of input lines as they are.
Output source file dependency line for makefile.
Change target CPU from x86_64, ppc64 to i386, ppc, respectively.
Change target CPU from i386, ppc to x86_64, ppc64, respectively.
-[no-]mmx
(Un-)define __MMX__.
Don't predefine any non-standard macros.
Unset system or site specific include directories.
Output to <file>.
Don't output #line lines.
Output diagnostics to "mcpp.err" (default:stderr).
Undefine <macro>.
Same as -N.
Show version of mcpp.
Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).
Same as -W0.
Don't output the included file, only defining macros.

Options available with -@std (default) or -@poststd options:

-+
Process C++ source.
-2
Enable digraphs.
Enable digraphs.
Re-define the pre-defined macro __STDC_HOSTED__ as <n>.
Same as -S1.
Same as -S199901L.
Same as -+.
Same as -a.
Same as -W7.
Redefine __STDC__ to <n>, undefine old style macros.
Specify the standard to which the code should conform. <STANDARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.
iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).
Redefine __STDC_VERSION__ or __cplusplus to <n>.
C with -V199901L specifies C99 mode.
C++ with -V199901L specifies C99 compatible mode.
Same as -+.

Options available with only -@std (default) option:

-@compat
Expand recursive macro more than Standard.
-3
Enable trigraphs.
Enable trigraphs.
Embed macro annotations into comments.

Options available with -@std (default), -@kr or -@oldprep options:

Same as -x assembler-with-cpp.
Process "assembler" source.

Option available on Mac OS X / Apple-GCC:

Change the target to <arch> (one of i386, x86_64, ppc and ppc64).

Option available on 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.

Mar 2008 alternative CPP