Commit 30013b4f authored by Chris Pickett's avatar Chris Pickett

Fixed MS static analysis warnings

Cleaned up a few warnings to allow VS2012 to compile idl_parser and idl_gen_text (for exporting binary protobuf blobs as JSON) cleanly under static analysis.
parent a6a38f60
...@@ -210,6 +210,9 @@ inline void EnsureDirExists(const std::string &filepath) { ...@@ -210,6 +210,9 @@ inline void EnsureDirExists(const std::string &filepath) {
auto parent = StripFileName(filepath); auto parent = StripFileName(filepath);
if (parent.length()) EnsureDirExists(parent); if (parent.length()) EnsureDirExists(parent);
#ifdef _WIN32 #ifdef _WIN32
#ifdef _MSC_VER
#pragma warning(suppress: 6031)
#endif
_mkdir(filepath.c_str()); _mkdir(filepath.c_str());
#else #else
mkdir(filepath.c_str(), S_IRWXU|S_IRGRP|S_IXGRP); mkdir(filepath.c_str(), S_IRWXU|S_IRGRP|S_IXGRP);
......
...@@ -191,7 +191,7 @@ std::string Parser::TokenToStringId(int t) { ...@@ -191,7 +191,7 @@ std::string Parser::TokenToStringId(int t) {
// Parses exactly nibbles worth of hex digits into a number, or error. // Parses exactly nibbles worth of hex digits into a number, or error.
CheckedError Parser::ParseHexNum(int nibbles, int64_t *val) { CheckedError Parser::ParseHexNum(int nibbles, int64_t *val) {
for (int i = 0; i < nibbles; i++) for (int i = 0; i < nibbles; i++)
if (!isxdigit(cursor_[i])) if (!isxdigit(static_cast<const unsigned char>(cursor_[i])))
return Error("escape code must be followed by " + NumToString(nibbles) + return Error("escape code must be followed by " + NumToString(nibbles) +
" hex digits"); " hex digits");
std::string target(cursor_, cursor_ + nibbles); std::string target(cursor_, cursor_ + nibbles);
...@@ -214,7 +214,7 @@ CheckedError Parser::Next() { ...@@ -214,7 +214,7 @@ CheckedError Parser::Next() {
case '{': case '}': case '(': case ')': case '[': case ']': case '{': case '}': case '(': case ')': case '[': case ']':
case ',': case ':': case ';': case '=': return NoError(); case ',': case ':': case ';': case '=': return NoError();
case '.': case '.':
if(!isdigit(*cursor_)) return NoError(); if(!isdigit(static_cast<const unsigned char>(*cursor_))) return NoError();
return Error("floating point constant can\'t start with \".\""); return Error("floating point constant can\'t start with \".\"");
case '\"': case '\"':
case '\'': case '\'':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment