# HG changeset patch # User Tomas Lindquist Olsen # Date 1249571076 -7200 # Node ID a591aa6bd6dc9ffb32b1ae90662f35d9ece8a4bd # Parent f1f33c8dcd900ae42f7221137d426c1d4dc05186 Forgot to add files. diff -r f1f33c8dcd90 -r a591aa6bd6dc gen/warnings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gen/warnings.cpp Thu Aug 06 17:04:36 2009 +0200 @@ -0,0 +1,33 @@ +#include "mars.h" +#include "mtype.h" +#include "expression.h" + +#include "gen/warnings.h" + +void warnInvalidPrintfCall(Loc loc, Expression* arguments, size_t nargs) +{ + Expression* arg = arguments; + + // make sure first argument is a string literal, or we can't do much + // TODO make it smarter ? + if (arg->op != TOKstring) + return; // assume valid + + StringExp* strexp = (StringExp*)arg; + + // not wchar or dhar + if (strexp->sz != 1) + { + warning(loc, "printf does not support wchar and dchar strings"); + return; + } + +#if 0 + // check the format string + const char* str = (char*)strexp->string; + for (size_t i = 0; i < strexp->len; ++i) + { + // TODO + } +#endif +} diff -r f1f33c8dcd90 -r a591aa6bd6dc gen/warnings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gen/warnings.h Thu Aug 06 17:04:36 2009 +0200 @@ -0,0 +1,6 @@ +#ifndef __LDC_GEN_WARNINGS_H__ +#define __LDC_GEN_WARNINGS_H__ + +void warnInvalidPrintfCall(Loc loc, Expression* arguments, size_t nargs); + +#endif // __LDC_GEN_WARNINGS_H__