]> granicus.if.org Git - clang/commitdiff
Objective-C. Improve diagnostic error for '@import'
authorFariborz Jahanian <fjahanian@apple.com>
Wed, 26 Mar 2014 22:02:43 +0000 (22:02 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Wed, 26 Mar 2014 22:02:43 +0000 (22:02 +0000)
when modules are disabled. // rdar://15505492

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204862 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticParseKinds.td
lib/Parse/ParseObjc.cpp
test/Parser/check-objc2-syntax-1.m

index 3f5cee1bfc24729393cdaa385d51226fb88c0d97..f33160c3ef6ff8626d83b51e363bbad5e31374eb 100644 (file)
@@ -224,6 +224,8 @@ def err_expected_selector_for_method : Error<
 def err_expected_property_name : Error<"expected property name">;
 
 def err_unexpected_at : Error<"unexpected '@' in program">;
+def err_atimport : Error<
+"use of '@import' when modules are disabled, add -fmodules">;
 
 def err_invalid_reference_qualifier_application : Error<
   "'%0' qualifier may not be applied to a reference">;
index 8697c08bb5c5dc9bd05754bdb809ea3418bc939c..776dbd6eed4dbbb510061f2afcf6749e8a885e22 100644 (file)
@@ -81,9 +81,9 @@ Parser::DeclGroupPtrTy Parser::ParseObjCAtDirectives() {
   case tok::objc_import:
     if (getLangOpts().Modules)
       return ParseModuleImport(AtLoc);
-      
-    // Fall through
-      
+    Diag(AtLoc, diag::err_atimport);
+    SkipUntil(tok::semi);
+    return Actions.ConvertDeclToDeclGroup(0);
   default:
     Diag(AtLoc, diag::err_unexpected_at);
     SkipUntil(tok::semi);
index 9aff96377404abc1f154a690e575c87a14f18411..6c30096cdd6381495a9985dd5b09ed65a7a3fc36 100644 (file)
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -fsyntax-only -verify %s
-// expected-no-diagnostics
+
+// rdar://15505492
+@import Foundation; // expected-error {{use of '@import' when modules are disabled, add -fmodules}}
 
 @interface Subclass 
 + (int)magicNumber;