[cfe-commits] r46371 - in /cfe/trunk: CodeGen/CodeGenModule.cpp Parse/ParseDecl.cpp Sema/SemaDecl.cpp include/clang/AST/Decl.h include/clang/Parse/DeclSpec.h

Steve Naroff snaroff at apple.com
Fri Jan 25 14:14:40 PST 2008


Author: snaroff
Date: Fri Jan 25 16:14:40 2008
New Revision: 46371

URL: http://llvm.org/viewvc/llvm-project?rev=46371&view=rev
Log:

Add more support for Apple's "private extern" extension...


Modified:
    cfe/trunk/CodeGen/CodeGenModule.cpp
    cfe/trunk/Parse/ParseDecl.cpp
    cfe/trunk/Sema/SemaDecl.cpp
    cfe/trunk/include/clang/AST/Decl.h
    cfe/trunk/include/clang/Parse/DeclSpec.h

Modified: cfe/trunk/CodeGen/CodeGenModule.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CodeGen/CodeGenModule.cpp?rev=46371&r1=46370&r2=46371&view=diff

==============================================================================
--- cfe/trunk/CodeGen/CodeGenModule.cpp (original)
+++ cfe/trunk/CodeGen/CodeGenModule.cpp Fri Jan 25 16:14:40 2008
@@ -572,6 +572,7 @@
     assert(0 && "Can't have auto or register globals");
   case VarDecl::None:
   case VarDecl::Extern:
+  case VarDecl::PrivateExtern:
     // todo: common
     break;
   case VarDecl::Static:

Modified: cfe/trunk/Parse/ParseDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Parse/ParseDecl.cpp?rev=46371&r1=46370&r2=46371&view=diff

==============================================================================
--- cfe/trunk/Parse/ParseDecl.cpp (original)
+++ cfe/trunk/Parse/ParseDecl.cpp Fri Jan 25 16:14:40 2008
@@ -447,8 +447,7 @@
       isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_extern, Loc, PrevSpec);
       break;
     case tok::kw___private_extern__:
-	  // FIXME: Implement private extern.
-      isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_extern, Loc, PrevSpec);
+      isInvalid = DS.SetStorageClassSpec(DeclSpec::SCS_private_extern, Loc, PrevSpec);
       break;
     case tok::kw_static:
       if (DS.isThreadSpecified())

Modified: cfe/trunk/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Sema/SemaDecl.cpp?rev=46371&r1=46370&r2=46371&view=diff

==============================================================================
--- cfe/trunk/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/Sema/SemaDecl.cpp Fri Jan 25 16:14:40 2008
@@ -705,11 +705,12 @@
     VarDecl::StorageClass SC;
     switch (D.getDeclSpec().getStorageClassSpec()) {
       default: assert(0 && "Unknown storage class!");
-      case DeclSpec::SCS_unspecified: SC = VarDecl::None; break;
-      case DeclSpec::SCS_extern:      SC = VarDecl::Extern; break;
-      case DeclSpec::SCS_static:      SC = VarDecl::Static; break;
-      case DeclSpec::SCS_auto:        SC = VarDecl::Auto; break;
-      case DeclSpec::SCS_register:    SC = VarDecl::Register; break;
+      case DeclSpec::SCS_unspecified:    SC = VarDecl::None; break;
+      case DeclSpec::SCS_extern:         SC = VarDecl::Extern; break;
+      case DeclSpec::SCS_static:         SC = VarDecl::Static; break;
+      case DeclSpec::SCS_auto:           SC = VarDecl::Auto; break;
+      case DeclSpec::SCS_register:       SC = VarDecl::Register; break;
+      case DeclSpec::SCS_private_extern: SC = VarDecl::PrivateExtern; break;
     }    
     if (S->getParent() == 0) {
       // C99 6.9p2: The storage-class specifiers auto and register shall not

Modified: cfe/trunk/include/clang/AST/Decl.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Decl.h?rev=46371&r1=46370&r2=46371&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/Decl.h (original)
+++ cfe/trunk/include/clang/AST/Decl.h Fri Jan 25 16:14:40 2008
@@ -281,7 +281,7 @@
 class VarDecl : public ValueDecl {
 public:
   enum StorageClass {
-    None, Extern, Static, Auto, Register
+    None, Extern, Static, Auto, Register, PrivateExtern
   };
   StorageClass getStorageClass() const { return (StorageClass)SClass; }
 

Modified: cfe/trunk/include/clang/Parse/DeclSpec.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/DeclSpec.h?rev=46371&r1=46370&r2=46371&view=diff

==============================================================================
--- cfe/trunk/include/clang/Parse/DeclSpec.h (original)
+++ cfe/trunk/include/clang/Parse/DeclSpec.h Fri Jan 25 16:14:40 2008
@@ -38,7 +38,8 @@
     SCS_extern,
     SCS_static,
     SCS_auto,
-    SCS_register
+    SCS_register,
+    SCS_private_extern
   };
   
   // type-specifier





More information about the cfe-commits mailing list