From 5d5db80d356cf435cb7b018a53adc60b72f64cff Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 9 Mar 2017 17:48:59 +0000 Subject: [PATCH] Compile fixes for VS2010 * Removed range-based for * Added explicit return type to non-trivial lambda * Added explicit scope for tInterstageIoData --- hlsl/hlslParseHelper.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e0dcc09..15be704 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1892,7 +1892,7 @@ void HlslParseContext::remapEntryPointIO(TFunction& function, TVariable*& return { // Do the actual work to make a type be a shader input or output variable, // and clear the original to be non-IO (for use as a normal function parameter/return). - const auto makeIoVariable = [this](const char* name, TType& type, TStorageQualifier storage) { + const auto makeIoVariable = [this](const char* name, TType& type, TStorageQualifier storage) -> TVariable* { TVariable* ioVariable = makeInternalVariable(name, type); clearUniformInputOutput(type.getQualifier()); if (type.getStruct() != nullptr) { @@ -2078,7 +2078,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op if (split && derefType.isBuiltInInterstageIO(language)) { // copy from interstage IO builtin if needed - subTree = intermediate.addSymbol(*interstageBuiltInIo.find(tInterstageIoData(derefType, outer->getType()))->second); + subTree = intermediate.addSymbol(*interstageBuiltInIo.find(HlslParseContext::tInterstageIoData(derefType, outer->getType()))->second); // Arrayness of builtIn symbols isn't handled by the normal recursion: it's been extracted and moved to the builtin. if (subTree->getType().isArray() && !arrayElement.empty()) { @@ -7473,9 +7473,9 @@ void HlslParseContext::addPatchConstantInvocation() const TStorageQualifier storage = function[p].type->getQualifier().storage; if (function[p].declaredBuiltIn != EbvNone) - builtIns.insert(tInterstageIoData(function[p].declaredBuiltIn, storage)); + builtIns.insert(HlslParseContext::tInterstageIoData(function[p].declaredBuiltIn, storage)); else - builtIns.insert(tInterstageIoData(function[p].type->getQualifier().builtIn, storage)); + builtIns.insert(HlslParseContext::tInterstageIoData(function[p].type->getQualifier().builtIn, storage)); } }; @@ -7561,8 +7561,9 @@ void HlslParseContext::addPatchConstantInvocation() notInEntryPoint = pcfBuiltIns; - for (auto bi : epfBuiltIns) // std::set_difference not usable on unordered containers - notInEntryPoint.erase(bi); + // std::set_difference not usable on unordered containers + for (auto bi = epfBuiltIns.begin(); bi != epfBuiltIns.end(); ++bi) + notInEntryPoint.erase(*bi); // Now we'll add those to the entry and to the linkage. for (int p=0; p