aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Parse/Parser.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-09-08 23:14:54 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-09-08 23:14:54 +0000
commit8df390f9ebc87702ae2b6155e5d81477c481db6f (patch)
tree493246882f1e97949bb1b2966ca99a3a1da21aaa /clang/lib/Parse/Parser.cpp
parent10037b93e90672f1819b3bc32d8d2dbeec68ae83 (diff)
downloadllvm-8df390f9ebc87702ae2b6155e5d81477c481db6f.zip
llvm-8df390f9ebc87702ae2b6155e5d81477c481db6f.tar.gz
llvm-8df390f9ebc87702ae2b6155e5d81477c481db6f.tar.bz2
C++ Modules TS: Add parsing and some semantic analysis support for
export-declarations. These don't yet have an effect on name visibility; we still export everything by default. llvm-svn: 280999
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r--clang/lib/Parse/Parser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp
index 0a54ea0..8cc97e5 100644
--- a/clang/lib/Parse/Parser.cpp
+++ b/clang/lib/Parse/Parser.cpp
@@ -770,11 +770,17 @@ Parser::ParseExternalDeclaration(ParsedAttributesWithRange &attrs,
: Sema::PCC_Namespace);
cutOffParsing();
return nullptr;
+ case tok::kw_export:
+ if (getLangOpts().ModulesTS) {
+ SingleDecl = ParseExportDeclaration();
+ break;
+ }
+ // This must be 'export template'. Parse it so we can diagnose our lack
+ // of support.
case tok::kw_using:
case tok::kw_namespace:
case tok::kw_typedef:
case tok::kw_template:
- case tok::kw_export: // As in 'export template'
case tok::kw_static_assert:
case tok::kw__Static_assert:
// A function definition cannot start with any of these keywords.