diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-20 21:53:09 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-20 21:53:09 +0000 |
commit | eb7ef2e1cae45a04ed92bf2ef7b02417e6022041 (patch) | |
tree | 444a9cf43d8fc622e3ade784831cb1e5de775c3e /clang/include | |
parent | fcfe8cd3ae78f26643973affd6e8af182528a682 (diff) | |
download | bcm5719-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.h | 3 | ||||
-rw-r--r-- | clang/include/clang/Sema/Sema.h | 10 |
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; |