Small fixes to prevent runtime exceptions on MSVCRT

Hi,

The attached patch fixes some debug assertions that the msvcrt throws:

1)
- if (isprint(value) && value < 256) {
+ if (value < 256 && isprint(value)) {

isprint() does an assertion check of its own for value < 256; check value before calling it to prevent it.

2)
- Stmt->Names.push_back(std::string(&data[0], data.size()));
+ if (data.size() == 0)
+ Stmt->Names.push_back(std::string());
+ else
+ Stmt->Names.push_back(std::string(&data[0], data.size()));

If data.size() == 0 then data[0] throws "out of range" assertion.

clang-runtime-exc-fix.zip (534 Bytes)

clang-runtime-exc-fix.patch (1003 Bytes)