]> granicus.if.org Git - clang/commit
[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)
commitbb4ce7e20e95e0d39555ed366e2778de6cdcf9c7
tree4854e869bb63c7bdeb6995069648bd0aea5014b2
parentaa265b0578282910841ffec01fda724af6cd1cc7
[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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284905 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/Sema/SemaExceptionSpec.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplateDeduction.cpp
test/CXX/drs/dr0xx.cpp
test/CXX/drs/dr13xx.cpp
test/CXX/expr/expr.post/expr.static.cast/p7.cpp [new file with mode: 0644]
test/CXX/expr/p13.cpp
test/CXX/over/over.over/p1.cpp
test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp
test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p5.cpp
www/cxx_dr_status.html
www/make_cxx_dr_status