diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index eeb40598..603ed50f 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -690,8 +690,8 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls void TGlslangToSpvTraverser::dumpSpv(std::vector& out) { // finish off the entry-point SPV instruction by adding the Input/Output - for (auto it : iOSet) - entryPoint->addIdOperand(it); + for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it) + entryPoint->addIdOperand(*it); builder.dump(out); } diff --git a/SPIRV/InReadableOrder.cpp b/SPIRV/InReadableOrder.cpp index 9180dc8c..142d716b 100644 --- a/SPIRV/InReadableOrder.cpp +++ b/SPIRV/InReadableOrder.cpp @@ -91,8 +91,9 @@ public: delayed_[continueBlock] = true; } } - for (const auto succ : block->getSuccessors()) - visit(succ); + const auto successors = block->getSuccessors(); + for (auto it = successors.cbegin(); it != successors.cend(); ++it) + visit(*it); if (continueBlock) { delayed_[continueBlock] = false; visit(continueBlock); diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 74ed611b..d7f6fc7b 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1145,8 +1145,8 @@ void Builder::createNoResultOp(Op opCode, Id operand) void Builder::createNoResultOp(Op opCode, const std::vector& operands) { Instruction* op = new Instruction(opCode); - for (auto operand : operands) - op->addIdOperand(operand); + for (auto it = operands.cbegin(); it != operands.cend(); ++it) + op->addIdOperand(*it); buildPoint->addInstruction(std::unique_ptr(op)); } @@ -1201,8 +1201,8 @@ Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3) Id Builder::createOp(Op opCode, Id typeId, const std::vector& operands) { Instruction* op = new Instruction(getUniqueId(), typeId, opCode); - for (auto operand : operands) - op->addIdOperand(operand); + for (auto it = operands.cbegin(); it != operands.cend(); ++it) + op->addIdOperand(*it); buildPoint->addInstruction(std::unique_ptr(op)); return op->getResultId(); @@ -2110,9 +2110,9 @@ Id Builder::accessChainGetInferredType() type = getContainedTypeId(type); // dereference each index - for (auto deref : accessChain.indexChain) { + for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) { if (isStructType(type)) - type = getContainedTypeId(type, getConstantScalar(deref)); + type = getContainedTypeId(type, getConstantScalar(*it)); else type = getContainedTypeId(type); } @@ -2140,9 +2140,9 @@ void Builder::dump(std::vector& out) const out.push_back(0); // Capabilities - for (auto cap : capabilities) { + for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) { Instruction capInst(0, 0, OpCapability); - capInst.addImmediateOperand(cap); + capInst.addImmediateOperand(*it); capInst.dump(out); } diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index b6554906..cc59d389 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -689,7 +689,8 @@ void CompileAndLinkShaderUnits(std::vector compUnits) // glslang::TProgram& program = *new glslang::TProgram; - for (auto compUnit : compUnits) { + for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) { + const auto &compUnit = *it; glslang::TShader* shader = new glslang::TShader(compUnit.stage); shader->setStrings(compUnit.text, 1); shaders.push_back(shader); @@ -821,8 +822,8 @@ void CompileAndLinkShaderFiles() glslang::OS_DumpMemoryCounters(); } - for (auto c : compUnits) - FreeFileData(c.text); + for (auto it = compUnits.begin(); it != compUnits.end(); ++it) + FreeFileData(it->text); } int C_DECL main(int argc, char* argv[]) diff --git a/StandAlone/spirv-remap.cpp b/StandAlone/spirv-remap.cpp index 2091feb1..f35b58ed 100644 --- a/StandAlone/spirv-remap.cpp +++ b/StandAlone/spirv-remap.cpp @@ -120,7 +120,8 @@ namespace { if (fp.fail()) errHandler(std::string("error opening file for write: ") + outFile); - for (auto word : spv) { + for (auto it = spv.cbegin(); it != spv.cend(); ++it) { + SpvWord word = *it; fp.write((char *)&word, sizeof(word)); if (fp.fail()) errHandler(std::string("error writing file: ") + outFile); @@ -157,7 +158,8 @@ namespace { void execute(const std::vector& inputFile, const std::string& outputDir, int opts, int verbosity) { - for (const auto& filename : inputFile) { + for (auto it = inputFile.cbegin(); it != inputFile.cend(); ++it) { + const std::string &filename = *it; std::vector spv; read(spv, filename, verbosity); spv::spirvbin_t(verbosity).remap(spv, opts); diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 826ab14f..2872fac8 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -206,7 +206,7 @@ struct TSourceLoc { { if (name != nullptr) return quoteStringName ? ("\"" + std::string(name) + "\"") : name; - return std::to_string(string); + return std::to_string((long long)string); } const char* name; // descriptive name for this string int string; diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 6e247056..b52551ff 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -757,13 +757,9 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) case EShLangCompute: infoSink.debug << "local_size = (" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << ")\n"; { - bool dumpSpecIds = false; - for (auto c : localSizeSpecId) { - if (c != TQualifier::layoutNotSet) - dumpSpecIds = true; - } - - if (dumpSpecIds) { + if (localSizeSpecId[0] != TQualifier::layoutNotSet || + localSizeSpecId[1] != TQualifier::layoutNotSet || + localSizeSpecId[2] != TQualifier::layoutNotSet) { infoSink.debug << "local_size ids = (" << localSizeSpecId[0] << ", " << localSizeSpecId[1] << ", " << diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index 72dbcae4..9a33a776 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -611,9 +611,9 @@ int TPpContext::CPPinclude(TPpToken* ppToken) if (token != '\n' && token != EndOfInput) { parseContext.ppError(ppToken->loc, "extra content after file designation", "#include", ""); } else { - std::string sourceName; - std::string replacement; - std::tie(sourceName, replacement) = includer.include(filename.c_str()); + auto include = includer.include(filename.c_str()); + std::string sourceName = include.first; + std::string replacement = include.second; if (!sourceName.empty()) { if (!replacement.empty()) { const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine();