Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Forgot to add files.

  • Loading branch information...
commit de0d74dc68e59312fa293eb53f3002de9b7b5208 1 parent 84f820b
@lindquist lindquist authored
Showing with 39 additions and 0 deletions.
  1. +33 −0 gen/warnings.cpp
  2. +6 −0 gen/warnings.h
View
33 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
+}
View
6 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__
Please sign in to comment.
Something went wrong with that request. Please try again.