Viewing file: vector23.C (1.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile { target c++14 } } */ /* { dg-options "-Wsign-conversion" } */ // Ignore warning on some powerpc-linux configurations. // { dg-prune-output "non-standard ABI extension" } // Ignore warning on Linux/x86 // { dg-prune-output "changes the ABI" }
typedef double vecd __attribute__((vector_size(4*sizeof(double)))); typedef float vecf __attribute__((vector_size(8*sizeof(float)))); typedef long vecl __attribute__((vector_size(4*sizeof(long)))); typedef short vecs __attribute__((vector_size(8*sizeof(short)))); typedef char vecc __attribute__((vector_size(16*sizeof(char))));
auto f(vecf*a,float d,long long i){ return (*a<0)?d:i; // { dg-error "truncation" } } auto g(vecc*a){ return (*a<0)?3LL:42UL; // { dg-error "inferred scalar type" } } auto h(vecd*a){ return (*a<0)?'a':'c'; // { dg-error "inferred scalar type \[^\\n\]*double" } } auto i(vecc*a){ return (*a<0)?1:0.; // { dg-error "inferred scalar type" } } auto j(vecl*a,long i,unsigned long k){ return (*a<0)?i:k; // { dg-warning "may change the sign" } }
|