Shih-wei Liao | ea28516 | 2010-06-04 12:34:56 -0700 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
| 2 | |
| 3 | @interface A |
| 4 | @end |
| 5 | @interface B |
| 6 | @end |
| 7 | |
| 8 | void f0(int cond, A *a, B *b) { |
| 9 | // Ensure that we can still send a message to result of incompatible |
| 10 | // conditional expression. |
| 11 | [ (cond ? a : b) test ]; // expected-warning{{incompatible operand types ('A *' and 'B *')}} expected-warning {{method '-test' not found}} |
| 12 | } |
| 13 | |
| 14 | @interface NSKey @end |
| 15 | @interface KeySub : NSKey @end |
| 16 | |
| 17 | @interface UpdatesList @end |
| 18 | |
| 19 | void foo (int i, NSKey *NSKeyValueCoding_NullValue, UpdatesList *nukedUpdatesList) |
| 20 | { |
| 21 | id obj; |
| 22 | NSKey *key; |
| 23 | KeySub *keysub; |
| 24 | |
| 25 | obj = i ? NSKeyValueCoding_NullValue : nukedUpdatesList; // expected-warning{{incompatible operand types ('NSKey *' and 'UpdatesList *')}} |
| 26 | key = i ? NSKeyValueCoding_NullValue : nukedUpdatesList; // expected-warning{{incompatible operand types ('NSKey *' and 'UpdatesList *')}} |
| 27 | key = i ? NSKeyValueCoding_NullValue : keysub; |
| 28 | keysub = i ? NSKeyValueCoding_NullValue : keysub; // expected-warning{{incompatible pointer types assigning to 'KeySub *' from 'NSKey *'}} |
| 29 | } |