summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules
Commit message (Collapse)AuthorAgeFilesLines
...
* [modules] When merging the pattern of a class template definition into a priorRichard Smith2015-03-114-0/+32
| | | | | | | | | | definition, be sure to update the definition data on all declarations, not just the canonical one, since the pattern might not be in the list of pending definitions (if it used to be canonical itself). One-line fix by me; reduced testcase by Daniel Jasper! llvm-svn: 231950
* [modules] Fix iterator invalidation issue with names being added to a moduleRichard Smith2015-03-114-0/+25
| | | | | | while we're writing out the identifier table. llvm-svn: 231890
* PR21687: when adding a redeclaration of a function with an implicit exceptionRichard Smith2015-03-105-0/+13
| | | | | | | | | specification, update all prior declarations if the new one has an explicit exception specification and the prior ones don't. Patch by Vassil Vassilev! Some minor tweaking and test case by me. llvm-svn: 231738
* [modules] Don't clobber a destructor's operator delete when adding another one;Richard Smith2015-03-104-0/+9
| | | | | | | move the operator delete updating into a separate update record so we can cope with updating another module's destructor's operator delete. llvm-svn: 231735
* [modules] This check is run before we resolve the header, not after, so justRichard Smith2015-03-101-1/+6
| | | | | | | check that private headers are in a list matching the role. (We can't perform the opposite checks for non-private headers because we infer those.) llvm-svn: 231728
* [modules] Don't assert if the same header is named as both a public and aRichard Smith2015-03-092-0/+5
| | | | | | private header within the same module. llvm-svn: 231725
* [modules] Rework merging of redeclaration chains on module import.Richard Smith2015-03-051-2/+7
| | | | | | | | | | | | | | | | | | | | | | We used to save out and eagerly load a (potentially huge) table of merged formerly-canonical declarations when we loaded each module. This was extremely inefficient in the presence of large amounts of merging, and didn't actually save any merging lookup work, because we still needed to perform name lookup to check that our merged declaration lists were complete. This also resulted in a loss of laziness -- even if we only needed an early declaration of an entity, we would eagerly pull in all declarations that had been merged into it regardless. We now store the relevant fragments of the table within the declarations themselves. In detail: * The first declaration of each entity within a module stores a list of first declarations from imported modules that are merged into it. * Loading that declaration pre-loads those other entities, so that they appear earlier within the redeclaration chain. * The name lookup tables list the most recent local lookup result, if there is one, or all directly-imported lookup results if not. llvm-svn: 231424
* [test] Expand a bit on the test case from r231251. NFC.Argyrios Kyrtzidis2015-03-052-3/+5
| | | | llvm-svn: 231346
* Temporary XFAILs for HexagonRick Foos2015-03-041-0/+1
| | | | | | | | | | | | | | Summary: Temporary XFAIL's until patches done. Reviewers: echristo, adasgupt, colinl Reviewed By: colinl Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8044 llvm-svn: 231318
* [Modules] Fix crash in Preprocessor::getLastMacroWithSpelling().Argyrios Kyrtzidis2015-03-042-0/+17
| | | | | | Macro names that got undefined inside a module may not have their MacroInfo set. llvm-svn: 231251
* [ASTUnit] Fix crash when trying to load a module file via ↵Argyrios Kyrtzidis2015-03-031-0/+6
| | | | | | | | ASTUnit::LoadFromASTFile. rdar://19997358 llvm-svn: 231060
* Remove shell requirement from test/Modules/explicit-build-relpath.cppReid Kleckner2015-03-021-2/+0
| | | | | | It only relies on 'cd', which the internal shell has now. llvm-svn: 231031
* Revert bad change from r231029Reid Kleckner2015-03-021-0/+1
| | | | llvm-svn: 231030
* Remove shell requirements from tests that use 'cd'Reid Kleckner2015-03-027-15/+3
| | | | | | | | Modules and Tooling tests in particular tend to want to change the cwd, so we were missing test coverage in this area on Windows. It should now be easier to write such portable tests. llvm-svn: 231029
* Add PS4's autolink syntax to autolink.m's CHECK lines.Filipe Cabecinhas2015-02-281-2/+2
| | | | llvm-svn: 230841
* Give better diagnostics when -fmodule-file= finds a bad file: if the file isRichard Smith2015-02-281-2/+15
| | | | | | | found indirectly, explain how we got there, and distinguish between 'file not found' and 'file found but invalid'. llvm-svn: 230839
* [modules] Deduplicate when merging lists of template specializations from ↵Richard Smith2015-02-281-20/+41
| | | | | | imported modules. llvm-svn: 230834
* Update Clang tests to handle explicitly typed load changes in LLVM.David Blaikie2015-02-271-2/+2
| | | | llvm-svn: 230795
* [modules] For an inheriting constructor, the inherited constructor is stored inRichard Smith2015-02-273-0/+8
| | | | | | | a map keyed off the canonical declaration. Don't try to set it if we're loading some non-canonical merged declaration. llvm-svn: 230716
* [modules] When loading in multiple canonical definitions of a template,Richard Smith2015-02-274-3/+21
| | | | | | | accumulate the set of specializations rather than overwriting one list with another. llvm-svn: 230712
* [modules] Even if we already have a definition of a class, loading in anotherRichard Smith2015-02-255-0/+72
| | | | | | | | one can give us more lookup results (due to implicit special members). Be sure to complete the redecl chain for every kind of DeclContext before performing a lookup into it, rather than only doing so for NamespaceDecls. llvm-svn: 230558
* Reland (2x) r230314, "Fix codegen for virtual methods that are (re-) ↵Reid Kleckner2015-02-255-0/+66
| | | | | | | | exported from multiple modules." This reverts commits r230477 and r230478. llvm-svn: 230526
* Revert r230448, "Reland r230314 "Fix codegen for virtual methods that are ↵NAKAMURA Takumi2015-02-255-66/+0
| | | | | | (re-) exported from multiple modules."", since I have reverted r230446. llvm-svn: 230477
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-258-21/+3
| | | | llvm-svn: 230454
* Revert "Add a missing target requirement."Adrian Prantl2015-02-251-1/+1
| | | | llvm-svn: 230453
* Reland r230314 "Fix codegen for virtual methods that are (re-) exported from ↵Reid Kleckner2015-02-255-0/+66
| | | | | | | | | | multiple modules." This reverts the revert from commit r230406. The changes in r230445 and r230446 make the test pass on Windows now. llvm-svn: 230448
* Add a missing target requirement.Adrian Prantl2015-02-251-1/+1
| | | | llvm-svn: 230429
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-258-3/+21
| | | | | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. This reapplies r230044 with a fixed configure+make build and updated dependencies and testcase requirements. Over the last iteration this version adds - missing target requirements for testcases that specify an x86 triple, - a missing clangCodeGen.a dependency to libClang.a in the make build. rdar://problem/19104245 llvm-svn: 230423
* [modules] Fix a bug that would result in a build with P paths through a moduleRichard Smith2015-02-251-0/+188
| | | | | | | graph with M modules to take O(P) time, not just O(M) time, when using explicit module builds. llvm-svn: 230412
* Revert r230314, "Fix codegen for virtual methods that are (re-) exported ↵NAKAMURA Takumi2015-02-255-66/+0
| | | | | | | | | | from multiple modules." It crashes for targeting (i686|x86_64)-win32. clang: clang/lib/AST/VTableBuilder.cpp:142: {anonymous}::FinalOverriders::OverriderInfo {anonymous}::FinalOverriders::getOverrider(const clang::CXXMethodDecl*, clang::CharUnits) const: Assertion `OverridersMap.count(std::make_pair(MD, BaseOffset)) && "Did not find overrider!"' failed. llvm-svn: 230406
* Fix codegen for virtual methods that are (re-) exported from multiple modules.Manuel Klimek2015-02-245-0/+66
| | | | | | | Fixes multiple crashes where a non-canonical decl would be used as key in a lookup. llvm-svn: 230314
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-241-14/+0
| | | | | | | This reverts commit r230305. Off to fix another round of missing dependencies on various platforms. llvm-svn: 230309
* Don't load Framework module.map files when searching subdirectoriesBen Langmuir2015-02-243-2/+4
| | | | | | | | | | | This would cause frameworks to have spurious "redefinition" errors if they had both a (legacy) "module.map" and a (new) "module.modulemap" file and we happened to do a sub-directory search in that directory using a non-framework include path (e.g. -Ifoo/ -Ffoo/). For migration purposes it's very handy that the compiler will prefer the new spelling of the filename and not look at the old one if it doesn't need to. llvm-svn: 230308
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-241-0/+14
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 3. llvm-svn: 230305
* [modules] Properly check whether a declaration is std::initializer_list. ThisRichard Smith2015-02-246-5/+20
| | | | | | | bug is not actually modules-specific, but it's a little tricky to tickle it outside of modules builds, so submitting with the reduced testcase I have. llvm-svn: 230303
* [modules] Ensure we've imported all declarations of a template beforeRichard Smith2015-02-243-0/+41
| | | | | | | attempting to lazily deserialize its specializations; otherwise, there might be pending specializations that we don't know about yet. llvm-svn: 230301
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-211-14/+0
| | | | | | | | This reverts commit 230099. The Linux configure+make build variant still needs some work. llvm-svn: 230103
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-201-0/+14
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 2. llvm-svn: 230089
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-201-14/+0
| | | | | | | | This reverts commit r230067. Investigating another batch of problems found by the bots. llvm-svn: 230073
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-201-0/+14
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. llvm-svn: 230067
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-201-14/+0
| | | | | | | | | This reverts commit r230044 while dealing with buildbot breakage. Conflicts: test/Modules/module_container.m llvm-svn: 230052
* Require a target for this testacse.Adrian Prantl2015-02-201-1/+1
| | | | llvm-svn: 230048
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-201-0/+14
| | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 llvm-svn: 230044
* Add -fno-implicit-modules.Manuel Klimek2015-02-203-0/+42
| | | | | | | If this flag is set, we error out when a module build is required. This is useful in environments where all required modules are passed via -fmodule-file. llvm-svn: 230006
* Revert "Mangle the IsSystem bit into the .pcm file name"Ben Langmuir2015-02-191-8/+0
| | | | | | | | While I investigate some possible problems with this patch. This reverts commit r228966 llvm-svn: 229910
* [PCH/Modules] Check that the specific module cache path the PCH was built ↵Argyrios Kyrtzidis2015-02-192-2/+2
| | | | | | | | | | | | with, is the same as the one in the current compiler invocation. If they differ reject the PCH. This protects against the badness occurring from getting modules loaded from different module caches (see crashes). rdar://19889860 llvm-svn: 229909
* Make -fmodules-decluse and -fmodules-strict-decluse compatible options.Daniel Jasper2015-02-191-0/+36
| | | | | | They don't actually influence the result of the module compilation. llvm-svn: 229834
* Allow errors on use of a private module header to be disabled, to better ↵Richard Smith2015-02-191-0/+1
| | | | | | support incremental transition to modules. llvm-svn: 229788
* [modules] Accept //-style comments in module maps on purpose rather than byRichard Smith2015-02-141-0/+4
| | | | | | accident, and accept them even when they begin '//*'. llvm-svn: 229240
* [modules] If we have a choice between including a file textually and importingRichard Smith2015-02-135-0/+19
| | | | | | a prebuilt form from a module, prefer the modular form, all else being equal. llvm-svn: 229188
OpenPOWER on IntegriCloud