diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-04-27 02:58:17 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-04-27 02:58:17 +0000 |
commit | 009d37df084524bc027fa893b47b17faba9815fa (patch) | |
tree | b55b498a118b6ad59c510b579b22b63c3947fe29 /lib/Sema/SemaExprCXX.cpp | |
parent | de845c08ccfe69d37f648ef4b5faa7d3782f2b71 (diff) | |
download | clang-009d37df084524bc027fa893b47b17faba9815fa.tar.gz |
Reinstate r359059, reverted in r359361, with a fix to properly prevent
us emitting the operand of __builtin_constant_p if it has side-effects.
Original commit message:
Fix interactions between __builtin_constant_p and constexpr to match
current trunk GCC.
GCC permits information from outside the operand of
__builtin_constant_p (but in the same constant evaluation context) to be
used within that operand; clang now does so too. A few other minor
deviations from GCC's behavior showed up in my testing and are also
fixed (matching GCC):
* Clang now supports nullptr_t as the argument type for
__builtin_constant_p
* Clang now returns true from __builtin_constant_p if called with a
null pointer
* Clang now returns true from __builtin_constant_p if called with an
integer cast to pointer type
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359367 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExprCXX.cpp')
0 files changed, 0 insertions, 0 deletions