pipe has not been a reserved keyword in the earlier OpenCL standards
https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
however we failed to allow its use as an identifier in the original implememntation.
This patch fixes the issue and improves testing.
Btw I feel we have a spec issue in the unified spec https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_C.html#keywords because it doesn't say that the pipe is reserved only from OpenCL 2.0?
I have created this for clarifications: https://github.com/KhronosGroup/OpenCL-Docs/issues/601