[OpenCL] Diagnose variadic arguments
authorAnastasia Stulova <anastasia.stulova@arm.com>
Fri, 28 Oct 2016 12:59:39 +0000 (12:59 +0000)
committerAnastasia Stulova <anastasia.stulova@arm.com>
Fri, 28 Oct 2016 12:59:39 +0000 (12:59 +0000)
commit7c3053336233772ff33d4f908fc954566a7e6422
treecaf102e9ecac012b5720553784d677689d37f5d7
parentc3ccf5d77baa8cf4237e3eb68858eda97155e037
[OpenCL] Diagnose variadic arguments

OpenCL disallows using variadic arguments (s6.9.e and s6.12.5 OpenCL v2.0)
apart from some exceptions:
- printf
- enqueue_kernel

This change adds error diagnostic for variadic functions but accepts printf
and any compiler internal function (which should cover __enqueue_kernel_XXX cases).

It also unifies diagnostic with block prototype and adds missing uncaught cases for blocks.

llvm-svn: 285395
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Headers/opencl-c.h
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaType.cpp
clang/test/SemaOpenCL/builtin.cl
clang/test/SemaOpenCL/func.cl [moved from clang/test/SemaOpenCL/func_ptr.cl with 60% similarity]
clang/test/SemaOpenCL/invalid-block.cl