39 lines
949 B
C
39 lines
949 B
C
// RUN: clang-cc -fsyntax-only -verify %s -fno-lax-vector-conversions
|
|
|
|
typedef float float4 __attribute__((vector_size(16)));
|
|
typedef int int4 __attribute__((vector_size(16)));
|
|
typedef int4* int4p;
|
|
|
|
void test1(float4 a, int4 *result, int i) {
|
|
result[i] = a; // expected-error {{assigning 'float4', expected 'int4'}}
|
|
}
|
|
|
|
void test2(float4 a, int4p result, int i) {
|
|
result[i] = a; // expected-error {{assigning 'float4', expected 'int4'}}
|
|
}
|
|
|
|
// PR2039
|
|
typedef int a[5];
|
|
void test3() {
|
|
typedef const a b;
|
|
b r;
|
|
r[0]=10; // expected-error {{read-only variable is not assignable}}
|
|
}
|
|
|
|
int test4(const a y) {
|
|
y[0] = 10; // expected-error {{read-only variable is not assignable}}
|
|
}
|
|
|
|
// PR2189
|
|
int test5() {
|
|
const int s[5]; int t[5];
|
|
return &s == &t; // expected-warning {{comparison of distinct pointer types}}
|
|
}
|
|
|
|
int test6() {
|
|
const a s;
|
|
a t;
|
|
return &s == &t; // expected-warning {{comparison of distinct pointer types}}
|
|
}
|
|
|