This patch makes clang predefine some macros even when asked not to by the -undef flag. I found real-world code which passes -undef and then tests for these macros.<div><br></div><div>$ gcc -undef -dM -E -<div>#define __STDC_HOSTED__ 1</div>

<div>#define __STDC__ 1</div><div>$ gcc -undef -dM -E -x assembler-with-cpp -</div><div>#define __ASSEMBLER__ 1</div><div>#define __STDC_HOSTED__ 1</div><div>#define __STDC__ 1</div></div><div><div>$ gcc-4.6 -undef -dM -E -x assembler-with-cpp - -ffreestanding</div>

<div>#define __ASSEMBLER__ 1</div><div>#define __STDC_HOSTED__ 0</div><div>#define __STDC__ 1</div></div><div><br></div><div>Please review!</div><div><br></div><div>Nick</div><div><br></div>