[libc-commits] [libc] b5c2fa1 - [libc] Mark operator== const to avoid ambiguity in C++20. (#68805)
via libc-commits
libc-commits at lists.llvm.org
Wed Oct 11 20:59:18 PDT 2023
Author: Samira Bazuzi
Date: 2023-10-11T23:59:13-04:00
New Revision: b5c2fa14ea771c3333435b18afad1d5e09f69fbe
URL: https://github.com/llvm/llvm-project/commit/b5c2fa14ea771c3333435b18afad1d5e09f69fbe
DIFF: https://github.com/llvm/llvm-project/commit/b5c2fa14ea771c3333435b18afad1d5e09f69fbe.diff
LOG: [libc] Mark operator== const to avoid ambiguity in C++20. (#68805)
C++20 will automatically generate an operator== with reversed operand
order, which is ambiguous with the written operator== when one argument
is marked const and the other isn't.
This operator currently triggers -Wambiguous-reversed-operator at usage
site libc/test/UnitTest/PrintfMatcher.cpp:28.
Added:
Modified:
libc/src/stdio/printf_core/core_structs.h
Removed:
################################################################################
diff --git a/libc/src/stdio/printf_core/core_structs.h b/libc/src/stdio/printf_core/core_structs.h
index e96bc4dc0f8dd3c..88a13703fd94761 100644
--- a/libc/src/stdio/printf_core/core_structs.h
+++ b/libc/src/stdio/printf_core/core_structs.h
@@ -53,7 +53,7 @@ struct FormatSection {
// This operator is only used for testing and should be automatically
// optimized out for release builds.
- bool operator==(const FormatSection &other) {
+ bool operator==(const FormatSection &other) const {
if (has_conv != other.has_conv)
return false;
More information about the libc-commits
mailing list