From 54a28de4a97322fc5c9cc403e870f5f9b8df83ef Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:23:39 +0200 Subject: [PATCH] Give all complex lambdas an explicit return type --- glslang/MachineIndependent/ParseContextBase.cpp | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- hlsl/hlslParseHelper.cpp | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index fe2b8e6b..e46684fe 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -253,7 +253,7 @@ const TFunction* TParseContextBase::selectFunction( return viableCandidates.front(); // 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 bool hasBetterParam = false; for (int param = 0; param < call.getParamCount(); ++param) { diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 949ba007..2dfb9c72 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4907,7 +4907,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // 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) return true; if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) @@ -4918,7 +4918,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // 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 if (from == to2) return from != to1; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4eda44d7..ca23ca39 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1001,7 +1001,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op const auto getMember = [&](bool flatten, TIntermTyped* node, const TVector& memberVariables, int member, - TOperator op, const TType& memberType) { + TOperator op, const TType& memberType) -> TIntermTyped * { TIntermTyped* subTree; if (flatten) subTree = intermediate.addSymbol(*memberVariables[member]); @@ -2693,7 +2693,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi // space unsigned int setNumber; - const auto crackSpace = [&]() { + const auto crackSpace = [&]() -> bool { const int spaceLen = 5; if (spaceDesc->size() < spaceLen + 1) return false; @@ -3889,7 +3889,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // 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) return true; @@ -3916,7 +3916,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // 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 if (from == to2) return from != to1; @@ -3943,7 +3943,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // - 32 vs. 64 bit (or width in general) // - bool vs. non bool // - signed vs. not signed - const auto linearize = [](const TBasicType& basicType) { + const auto linearize = [](const TBasicType& basicType) -> int { switch (basicType) { case EbtBool: return 1; case EbtInt: return 10;