[OpenCL] Handle OpenCL specific subelement types

Reviewers: Anastasia, cfe-commits

Reviewed By: Anastasia

Subscribers: bader, yaxunl

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

llvm-svn: 302633
This commit is contained in:
Egor Churaev 2017-05-10 10:28:34 +00:00
parent 4e1377aff0
commit 45fe70f845
2 changed files with 21 additions and 1 deletions

View File

@ -1209,7 +1209,7 @@ void InitListChecker::CheckSubElementType(const InitializedEntity &Entity,
} else {
assert((ElemType->isRecordType() || ElemType->isVectorType() ||
ElemType->isClkEventT()) && "Unexpected type");
ElemType->isOpenCLSpecificType()) && "Unexpected type");
// C99 6.7.8p13:
//

View File

@ -0,0 +1,20 @@
// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0
// expected-no-diagnostics
__kernel void k1(queue_t q1, queue_t q2) {
queue_t q[] = {q1, q2};
}
__kernel void k2(read_only pipe int p) {
reserve_id_t i1 = reserve_read_pipe(p, 1);
reserve_id_t i2 = reserve_read_pipe(p, 1);
reserve_id_t i[] = {i1, i2};
}
event_t create_event();
__kernel void k3() {
event_t e1 = create_event();
event_t e2 = create_event();
event_t e[] = {e1, e2};
}