CC1 Options: added 'skip-function-bodies' option.
Lang options: added 'flevitation-mode' flag, which triggers compiler …
…to recognize 'levitation syntax extensions'
C++Levitation: Added 'package' keyword. Still doesn't affect AST, onl…
…y syntax.
AST, Sema: Added support for levitation packages. Clang tests, AST, Parser: Added tests for levitation packages.
CXXRecordDecl: Added isLevitationPackage
Sema, Template Instantiator: added draft support for 'global' keyword.
Sema: added draft implementation for package class instantiation.C++Levitation: 'IsPackageDependent' moved from CXXRecordDecl into Tag…
…Decl. It still crashes for default constructor after regular package classes instantiated.
C++Levitation: Added draft for levitation dependencies handling. Adde…
…d comments for Levitation-related Sema methods. TODO: Still have issues with basic HandleLevitationPackageDependency class.
C++Levitation, Sema, fixed HandleLevitationPackageDependency.
TagDecl::isPackageDependent finally moved into Decl, with name isLevitationPackageDependent, which relies on Decl::LevitationPackageDependent bitfield.
New Decl::LevitationPackageDependent property behaves as follows:
* It can be true only for non-nested declarations of package namespaces.
1. If such declaration was created by parser, then it dependent ('true').
2. If such declaration was created during template instantiation, then it inharits pattern flag value.
3. If such declaration was created during package decl instantiation, then it is 'false'.
'PackageClassInstantiationMode' has been renamed into 'PackageClassInstantiationStage'
Minor fix in Sema::isLevitationGlobal method.Added Levitation mode build stage compiler option. Two stages are possible: * Build AST stage * Build Object file stage
C++ Levitation, DeclTemplate.h
* Roled back ClassTemplateDecl::getTemplatedDecl
C++ Levitation, DeclContext::isDependentContext
Added support for package namespaces. Package namespace is dependent context.
C++ Levitation, DeclContext::removeDecl
* Added fix for case when we have no lookup entry for decls to be removed.
Fixed initializations of LevitationPackage flag.
Changed way of marking levitation package classes as package dependent. Since now it is done by Recursive AST Visitor by parser before handleTranslationUnit call.
Added Levitation Decls shadowing for Build Obj stage.
C++Levitation, DeclContext, fixed isDependentContext.
C++ Levitation, reimplemented package dependent declarations marking.
Decl::LevitationPackageDependent is not stored in PCH. Instead introduced Sema::LevitationPackageDependentDecls collection, after we parsed TU, all dependent classes registered there, and then to be stored in PCH as a separated record.
C++ Levitation Package Instantiation reimplemented through PackageDec…
…lsInstantiator (which is a DeclVisitor)
C++ Levitation: Fixed package namespace tests.
C++ Levitation: PackageDependentClassesMarker, fixed support for nest…
…ed namespaces.
Merge branch 'master' into levitation-draft
PR41747: Bugfix for 'AST Printer doesn't print nested name specifier …
…for out of scope record definitions'
C++ Levitation, Sema: all related implementation has been moved into …
…SemaLevitation.cpp
C++ Levitation, Parser: fixed 'unused variable' minor issue.
C++ Levitation: added some TODOs for dependency handling.
C++ Levitation, Sema: Added LevitationDependency classes. It is still…
… remained to complete 'computeAutoDependency' method.
C++ Levitation (ASTDependenciesProcessor and friends).
Added ASTDependenciesProcessor and its satellite classes.
Removed flevitation_mode and flevitation_build_stage.
Instead introduced '-levitation-build-ast' cc program action with its satellite options ('-levitation-deps-output-file=...', '-levitation-sources-root-dir=...', '-levitation-source-file-extension=...').
Also introduced '-levitation-deps-input-file=...' for future non-implemented part.C++ Levitation, gitignore: added more OS X specific cases.
PR41747: Fixes after review (D61566) for 'AST Printer doesn't print n…
…ested name specifier for out of scope record definitions'
Merge branch 'master' of https://github.com/llvm/llvm-project
C++ Levitation, BuildAST action. Bigger part seems to be complite. It…
… is remained to create second PCH Generator which will emit only declaration part. Some details: * Introduced separate "clang/Levitation" directory. * From Sema Dependency-related classes have been moved into clang/Levitation/Dependencies * LevitationFrontendActions and LevitationASTConsumers also moved into this dir. * Some frontend options have been corrected. Current syntax for launching BuildAST is: <clang> -cc1 -xc++ -std=c++17 \ -levitation-build-ast \ -levitation-sources-root-dir=<sources root dir> \ -levitation-deps-output-file=<dependencies output file> \ -levitation-source-file-extension=<levitation source ext with '.' symbol, e.g. '.cppl'> \ <input source files, e.g. 'test-project/P1/A.cppl'> -levitation-decl-ast-file-extension=<additional extension suffix for decl ast, with '.'> \ [-o <output definition ast file name, also decl ast will be emitted but as well>]
C++ Levitation: alftered basicGVALinkageForFunction, added Decl-only …
…AST creator. Still draft, .decl-ast files are not created as expected (only tmp copy exists, but fail rename doesn't happen).
C++ Levitation, Decl AST Generator: fixed file creation.
C++ Levitation, NON-COMPILABLE: added sketch for correct 'Build Objec…
…t' implementation. We should handle properly .ast and .decl-ast input files.
C++ Levitation, NON-COMPILABLE: Another sketch for build object stage…
…. We should rework it though.
C++ Levitation: -levitation-dependency acts very similarly to -ast-me…
…rge. This commit reverts previous one.
C++ Levitation, Reverted some old code: removed CompileAST, removed L…
…evitationAST input kind.
C++ Levitation: Removed file extension frontend options.
C++ Levitation: rejected EmitDeclarationsOnly for PCH Generator.
C++ Levitation, ASTReader: added ReadDeclarationsOnly.
C++ Levitation, ASTReader: optimized use of ReadDeclarationsOnly.
C++ Levitation: MergeASTDependenciesAction has been replaced with Lev…
…itationBuildObjectAction
C++ Levitation: markLevitationPackageDeclsAsPackageDependent moved in…
…to ParserPostProcessor AST consumer. Also some minor refactoring was made.
C++ Levitation, LevitationFrontendActions: Introduced MultiplexConsum…
…erBuilder.
C++ Levitation, NON-RUNNABLE: This is just an idea, that we perhaps c…
…ould reuse ASTReader and call ReadASTCore several times during its lifetime, since it looks like this use-case is supported and used during chained modules read (through IMPORTS PCH block).
C++ Levitation: LevitationModulesReader somehow managed to read both …
…dependency and main file. But with two very draft FIXMEs though. Should be reworked in next commit: probably we could introduce ModuleKind::MK_LevitationDependency which is almost clone of MK_PCH, with minor difference (see commit changes).)
C++ Levitation: inruduced ModuleKind::MK_LevitationDependency. Remove…
…d unused code.