diff options
Diffstat (limited to 'lib/Sema/SemaChecking.cpp')
-rw-r--r-- | lib/Sema/SemaChecking.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp index 9305ff7562..2a5136ee9d 100644 --- a/lib/Sema/SemaChecking.cpp +++ b/lib/Sema/SemaChecking.cpp @@ -1036,6 +1036,14 @@ void Sema::CheckPrintfString(const StringLiteral *FExpr, const Expr *OrigFormatExpr, const CallExpr *TheCall, bool HasVAListArg, unsigned format_idx, unsigned firstDataArg) { + + static bool UseAlternatePrintfChecking = false; + if (UseAlternatePrintfChecking) { + AlternateCheckPrintfString(FExpr, OrigFormatExpr, TheCall, + HasVAListArg, format_idx, firstDataArg); + return; + } + const ObjCStringLiteral *ObjCFExpr = dyn_cast<ObjCStringLiteral>(OrigFormatExpr); @@ -1059,7 +1067,7 @@ void Sema::CheckPrintfString(const StringLiteral *FExpr, << OrigFormatExpr->getSourceRange(); return; } - + // We process the format string using a binary state machine. The // current state is stored in CurrentState. enum { @@ -1271,6 +1279,15 @@ void Sema::CheckPrintfString(const StringLiteral *FExpr, } } +void +Sema::AlternateCheckPrintfString(const StringLiteral *FExpr, + const Expr *OrigFormatExpr, + const CallExpr *TheCall, bool HasVAListArg, + unsigned format_idx, unsigned firstDataArg) { + + +} + //===--- CHECK: Return Address of Stack Variable --------------------------===// static DeclRefExpr* EvalVal(Expr *E); |