[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