From de0d74dc68e59312fa293eb53f3002de9b7b5208 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Thu, 6 Aug 2009 17:04:36 +0200 Subject: [PATCH] Forgot to add files. --- gen/warnings.cpp | 33 +++++++++++++++++++++++++++++++++ gen/warnings.h | 6 ++++++ 2 files changed, 39 insertions(+) create mode 100644 gen/warnings.cpp create mode 100644 gen/warnings.h diff --git a/gen/warnings.cpp b/gen/warnings.cpp new file mode 100644 index 00000000..cbb33835 --- /dev/null +++ b/gen/warnings.cpp @@ -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 --git a/gen/warnings.h b/gen/warnings.h new file mode 100644 index 00000000..13ed63c1 --- /dev/null +++ b/gen/warnings.h @@ -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__