diff options
Diffstat (limited to 'test/Sema/conversion.c')
-rw-r--r-- | test/Sema/conversion.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Sema/conversion.c b/test/Sema/conversion.c index a591ac0eef..89c34c6a22 100644 --- a/test/Sema/conversion.c +++ b/test/Sema/conversion.c @@ -417,3 +417,15 @@ void test26(int si, long sl) { si = si / sl; si = sl / si; // expected-warning {{implicit conversion loses integer precision: 'long' to 'int'}} } + +// rdar://16502418 +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef __attribute__ ((ext_vector_type(16),__aligned__(32))) uint16_t ushort16; +typedef __attribute__ ((ext_vector_type( 8),__aligned__( 32))) uint32_t uint8; + +void test27(ushort16 constants) { + uint8 pairedConstants = (uint8) constants; + ushort16 crCbScale = pairedConstants.s4; // expected-warning {{implicit conversion loses integer precision: 'uint32_t' (aka 'unsigned int') to 'ushort16'}} + ushort16 brBias = pairedConstants.s6; // expected-warning {{implicit conversion loses integer precision: 'uint32_t' (aka 'unsigned int') to 'ushort16'}} +} |