mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-01 15:40:55 +03:00
38 lines
1,012 B
C++
38 lines
1,012 B
C++
//===-- warnings.cpp ------------------------------------------------------===//
|
||
//
|
||
// LDC – the LLVM D compiler
|
||
//
|
||
// This file is distributed under the BSD-style LDC license. See the LICENSE
|
||
// file for details.
|
||
//
|
||
//===----------------------------------------------------------------------===//
|
||
|
||
#include "gen/warnings.h"
|
||
#include "mtype.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<StringExp *>(arg);
|
||
|
||
// not wchar or dchar
|
||
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<char*>(strexp->string);
|
||
for (size_t i = 0; i < strexp->len; ++i)
|
||
{
|
||
// TODO
|
||
}
|
||
#endif
|
||
}
|