diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp index 1898a15930..cc0829ef67 100644 --- a/lib/Sema/SemaInit.cpp +++ b/lib/Sema/SemaInit.cpp @@ -4636,10 +4636,10 @@ getAssignmentAction(const InitializedEntity &Entity) { return Sema::AA_Passing; case InitializedEntity::EK_Result: - case InitializedEntity::EK_RelatedResult: return Sema::AA_Returning; case InitializedEntity::EK_Temporary: + case InitializedEntity::EK_RelatedResult: // FIXME: Can we tell apart casting vs. converting? return Sema::AA_Casting; diff --git a/test/SemaObjC/related-result-type-inference.m b/test/SemaObjC/related-result-type-inference.m index 6fa27b02fa..547e83fd01 100644 --- a/test/SemaObjC/related-result-type-inference.m +++ b/test/SemaObjC/related-result-type-inference.m @@ -175,7 +175,7 @@ void test_inference() { @implementation Fail - (id) 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'}} + return (id)self; // expected-warning {{casting 'Fail *' to incompatible type 'id'}} } @end @@ -197,6 +197,6 @@ void test_inference() { + (UIViewController *)newFilterViewControllerForType // expected-note {{compiler has implicitly changed method 'newFilterViewControllerForType' return type}} { UIViewController *filterVC; - return filterVC; // expected-warning {{incompatible pointer types returning 'UIViewController *' from a function with result type 'UIViewController *'}} + return filterVC; // expected-warning {{incompatible pointer types casting 'UIViewController *' to type 'UIViewController *'}} } @end