id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
27,"fold, foldSeg and scan fail to compile for tuple types",seanl,tmcdonell,"The fold.inl fails to compile when {{{TyOut}}} is a {{{struct}}}.
This is because the shared array {{{s_data}}} is declared with the {{{volatile}}} keyword to enable the warp level programming, and there is no copy constructor and no assignment operator defined for copying or assigning a value of the type {{{TyOut}}} to a variable of type {{{volatile TyOut}}}.

The following error messages are generated by nvcc.
{{{

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(71): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(74): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(74): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(75): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(75): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(76): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(76): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(84): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(84): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(85): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(85): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(86): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(86): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(87): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(87): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(88): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(88): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(89): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(89): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut
",defect,closed,major,,CUDA backend,0.8.0.0,fixed,,
