summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaLambda.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2019-01-21 16:25:08 +0000
committerAaron Ballman <aaron@aaronballman.com>2019-01-21 16:25:08 +0000
commita2b04ad5c4a0f2c1cbe75e206f960cfda4d9e025 (patch)
tree186d36dd1e4e1d6e4338d6884a3b08e5b48c7c1d /clang/lib/Sema/SemaLambda.cpp
parentf9694fdbbc67ed58f547a66c86b67d10e84bbfe4 (diff)
downloadbcm5719-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.cpp3
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);
OpenPOWER on IntegriCloud