summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-12-17 07:13:27 +0000
committerChris Lattner <sabre@nondot.org>2008-12-17 07:13:27 +0000
commit438e501b2e9ca20237ec33561e5e62b4d79a102a (patch)
tree94e0441ef4c335d4ad4c7e86f5d37f1bd864b8ea /clang/lib/Sema/SemaDeclCXX.cpp
parent3b024a3c9ed141a327232667c4a9fcb898286e75 (diff)
downloadbcm5719-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.cpp26
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) {
OpenPOWER on IntegriCloud