]> granicus.if.org Git - clang/commit
[c++1z] P0195R2: Support pack-expansion of using-declarations.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 20 Dec 2016 21:35:28 +0000 (21:35 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 20 Dec 2016 21:35:28 +0000 (21:35 +0000)
commitc8c1a1961a459f5f79ba8dfb08a2d53d5443bf32
treec042187cdc68b1038bde77c652ded7a849bd53d3
parenta966b1fd6ce257ab259c534488003e7aef57a0ff
[c++1z] P0195R2: Support pack-expansion of using-declarations.

This change introduces UsingPackDecl as a marker for the set of UsingDecls
produced by pack expansion of a single (unresolved) using declaration. This is
not strictly necessary (we just need to be able to map from the original using
declaration to its expansions somehow), but it's useful to maintain the
invariant that each declaration reference instantiates to refer to one
declaration.

This is a re-commit of r290080 (reverted in r290092) with a fix for a
use-after-lifetime bug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290203 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
include/clang/AST/DeclCXX.h
include/clang/AST/RecursiveASTVisitor.h
include/clang/Basic/DeclNodes.td
include/clang/Basic/DiagnosticParseKinds.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Parse/Parser.h
include/clang/Sema/Sema.h
include/clang/Sema/Template.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/DeclBase.cpp
lib/AST/DeclCXX.cpp
lib/CodeGen/CGDecl.cpp
lib/Parse/ParseDeclCXX.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp
lib/Sema/SemaTemplateVariadic.cpp
lib/Sema/TreeTransform.h
lib/Serialization/ASTCommon.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriterDecl.cpp
test/PCH/cxx1z-using-declaration.cpp [new file with mode: 0644]
test/Parser/cxx1z-using-declaration.cpp
test/SemaTemplate/cxx1z-using-declaration.cpp [new file with mode: 0644]
tools/libclang/CIndex.cpp