-
-
Notifications
You must be signed in to change notification settings - Fork 258
/
warnings.cpp
39 lines (33 loc) · 1.01 KB
/
warnings.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//===-- 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 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<char*>(strexp->string);
for (size_t i = 0; i < strexp->len; ++i)
{
// TODO
}
#endif
}