summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/modules-ts/basic
Commit message (Collapse)AuthorAgeFilesLines
* [c++2a] Implement semantic restrictions for 'export' declarations.Richard Smith2019-04-223-20/+0
| | | | llvm-svn: 358932
* [c++20] Parsing support for module-declarations, import-declarations,Richard Smith2019-04-141-21/+13
| | | | | | | | | and the global and private module fragment. For now, the private module fragment introducer is ignored, but use of the global module fragment introducer should be properly enforced. llvm-svn: 358353
* Bring r325915 back.Rafael Espindola2018-02-233-33/+33
| | | | | | | | | | | | | | | The tests that failed on a windows host have been fixed. Original message: Start setting dso_local for COFF. With this there are still some GVs where we don't set dso_local because setGVProperties is never called. I intend to fix that in followup commits. This is just the bare minimum to teach shouldAssumeDSOLocal what it should do for COFF. llvm-svn: 325940
* [Modules TS] Diagnose attempts to enter module implementation units without ↵Richard Smith2017-10-101-5/+6
| | | | | | the module interface being available. llvm-svn: 315381
* [Modules TS] Module ownership semantics for redeclarations.Richard Smith2017-10-103-0/+118
| | | | | | | | | | | | | | | | | When declaring an entity in the "purview" of a module, it's never a redeclaration of an entity in the purview of a default module or in no module ("in the global module"). Don't consider those other declarations as possible redeclaration targets if they're not visible, and reject any cases where we pick a prior visible declaration that violates this rule. This reinstates r315251 and r315256, reverted in r315309 and r315308 respectively, tweaked to avoid triggering a linkage calculation when declaring implicit special members (this exposed our pre-existing issue with typedef names for linkage changing the linkage of types whose linkage has already been computed and cached in more cases). A testcase for that regression has been added in r315366. llvm-svn: 315379
* Revert "[Modules TS] Module ownership semantics for redeclarations."Eric Liu2017-10-103-118/+0
| | | | | | This reverts commit r315251. See the original commit thread for reason. llvm-svn: 315309
* [Modules TS] Module ownership semantics for redeclarations.Richard Smith2017-10-093-0/+118
| | | | | | | | | | When declaring an entity in the "purview" of a module, it's never a redeclaration of an entity in the purview of a default module or in no module ("in the global module"). Don't consider those other declarations as possible redeclaration targets if they're not visible, and reject any cases where we pick a prior visible declaration that violates this rule. llvm-svn: 315251
* Add target triple to improve the happiness of MSVC buildbots.Richard Smith2017-09-071-2/+2
| | | | llvm-svn: 312749
* [modules ts] Add test for [basic.link]p3.Richard Smith2017-09-071-0/+11
| | | | llvm-svn: 312696
* [modules ts] Ensure that module linkage variables are always emitted and ↵Richard Smith2017-09-072-6/+13
| | | | | | always have their name mangled. llvm-svn: 312684
* [modules ts] Emit global variables in a module interface unit as part of ↵Richard Smith2017-09-062-10/+6
| | | | | | that unit, not in importers. llvm-svn: 312665
* Implement Itanium name mangling support for C++ Modules TS.Richard Smith2017-09-043-22/+23
| | | | | | | | | | | | This follows the scheme agreed with Nathan Sidwell, which can be found here: https://gcc.gnu.org/wiki/cxx-modules?action=AttachFile This will be proposed to the itanium-cxx-abi list once we have some experience with how well it works; the ABI for this TS should be considered unstable until it is part of the Itanium C++ ABI. llvm-svn: 312467
* [modules] Add ability to specify module name to module file mapping (reapply)Boris Kolpackov2017-08-311-0/+39
| | | | | | | | | | | | | | | | | | | | Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semantics is preserved (the module file is loaded whether needed or not). If the name is specified, then the mapping is treated as just another prebuilt module search mechanism, similar to -fprebuilt-module-path, and the module file is only loaded if actually used (e.g., via import). With one exception: this mapping also overrides module file references embedded in other modules (which can be useful if module files are moved/renamed as often happens during remote compilation). This override semantics requires some extra work: we now store the module name in addition to the file name in the serialized AST representation. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D35020 llvm-svn: 312220
* Fix path regex in test to match on WindowsBoris Kolpackov2017-08-311-1/+1
| | | | llvm-svn: 312217
* Revert r312105 [modules] Add ability to specify module name to module file ↵Victor Leschuk2017-08-301-39/+0
| | | | | | | | mapping Looks like it breaks win10 builder. llvm-svn: 312112
* [modules] Add ability to specify module name to module file mappingBoris Kolpackov2017-08-301-0/+39
| | | | | | | | | | | | | | | | | | | | Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semantics is preserved (the module file is loaded whether needed or not). If the name is specified, then the mapping is treated as just another prebuilt module search mechanism, similar to -fprebuilt-module-path, and the module file is only loaded if actually used (e.g., via import). With one exception: this mapping also overrides module file references embedded in other modules (which can be useful if module files are moved/renamed as often happens during remote compilation). This override semantics requires some extra work: we now store the module name in addition to the file name in the serialized AST representation. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D35020 llvm-svn: 312105
* [modules ts] Basic for module linkage.Richard Smith2017-07-073-7/+106
| | | | | | | | | | In addition to the formal linkage rules, the Modules TS includes cases where internal-linkage symbols within a module interface unit can be referenced from outside the module via exported inline functions / templates. We give such declarations "module-internal linkage", which is formally internal linkage, but results in an externally-visible symbol. llvm-svn: 307434
* [modules ts] Do not emit strong function definitions from the module ↵Richard Smith2017-07-063-0/+90
| | | | | | interface unit in every user. llvm-svn: 307232
* [modules ts] Declarations from a module interface unit are only visible outsideRichard Smith2017-07-053-0/+62
| | | | | | the module if declared in an export block. llvm-svn: 307115
* Rearrange some Modules TS testcases into test/CXX/modules-ts.Richard Smith2017-04-221-0/+55
llvm-svn: 301066
OpenPOWER on IntegriCloud