[OpenCL] Traverse vector types for ocl extensions support
authorAlexey Sotkin <alexey.sotkin@intel.com>
Mon, 3 Sep 2018 11:43:22 +0000 (11:43 +0000)
committerAlexey Sotkin <alexey.sotkin@intel.com>
Mon, 3 Sep 2018 11:43:22 +0000 (11:43 +0000)
commit73ae7cb4f12fb939a52fa16b12baa8afa48821cc
tree7f8f7923203b022cf4f7c8801be93f26e23a0175
parente9e38c207e463b3806754b4eb7d836181c58a399
[OpenCL] Traverse vector types for ocl extensions support

Summary:
Given the following kernel:
__kernel void foo() {
  double d;
  double4 dd;
}

and cl_khr_fp64 is disabled, the compilation would fail due to
the presence of 'double d', but when removed, it passes.

The expectation is that extended vector types of unsupported types
will also be unsupported.

The patch adds the check for this scenario.

Patch by: Ofir Cohen

Reviewers: bader, Anastasia, AlexeySotkin, yaxunl

Reviewed By: Anastasia

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D51296

llvm-svn: 341309
clang/lib/Sema/Sema.cpp
clang/test/SemaOpenCL/extensions.cl