summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-10-20 17:57:33 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-10-20 17:57:33 +0000
commit9c37e66c315764b4ac0460bc17d04ab60ff728de (patch)
tree6e787880d450dd11a2796adf53227e7f20d07271 /clang/include
parent05b0f93ad33dd5df9f69ae5eb0b48d9f76304eb2 (diff)
downloadbcm5719-llvm-9c37e66c315764b4ac0460bc17d04ab60ff728de.tar.gz
bcm5719-llvm-9c37e66c315764b4ac0460bc17d04ab60ff728de.zip
[c++1z] Teach composite pointer type computation how to compute the composite
pointer type of two function pointers with different noexcept specifications. While I'm here, also teach it how to merge dynamic exception specifications. llvm-svn: 284753
Diffstat (limited to 'clang/include')
-rw-r--r--clang/include/clang/Sema/Overload.h3
-rw-r--r--clang/include/clang/Sema/Sema.h10
2 files changed, 8 insertions, 5 deletions
diff --git a/clang/include/clang/Sema/Overload.h b/clang/include/clang/Sema/Overload.h
index 83c6554c64d..f677afe8e26 100644
--- a/clang/include/clang/Sema/Overload.h
+++ b/clang/include/clang/Sema/Overload.h
@@ -145,7 +145,8 @@ namespace clang {
/// pointer-to-member conversion, or boolean conversion.
ImplicitConversionKind Second : 8;
- /// Third - The third conversion can be a qualification conversion.
+ /// Third - The third conversion can be a qualification conversion
+ /// or a function conversion.
ImplicitConversionKind Third : 8;
/// \brief Whether this is the deprecated conversion of a
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 1dd415d3497..08e6a29ca11 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -8954,13 +8954,15 @@ public:
ExprResult &cond, ExprResult &lhs, ExprResult &rhs,
ExprValueKind &VK, ExprObjectKind &OK, SourceLocation questionLoc);
QualType FindCompositePointerType(SourceLocation Loc, Expr *&E1, Expr *&E2,
- bool *NonStandardCompositeType = nullptr);
+ bool *NonStandardCompositeType = nullptr,
+ bool ConvertArgs = true);
QualType FindCompositePointerType(SourceLocation Loc,
ExprResult &E1, ExprResult &E2,
- bool *NonStandardCompositeType = nullptr) {
+ bool *NonStandardCompositeType = nullptr,
+ bool ConvertArgs = true) {
Expr *E1Tmp = E1.get(), *E2Tmp = E2.get();
- QualType Composite = FindCompositePointerType(Loc, E1Tmp, E2Tmp,
- NonStandardCompositeType);
+ QualType Composite = FindCompositePointerType(
+ Loc, E1Tmp, E2Tmp, NonStandardCompositeType, ConvertArgs);
E1 = E1Tmp;
E2 = E2Tmp;
return Composite;
OpenPOWER on IntegriCloud