[c++1z] P0012R1: Implement a few remaining pieces: downgrade diagnostic for
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 22 Oct 2016 01:32:19 +0000 (01:32 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 22 Oct 2016 01:32:19 +0000 (01:32 +0000)
commit1be59c510612d911352ffc2ca06ab344e21eea4e
tree2ae64277c64135bce53319cf060548a1408c0089
parent738837eed96853cc38a81f5f450a22fcf1b6ac64
[c++1z] P0012R1: Implement a few remaining pieces: downgrade diagnostic for
mismatched dynamic exception specifications in expressions from an error to a
warning, since this is no longer ill-formed in C++1z.

Allow reference binding of a reference-to-non-noexcept function to a noexcept
function lvalue. As defect resolutions, also allow a conditional between
noexcept and non-noexcept function lvalues to produce a non-noexcept function
lvalue (rather than decaying to a function pointer), and allow function
template argument deduction to deduce a reference to non-noexcept function when
binding to a noexcept function type.

llvm-svn: 284905
16 files changed:
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaExceptionSpec.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/Sema/SemaTemplateDeduction.cpp
clang/test/CXX/drs/dr0xx.cpp
clang/test/CXX/drs/dr13xx.cpp
clang/test/CXX/expr/expr.post/expr.static.cast/p7.cpp [new file with mode: 0644]
clang/test/CXX/expr/p13.cpp
clang/test/CXX/over/over.over/p1.cpp
clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp
clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p5.cpp
clang/www/cxx_dr_status.html
clang/www/make_cxx_dr_status