Ticket #27 (closed defect: fixed)
fold, foldSeg and scan fail to compile for tuple types
| Reported by: | seanl | Owned by: | tmcdonell |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | CUDA backend | Version: | 0.8.0.0 |
| Keywords: | Cc: |
Description (last modified by seanl) (diff)
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
Change History
Note: See
TracTickets for help on using
tickets.
