This is a good idea. Please apply, after correcting the problems below.
The patch has two problems:
1. It defines a globally visible function err_code -- that should be a static function, or have a longer name, or have e.g. an OpenCL_ prefix.
2. It calls malloc without calling free; given that it already requires a very modern cpp (with vararg macros), it could use automatic arrays instead.
I uploaded a new patch. This renames err_code to OpenCL_err_code (at some point we might want to make this public using proper Cactus mechanisms, but that can be done later). It also uses automatic arrays now.