Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[OpenCL] Allow zero assignment and comparisons between queue_t type v…
…ariables This change allows for zero assignment and comparison of queue_t type variables, and extends null_queue.cl to test this. Patch by Alistair Davies. Differential Revision: https://reviews.llvm.org/D51727 llvm-svn: 342968
- Loading branch information
Showing
2 changed files
with
33 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,30 @@ | ||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -verify -pedantic -fsyntax-only | ||
extern queue_t get_default_queue(); | ||
|
||
bool compare() { | ||
return 1 == get_default_queue() && // expected-error{{invalid operands to binary expression ('int' and 'queue_t')}} | ||
get_default_queue() == 1; // expected-error{{invalid operands to binary expression ('queue_t' and 'int')}} | ||
} | ||
void queue_arg(queue_t); // expected-note {{passing argument to parameter here}} | ||
|
||
void init() { | ||
queue_t q1 = 1; // expected-error{{initializing 'queue_t' with an expression of incompatible type 'int'}} | ||
queue_t q = 0; | ||
} | ||
|
||
void assign() { | ||
queue_t q2, q3; | ||
q2 = 5; // expected-error{{assigning to 'queue_t' from incompatible type 'int'}} | ||
q3 = 0; | ||
q2 = q3 = 0; | ||
} | ||
|
||
bool compare() { | ||
queue_t q4, q5; | ||
return 1 == get_default_queue() && // expected-error{{invalid operands to binary expression ('int' and 'queue_t')}} | ||
get_default_queue() == 1 && // expected-error{{invalid operands to binary expression ('queue_t' and 'int')}} | ||
q4 == q5 && | ||
q4 != 0 && | ||
q4 != 0.0f; // expected-error{{invalid operands to binary expression ('queue_t' and 'float')}} | ||
} | ||
|
||
void call() { | ||
queue_arg(5); // expected-error {{passing 'int' to parameter of incompatible type 'queue_t'}} | ||
queue_arg(0); | ||
} |