Commit 1fabc0f6 by John Kessenich Committed by GitHub

Merge pull request #548 from baldurk/vs2010-compile-fixes

VS2010 compile fixes
parents bf8a6ef7 486d9e44
...@@ -75,6 +75,7 @@ public: ...@@ -75,6 +75,7 @@ public:
#if !defined (use_cpp11) #if !defined (use_cpp11)
#include <cstdio> #include <cstdio>
#include <cstdint>
namespace spv { namespace spv {
class spirvbin_t : public spirvbin_base_t class spirvbin_t : public spirvbin_base_t
......
...@@ -797,7 +797,7 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant) ...@@ -797,7 +797,7 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant)
spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16); spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16);
spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0); spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0);
fVal.castTo(f16Val, spvutils::round_direction::kToZero); fVal.castTo(f16Val, spvutils::kRoundToZero);
unsigned value = f16Val.value().getAsFloat().get_value(); unsigned value = f16Val.value().getAsFloat().get_value();
......
...@@ -673,11 +673,11 @@ void CompileAndLinkShaderFiles() ...@@ -673,11 +673,11 @@ void CompileAndLinkShaderFiles()
// they are all getting linked together.) // they are all getting linked together.)
glslang::TWorkItem* workItem; glslang::TWorkItem* workItem;
while (Worklist.remove(workItem)) { while (Worklist.remove(workItem)) {
ShaderCompUnit compUnit = { ShaderCompUnit compUnit(
FindLanguage(workItem->name), FindLanguage(workItem->name),
workItem->name, workItem->name,
ReadFileData(workItem->name.c_str()) ReadFileData(workItem->name.c_str())
}; );
if (! compUnit.text) { if (! compUnit.text) {
usage(); usage();
......
...@@ -68,6 +68,10 @@ inline long long int strtoll (const char* str, char** endptr, int base) ...@@ -68,6 +68,10 @@ inline long long int strtoll (const char* str, char** endptr, int base)
{ {
return _strtoi64(str, endptr, base); return _strtoi64(str, endptr, base);
} }
inline unsigned long long int strtoull (const char* str, char** endptr, int base)
{
return _strtoui64(str, endptr, base);
}
inline long long int atoll (const char* str) inline long long int atoll (const char* str)
{ {
return strtoll(str, NULL, 10); return strtoll(str, NULL, 10);
......
...@@ -361,7 +361,7 @@ const TFunction* TParseContextBase::selectFunction( ...@@ -361,7 +361,7 @@ const TFunction* TParseContextBase::selectFunction(
return viableCandidates.front(); return viableCandidates.front();
// 4. find best... // 4. find best...
auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2){ auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool {
// is call -> can2 better than call -> can1 for any parameter // is call -> can2 better than call -> can1 for any parameter
bool hasBetterParam = false; bool hasBetterParam = false;
for (int param = 0; param < call.getParamCount(); ++param) { for (int param = 0; param < call.getParamCount(); ++param) {
......
...@@ -4873,7 +4873,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu ...@@ -4873,7 +4873,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu
symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
// can 'from' convert to 'to'? // can 'from' convert to 'to'?
const auto convertible = [this](const TType& from, const TType& to) { const auto convertible = [this](const TType& from, const TType& to) -> bool {
if (from == to) if (from == to)
return true; return true;
if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) if (from.isArray() || to.isArray() || ! from.sameElementShape(to))
...@@ -4884,7 +4884,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu ...@@ -4884,7 +4884,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu
// Is 'to2' a better conversion than 'to1'? // Is 'to2' a better conversion than 'to1'?
// Ties should not be considered as better. // Ties should not be considered as better.
// Assumes 'convertible' already said true. // Assumes 'convertible' already said true.
const auto better = [](const TType& from, const TType& to1, const TType& to2) { const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool {
// 1. exact match // 1. exact match
if (from == to2) if (from == to2)
return from != to1; return from != to1;
......
...@@ -1330,7 +1330,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op ...@@ -1330,7 +1330,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
const auto getMember = [&](bool flatten, TIntermTyped* node, const auto getMember = [&](bool flatten, TIntermTyped* node,
const TVector<TVariable*>& memberVariables, int member, const TVector<TVariable*>& memberVariables, int member,
TOperator op, const TType& memberType) { TOperator op, const TType& memberType) -> TIntermTyped * {
TIntermTyped* subTree; TIntermTyped* subTree;
if (flatten) if (flatten)
subTree = intermediate.addSymbol(*memberVariables[member]); subTree = intermediate.addSymbol(*memberVariables[member]);
...@@ -3037,7 +3037,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi ...@@ -3037,7 +3037,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi
// space // space
unsigned int setNumber; unsigned int setNumber;
const auto crackSpace = [&]() { const auto crackSpace = [&]() -> bool {
const int spaceLen = 5; const int spaceLen = 5;
if (spaceDesc->size() < spaceLen + 1) if (spaceDesc->size() < spaceLen + 1)
return false; return false;
...@@ -4233,7 +4233,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu ...@@ -4233,7 +4233,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu
symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
// can 'from' convert to 'to'? // can 'from' convert to 'to'?
const auto convertible = [this](const TType& from, const TType& to) { const auto convertible = [this](const TType& from, const TType& to) -> bool {
if (from == to) if (from == to)
return true; return true;
...@@ -4260,7 +4260,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu ...@@ -4260,7 +4260,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu
// Is 'to2' a better conversion than 'to1'? // Is 'to2' a better conversion than 'to1'?
// Ties should not be considered as better. // Ties should not be considered as better.
// Assumes 'convertible' already said true. // Assumes 'convertible' already said true.
const auto better = [](const TType& from, const TType& to1, const TType& to2) { const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool {
// exact match is always better than mismatch // exact match is always better than mismatch
if (from == to2) if (from == to2)
return from != to1; return from != to1;
...@@ -4287,7 +4287,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu ...@@ -4287,7 +4287,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu
// - 32 vs. 64 bit (or width in general) // - 32 vs. 64 bit (or width in general)
// - bool vs. non bool // - bool vs. non bool
// - signed vs. not signed // - signed vs. not signed
const auto linearize = [](const TBasicType& basicType) { const auto linearize = [](const TBasicType& basicType) -> int {
switch (basicType) { switch (basicType) {
case EbtBool: return 1; case EbtBool: return 1;
case EbtInt: return 10; case EbtInt: return 10;
......
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