2013-10-15 02:55:27 +08:00
|
|
|
// RUN: %clang_cc1 -Wconversion -fsyntax-only %s -verify
|
|
|
|
|
|
|
|
typedef signed char BOOL;
|
|
|
|
__attribute__((objc_root_class)) @interface RDar14415662
|
|
|
|
@property (readonly) BOOL stuff;
|
|
|
|
@property (readwrite) BOOL otherStuff;
|
|
|
|
@end
|
|
|
|
|
|
|
|
void radar14415662(RDar14415662 *f, char x, int y) {
|
|
|
|
f.otherStuff = !f.stuff; // no-warning
|
|
|
|
BOOL b = !f.stuff; // no-warning
|
|
|
|
|
|
|
|
// True positive to sanity check warning is working.
|
|
|
|
x = y; // expected-warning {{implicit conversion loses integer precision: 'int' to 'char'}}
|
|
|
|
}
|
|
|
|
|
2019-02-15 06:48:01 +08:00
|
|
|
__attribute__((objc_root_class)) @interface DoubleProp
|
|
|
|
@property double d;
|
|
|
|
@end
|
2013-10-15 02:55:27 +08:00
|
|
|
|
2019-02-15 06:48:01 +08:00
|
|
|
void use_double_prop(DoubleProp *dp) {
|
|
|
|
double local = 42;
|
|
|
|
dp.d += local; // no warning
|
|
|
|
}
|