mirror of https://github.com/microsoft/clang.git
Restore warning to its original text when
certain familiy of methods have the wrong type. // rdar://14408244 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186111 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
97a03cf921
commit
f5200d6865
|
@ -4636,10 +4636,10 @@ getAssignmentAction(const InitializedEntity &Entity) {
|
||||||
return Sema::AA_Passing;
|
return Sema::AA_Passing;
|
||||||
|
|
||||||
case InitializedEntity::EK_Result:
|
case InitializedEntity::EK_Result:
|
||||||
case InitializedEntity::EK_RelatedResult:
|
|
||||||
return Sema::AA_Returning;
|
return Sema::AA_Returning;
|
||||||
|
|
||||||
case InitializedEntity::EK_Temporary:
|
case InitializedEntity::EK_Temporary:
|
||||||
|
case InitializedEntity::EK_RelatedResult:
|
||||||
// FIXME: Can we tell apart casting vs. converting?
|
// FIXME: Can we tell apart casting vs. converting?
|
||||||
return Sema::AA_Casting;
|
return Sema::AA_Casting;
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ void test_inference() {
|
||||||
@implementation Fail
|
@implementation Fail
|
||||||
- (id<X>) initWithX // expected-note {{compiler has implicitly changed method 'initWithX' return type}}
|
- (id<X>) initWithX // expected-note {{compiler has implicitly changed method 'initWithX' return type}}
|
||||||
{
|
{
|
||||||
return (id)self; // expected-warning {{returning 'Fail *' from a function with incompatible result type 'id<X>'}}
|
return (id)self; // expected-warning {{casting 'Fail *' to incompatible type 'id<X>'}}
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -197,6 +197,6 @@ void test_inference() {
|
||||||
+ (UIViewController<PMFilterManager> *)newFilterViewControllerForType // expected-note {{compiler has implicitly changed method 'newFilterViewControllerForType' return type}}
|
+ (UIViewController<PMFilterManager> *)newFilterViewControllerForType // expected-note {{compiler has implicitly changed method 'newFilterViewControllerForType' return type}}
|
||||||
{
|
{
|
||||||
UIViewController<PMFilterManager> *filterVC;
|
UIViewController<PMFilterManager> *filterVC;
|
||||||
return filterVC; // expected-warning {{incompatible pointer types returning 'UIViewController *' from a function with result type 'UIViewController<PMFilterManager> *'}}
|
return filterVC; // expected-warning {{incompatible pointer types casting 'UIViewController *' to type 'UIViewController<PMFilterManager> *'}}
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in New Issue