From: Ruiling Song Date: Fri, 7 Mar 2014 05:48:47 +0000 (+0800) Subject: GBE: Fix a potential issue if increase srcNum. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7c042d13a6c68306cbbc34236516f9ca51617c26;p=contrib%2Fbeignet.git GBE: Fix a potential issue if increase srcNum. If increase MAX_SRC_NUM for ir::Instruction, unpredicted behaviour may happen. Signed-off-by: Ruiling Song Reviewed-by: "Yang, Rong R" --- diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp index d5d86de..46f0123 100644 --- a/backend/src/backend/gen_insn_selection.cpp +++ b/backend/src/backend/gen_insn_selection.cpp @@ -229,6 +229,7 @@ namespace gbe public: INLINE SelectionDAG(const ir::Instruction &insn) : insn(insn), mergeable(0), childNum(insn.getSrcNum()), isRoot(0) { + GBE_ASSERT(insn.getSrcNum() < 127); for (uint32_t childID = 0; childID < childNum; ++childID) this->child[childID] = NULL; } @@ -243,7 +244,7 @@ namespace gbe /*! When sources have been overwritten, a child insn cannot be merged */ uint32_t mergeable:ir::Instruction::MAX_SRC_NUM; /*! Number of children we have in the pattern */ - uint32_t childNum:4; + uint32_t childNum:7; /*! A root must be generated, no matter what */ uint32_t isRoot:1; };