OpenCL apps can quote arguments they pass to the OpenCL compiler, most commonly include paths containing spaces.
If the Clang OpenCL compiler was called via a shell, the shell would split the arguments with respect to to quotes and then remove quotes before passing the arguments to the compiler. Since we call Clang as a library, we have to split the argument with respect to quotes and then remove quotes before passing the arguments.
v2: move to tokenize(), remove throwing of CL_INVALID_COMPILER_OPTIONS
v3: simplify parsing logic, use more C++11
v4: restore error throwing, clarify a comment
e327286 clover: Pass unquoted compiler arguments to Clang
src/gallium/state_trackers/clover/llvm/util.hpp | 40 ++++++++++++++++++++---
1 file changed, 36 insertions(+), 4 deletions(-)
Upstream: cgit.freedesktop.org