176edba5311f6eff0cad2631449885ddf4fbc9ea |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master Clang for rebase to r222490. Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
7a3dfcdfb32c08f2f6f4a90a097bb240fdc1a94c |
|
16-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Test that we can merge together explicit and partial specializations from merged declarations of a class template. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
d692a84e18fb48e6442bee83364f1d301f5b8404 |
|
16-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ modules: merging for enumerations and enumerators with multiple definitions (eg through template instantiations in multiple modules). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
8bfc1e118169229960b90a4ef8761ee0eb296755 |
|
14-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Merge common pointers for redeclarations of the same template across modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
b60fae50d38a0291e1c5731b2fb22849d26ca342 |
|
09-Sep-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ modules: if a class is defined in multiple modules (for instance, because it is an implicit instantiation of a class template specialization), pick the first-loaded definition to be the canonical definition, and merge all other definitions into it. This is still rather incomplete -- we need to extend every form of declaration that can appear within a CXXRecordDecl to be redeclarable if it came from an AST file (this includes fields, enumerators, ...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
1888b910a5512262228e785cc9caf90296c06a45 |
|
02-Aug-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
When merging redeclaration chains across modules, if a declaration is visible in one module but is only declared as a friend in another module, keep it visible in the result of the merge. This is incomplete on two axes: 1) Our handling of local extern declarations is basically broken (we put them in the wrong decl context, and don't find them in redeclaration lookup, unless they've previously been declared), and this results in them making friends visible after a merge. 2) Eventually we'll need to mark that this has happened, and more carefully check whether a declaration should be visible if it was only visible in some of the modules in which it was declared. Fortunately it's rare for the identifier namespace of a declaration to change along its redeclaration chain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
b775100fea6d8955149897dae1adca50ca471d17 |
|
26-Jul-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
When we perform dependent name lookup during template instantiation, it's not sufficient to only consider names visible at the point of instantiation, because that may not include names that were visible when the template was defined. More generally, if the instantiation backtrace goes through a module M, then every declaration visible within M should be available to the instantiation. Any of those declarations might be part of the interface that M intended to export to a template that it instantiates. The fix here has two parts: 1) If we find a non-visible declaration during name lookup during template instantiation, check whether the declaration was visible from the defining module of all entities on the active template instantiation stack. The defining module is not the owning module in all cases: we look at the module in which a template was defined, not the module in which it was first instantiated. 2) Perform pending instantiations at the end of a module, not at the end of the translation unit. This is general goodness, since it significantly cuts down the amount of redundant work that is performed in every TU importing a module, and also implicitly adds the module containing the point of instantiation to the set of modules checked for declarations in a lookup within a template instantiation. There's a known issue here with template instantiations performed while building a module, if additional imports are added later on. I'll fix that in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
9db7f57c1e3db8a2d06a833a4e0341f0fe310640 |
|
25-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix deserializing of class template partial specializations. Assign sequence numbers as we deserialize class template partial specializations. We can't assume that the old sequence numbers will work. The sequence numbers are still deterministic, but are now a lot less predictable for class template partial specializations in modules/PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
98f0723ca24c604d72a10047b10b60743ac71f27 |
|
25-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Check for matching template-parameter-lists when merging template declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|
acd954bd8f28383e7538c4d0fd989763744f5e99 |
|
24-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Slightly improve cross-module merging for function templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Modules/Inputs/cxx-templates-b.h
|