From 18d8b7996b1eb35f3f5fd2d1e6eef3d72843fbeb Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 14 Mar 2011 21:43:30 +0000 Subject: [PATCH] Disable 'auto' type deduction in Objective-C. It likes 'id' a bit too much to be useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127625 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Parse/ParseDecl.cpp | 2 +- test/SemaObjC/auto-objective-c.m | 33 -------------------------------- 2 files changed, 1 insertion(+), 34 deletions(-) delete mode 100644 test/SemaObjC/auto-objective-c.m diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index 450329a655..d0e410f9bf 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -1249,7 +1249,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, DiagID, getLang()); break; case tok::kw_auto: - if (getLang().CPlusPlus0x || getLang().ObjC2) { + if (getLang().CPlusPlus0x) { if (isKnownToBeTypeSpecifier(GetLookAheadToken(1))) { isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_auto, Loc, PrevSpec, DiagID, getLang()); diff --git a/test/SemaObjC/auto-objective-c.m b/test/SemaObjC/auto-objective-c.m deleted file mode 100644 index 5467e24a79..0000000000 --- a/test/SemaObjC/auto-objective-c.m +++ /dev/null @@ -1,33 +0,0 @@ -// RUN: %clang_cc1 -x objective-c -fblocks -fsyntax-only -verify %s - -@interface I -{ - id pi; -} -- (id) Meth; -@end - -// Objective-C does not support trailing return types, so check we don't get -// the C++ diagnostic suggesting we forgot one. -auto noTrailingReturnType(); // expected-error {{'auto' not allowed in function return type}} - -typedef int (^P) (int x); - -@implementation I -- (id) Meth { - auto p = [pi Meth]; - return p; -} - -- (P) bfunc { - auto my_block = ^int (int x) {return x; }; - my_block(1); - return my_block; -} -@end - - -// rdar://9036633 -int main() { - auto int auto_i = 7; // expected-warning {{'auto' storage class specifier is redundant and will be removed in future releases}} -}