Source: beignet Severity: minor Tags: patch User: pkg-llvm-t...@lists.alioth.debian.org Usertags: clang-ftbfs
Hello, Using the rebuild infrastructure, your package fails to build with clang (instead of gcc). See build logs here: http://clang.debian.net/logs/2014-01-14/beignet_0.3-1_unstable_clang.log Thanks, Alexander -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.13-1-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
--- beignet-0.8/backend/src/backend/gen_insn_selection.cpp 2014-02-12 02:43:26.000000000 -0500 +++ beignet-0.8-my/backend/src/backend/gen_insn_selection.cpp 2014-06-02 19:59:11.090968625 -0400 @@ -2401,7 +2401,7 @@ // The first 16 DWORD register space is for temporary usage at encode stage. uint32_t tmpRegNum = (sel.ctx.getSimdWidth() == 8) ? valueNum * 2 : valueNum; - GenRegister dst[valueNum + tmpRegNum]; + GenRegister *dst = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * (valueNum + tmpRegNum))); for (dstID = 0; dstID < tmpRegNum ; ++dstID) dst[dstID] = sel.selReg(sel.reg(FAMILY_DWORD)); for ( uint32_t valueID = 0; valueID < valueNum; ++dstID, ++valueID) @@ -2517,8 +2517,8 @@ addr = GenRegister::retype(sel.selReg(insn.getSrc(addrID)), GEN_TYPE_F); // The first 16 DWORD register space is for temporary usage at encode stage. uint32_t tmpRegNum = (sel.ctx.getSimdWidth() == 8) ? valueNum * 2 : valueNum; - GenRegister src[valueNum]; - GenRegister dst[tmpRegNum + 1]; + GenRegister *src = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * valueNum)); + GenRegister *dst = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * (tmpRegNum + 1))); /* dst 0 is for the temporary address register. */ dst[0] = sel.selReg(sel.reg(FAMILY_DWORD)); for (srcID = 0; srcID < tmpRegNum; ++srcID) @@ -3003,7 +3003,8 @@ { using namespace ir; GenRegister msgPayloads[4]; - GenRegister dst[insn.getDstNum()], src[insn.getSrcNum()]; + GenRegister *dst = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * insn.getDstNum())); + GenRegister *src = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * insn.getSrcNum())); uint32_t srcNum = insn.getSrcNum(); for( int i = 0; i < 4; ++i) @@ -3034,7 +3035,7 @@ const uint32_t simdWidth = sel.ctx.getSimdWidth(); uint32_t valueID; GenRegister msgs[9]; // (header + U + V + R + LOD + 4) - GenRegister src[insn.getSrcNum()]; + GenRegister *src = static_cast<GenRegister *>(alloca(sizeof(GenRegister) * insn.getSrcNum())); uint32_t msgNum = (8 / (simdWidth / 8)) + 1; uint32_t coordNum = 3;