diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index c327d38f..6d1b2b92 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1738,7 +1738,7 @@ void Builder::endSwitch(std::vector& /*segmentBlock*/) // Comments in header void Builder::makeNewLoop(bool loopTestFirst) { - loops.push({ }); + loops.push(Loop()); Loop& loop = loops.top(); loop.function = &getBuildPoint()->getParent(); diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index de7c3361..27ffd3ec 100644 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -524,6 +524,7 @@ protected: // Data that needs to be kept in order to properly handle loops. struct Loop { + Loop() : header(nullptr), merge(nullptr), body(nullptr), testFirst(false), isFirstIteration(nullptr), function(nullptr) { } // The header is the first block generated for the loop. // It dominates all the blocks in the loop, i.e. it is always // executed before any others.