diff options
author | Chris Lattner <sabre@nondot.org> | 2008-12-17 07:13:27 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-12-17 07:13:27 +0000 |
commit | 438e501b2e9ca20237ec33561e5e62b4d79a102a (patch) | |
tree | 94e0441ef4c335d4ad4c7e86f5d37f1bd864b8ea /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 3b024a3c9ed141a327232667c4a9fcb898286e75 (diff) | |
download | bcm5719-llvm-438e501b2e9ca20237ec33561e5e62b4d79a102a.tar.gz bcm5719-llvm-438e501b2e9ca20237ec33561e5e62b4d79a102a.zip |
Move the other Sema::ActOnLinkageSpec to SemaDeclCXX.
Move Sema::ActOnDefs to SemaDeclObjC
llvm-svn: 61126
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 7a2d72d1b7b..29605b6485f 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -1980,6 +1980,32 @@ bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { return false; } +/// ActOnLinkageSpec - Parsed a C++ linkage-specification that +/// contained braces. Lang/StrSize contains the language string that +/// was parsed at location Loc. Decls/NumDecls provides the +/// declarations parsed inside the linkage specification. +Sema::DeclTy *Sema::ActOnLinkageSpec(SourceLocation Loc, + SourceLocation LBrace, + SourceLocation RBrace, + const char *Lang, + unsigned StrSize, + DeclTy **Decls, unsigned NumDecls) { + LinkageSpecDecl::LanguageIDs Language; + if (strncmp(Lang, "\"C\"", StrSize) == 0) + Language = LinkageSpecDecl::lang_c; + else if (strncmp(Lang, "\"C++\"", StrSize) == 0) + Language = LinkageSpecDecl::lang_cxx; + else { + Diag(Loc, diag::err_bad_language); + return 0; + } + + // FIXME: Add all the various semantics of linkage specifications + + return LinkageSpecDecl::Create(Context, Loc, Language, + (Decl **)Decls, NumDecls); +} + Sema::DeclTy *Sema::ActOnLinkageSpec(SourceLocation Loc, const char *Lang, unsigned StrSize, DeclTy *D) { |