summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-10-20 21:53:09 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-10-20 21:53:09 +0000
commiteb7ef2e1cae45a04ed92bf2ef7b02417e6022041 (patch)
tree444a9cf43d8fc622e3ade784831cb1e5de775c3e /clang/include
parentfcfe8cd3ae78f26643973affd6e8af182528a682 (diff)
downloadbcm5719-llvm-eb7ef2e1cae45a04ed92bf2ef7b02417e6022041.tar.gz
bcm5719-llvm-eb7ef2e1cae45a04ed92bf2ef7b02417e6022041.zip
Re-commit r284753, reverted in r284778, with a fix for PR30749.
Original commit message: [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: 284785
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