The docs for preprocessor -dD flag states `D' Like `M' except in two respects: it does _not_ include the predefined macros
So one would expect -dD and -dM to differ substantially. But.... ([EMAIL PROTECTED]) ~ $ gcc -E -dM -x c /dev/null | sort >/tmp/t1 ([EMAIL PROTECTED]) ~ $ gcc -E -dD -x c /dev/null | sort >/tmp/t2 ([EMAIL PROTECTED]) ~ $ diff /tmp/t[12] 0a1,4 > # 1 "<built-in>" > # 1 "<command-line>" > # 1 "/dev/null" > # 1 "/dev/null" ([EMAIL PROTECTED]) ~ $ wc /tmp/t[12] 111 340 3482 /tmp/t1 115 352 3552 /tmp/t2 226 692 7034 total ([EMAIL PROTECTED]) ~ $ gcc --version gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7) -- Summary: gcc -E -dD prints predefined macros, contrary to docs Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: martinrb at google dot com GCC host triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37549