changeset 1568:a591aa6bd6dc

Forgot to add files.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Thu, 06 Aug 2009 17:04:36 +0200
parents f1f33c8dcd90
children 755abafbf25d
files gen/warnings.cpp gen/warnings.h
diffstat 2 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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
+}
--- /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__