diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2019-01-21 16:25:08 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2019-01-21 16:25:08 +0000 |
commit | a2b04ad5c4a0f2c1cbe75e206f960cfda4d9e025 (patch) | |
tree | 186d36dd1e4e1d6e4338d6884a3b08e5b48c7c1d /clang/lib/Sema/SemaLambda.cpp | |
parent | f9694fdbbc67ed58f547a66c86b67d10e84bbfe4 (diff) | |
download | bcm5719-llvm-a2b04ad5c4a0f2c1cbe75e206f960cfda4d9e025.tar.gz bcm5719-llvm-a2b04ad5c4a0f2c1cbe75e206f960cfda4d9e025.zip |
Mark the lambda function pointer conversion operator as noexcept.
This implements CWG DR 1722 and fixes PR40309. Patch by Ignat Loskutov.
llvm-svn: 351750
Diffstat (limited to 'clang/lib/Sema/SemaLambda.cpp')
-rw-r--r-- | clang/lib/Sema/SemaLambda.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp index 70fcacb157a..4ed9fdc359d 100644 --- a/clang/lib/Sema/SemaLambda.cpp +++ b/clang/lib/Sema/SemaLambda.cpp @@ -1227,9 +1227,10 @@ static void addFunctionPointerConversion(Sema &S, FunctionProtoType::ExtProtoInfo ConvExtInfo( S.Context.getDefaultCallingConvention( /*IsVariadic=*/false, /*IsCXXMethod=*/true)); - // The conversion function is always const. + // The conversion function is always const and noexcept. ConvExtInfo.TypeQuals = Qualifiers(); ConvExtInfo.TypeQuals.addConst(); + ConvExtInfo.ExceptionSpec.Type = EST_BasicNoexcept; QualType ConvTy = S.Context.getFunctionType(PtrToFunctionTy, None, ConvExtInfo); |