[CL backend] Any function that is implemented with pass-by-pointer args needs to think about variable scope
See for instance this build failure. The issue in this particular failure is with the implementation of multiple return. The return value is passed as a pointer, but the compiler is complaining that the return value has local scope but it was expecting a private variable.
I am currently going to implement a workaround that ensures every return value location that is passed as a pointer needs to be private. In the long run, it might be better to generate different variants depending on the variable scope.