Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjC / sign-conversion.m
blob81b08390b10cc3e7fed60965178bf91d197500e1
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wsign-conversion %s
3 typedef unsigned int NSUInteger;
5 @interface NSObject
6 - new;
7 - (NSUInteger)hash;
8 @end
10 @interface X : NSObject
11 @property NSUInteger uint;
12 @end
14 @interface NSArray : NSObject 
16 - (NSUInteger)count;
17 - (id)objectAtIndex:(NSUInteger)index;
18 - (id)objectAtIndexedSubscript:(NSUInteger)index;
20 @end
22 void foo(void) {
23     X *x = [X new];
24     signed int sint = -1;
25     [x setUint:sint];  // expected-warning {{implicit conversion changes signedness: 'int' to 'NSUInteger'}}
26     x.uint = sint; // expected-warning {{implicit conversion changes signedness: 'int' to 'NSUInteger'}}
29 void Test1(void) {
30 signed int si = -1;
31 NSArray *array;
33 (void)((NSObject*)array[si]).hash; // expected-warning {{implicit conversion changes signedness: 'int' to 'NSUInteger'}}
35 (void)[((NSObject*)array[si]) hash]; // expected-warning {{implicit conversion changes signedness: 'int' to 'NSUInteger'}}
36 (void)array[si]; // expected-warning {{implicit conversion changes signedness: 'int' to 'NSUInteger'}}