Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 16 Oct 2014 23:00:46 +0000 (23:00 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 16 Oct 2014 23:00:46 +0000 (23:00 +0000)
commit9c04bce1f1b22feff652b40b0aab1d9ed278baf1
tree823dea72315b07d4c27c6ede1631108c800e196a
parent82e3e373b3e0c4d8d47a60d3ee1f9b348d8cf413
Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were
reverted in r218058 because they triggered a rejects-valid bug in MSVC.

Original commit message from r217995:

Instantiate exception specifications when instantiating function types (other
than the type of a function declaration). We previously didn't instantiate
these at all! This also covers the pathological case where the only mention of
a parameter pack is within the exception specification; this gives us a second
way (other than alias templates) to reach the horrible state where a type
contains an unexpanded pack, but its canonical type does not.

llvm-svn: 219977
15 files changed:
clang/include/clang/AST/DataRecursiveASTVisitor.h
clang/include/clang/AST/Expr.h
clang/include/clang/AST/RecursiveASTVisitor.h
clang/include/clang/AST/Type.h
clang/include/clang/Sema/Sema.h
clang/lib/AST/Type.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExceptionSpec.cpp
clang/lib/Sema/SemaTemplateInstantiate.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/lib/Sema/SemaType.cpp
clang/lib/Sema/TreeTransform.h
clang/test/CXX/except/except.spec/p1.cpp
clang/test/SemaTemplate/instantiate-exception-spec-cxx11.cpp
clang/test/SemaTemplate/instantiate-exception-spec.cpp