//===-- warnings.cpp ------------------------------------------------------===// // // LDC – the LLVM D compiler // // This file is distributed under the BSD-style LDC license. See the LICENSE // file for details. // //===----------------------------------------------------------------------===// #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 = static_cast(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 = static_cast(strexp->string); for (size_t i = 0; i < strexp->len; ++i) { // TODO } #endif }