[InstCombine] Preserve NSW flags for `lshr (mul nuw X, C1), C2 -> mul nuw nsw X,...
[llvm-project.git] / clang / test / SemaObjC / comptypes-2.m
blob3589eba883a08836678371bc45f52b1bc3edd207
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
4 #define nil (void *)0;
5 #define Nil (void *)0;
7 @protocol MyProtocol
8 - (void) foo;
9 @end
11 @interface MyClass
12 @end
14 int main(void)
16   id obj = nil;
17   id<MyProtocol> obj_p = nil;
18   MyClass *obj_c = nil;
19   Class obj_C = Nil;
21   /* All these casts should generate no warnings.  */
23   obj = (id)obj_p;
24   obj = (id)obj_c;
25   obj = (id)obj_C;
26   obj_c = (MyClass *)obj;
27   obj_c = (MyClass *)obj_p;
28   obj_c = (MyClass *)obj_C;
29   obj_p = (id<MyProtocol>)obj;
30   obj_p = (id<MyProtocol>)obj_c;
31   obj_p = (id<MyProtocol>)obj_C;
32   obj_C = (Class)obj;
33   obj_C = (Class)obj_p;
34   obj_C = (Class)obj_c;
35   
37   return 0;