[OpenCL] Add clang extension for function pointers.
authorAnastasia Stulova <anastasia.stulova@arm.com>
Wed, 6 Jan 2021 19:05:09 +0000 (19:05 +0000)
committerAnastasia Stulova <anastasia.stulova@arm.com>
Wed, 6 Jan 2021 20:39:57 +0000 (20:39 +0000)
commit4fde2b6a0c080cb2a598383b5850038d67ca6833
tree075dfa10ae42f3641a75013bfe7b0e9c3a1f3edf
parentbadc7606b0f622f06efc466c86fecc8b45a165fd
[OpenCL] Add clang extension for function pointers.

The new clang internal extension '__cl_clang_function_pointers'
allows use of function pointers and other features that have
the same functionality:
- Use of member function pointers;
- Unrestricted use of references to functions;
- Virtual member functions.

This not a vendor extension and therefore it doesn't require any
special target support. Exposing this functionality fully
will require vendor or Khronos extension.

Tags: #clang

Differential Revision: https://reviews.llvm.org/D94021
14 files changed:
clang/docs/LanguageExtensions.rst
clang/include/clang/Basic/OpenCLExtensions.def
clang/lib/Basic/Targets/AMDGPU.h
clang/lib/Basic/Targets/NVPTX.h
clang/lib/Parse/ParseDecl.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaType.cpp
clang/test/Misc/amdgcn.languageOptsOpenCL.cl
clang/test/Misc/nvptx.languageOptsOpenCL.cl
clang/test/Misc/r600.languageOptsOpenCL.cl
clang/test/Parser/opencl-cxx-virtual.cl
clang/test/SemaOpenCL/extension-version.cl
clang/test/SemaOpenCL/func.cl
clang/test/SemaOpenCLCXX/members.cl