diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2024-08-21 09:05:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-21 09:05:55 -0400 |
commit | aa088438784dd76a859eee229ddaec17e0cb0651 (patch) | |
tree | c0f688b3840893984d4f28774dd562cbc724288f /llvm/unittests/ADT/StringRefTest.cpp | |
parent | 4f14bfeddedcf21e0eaf0ff3ddf7b62938f66df5 (diff) | |
download | llvm-aa088438784dd76a859eee229ddaec17e0cb0651.zip llvm-aa088438784dd76a859eee229ddaec17e0cb0651.tar.gz llvm-aa088438784dd76a859eee229ddaec17e0cb0651.tar.bz2 |
[libc++] Avoid -Wzero-as-null-pointer-constant in operator<=> (#79465)
Issue #43670 describes a situation where the following comparison will
issue a warning when -Wzero-as-null-pointer-constant is enabled:
#include <compare>
auto b = (1 <=> 2) < 0;
This code uses operator<(strong_ordering, Unspecified), which is
specified by the Standard to only work with a literal 0. In the library,
this is achieved by constructing Unspecified from a pointer, which works
but has the downside of triggering the warning.
This patch uses an alternative implementation where we require that the
operator is used exactly with an int of value 0 (known at compile-time),
however that value can technically be an expression like `1 - 1`, which
makes us a bit less strict than what's specified in the Standard.
Fixes #43670
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
0 files changed, 0 insertions, 0 deletions