[cfe-commits] [PATCH] Disallow __has_include and __has_include_next outside of preprocessor directives
Dmitri Gribenko
gribozavr at gmail.com
Tue Jan 15 14:46:12 PST 2013
On Wed, Jan 16, 2013 at 12:37 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> This patch addresses PR14837, so that __has_include and
> __has_include_next do not work outside of preprocessor directives.
> This fixes a failing assertion, as well as clarifies the behavior (I
> can update the public docs if we think it's desirable). Patch
> Includes test cases.
Mechanical issues:
+ if (PP.getCurrentLexer()->isParsingPreprocessorDirective())
PP.getCurrentLexer()->LexIncludeFilename(Tok);
+ else {
Indentation is funny on the "PP" line.
+ PP.Diag( SLoc, diag::err_pp_directive_required ) << II->getName();
No spaces after "(" and before ")", please.
Why not reject these cases with error at the very beginning of the
function or in the caller, Preprocessor::ExpandBuiltinMacro?
Dmitri
--
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
More information about the cfe-commits
mailing list