aboutsummaryrefslogtreecommitdiff
path: root/gdbsupport/ChangeLog
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2020-09-14 21:16:57 +0100
committerPedro Alves <pedro@palves.net>2020-09-14 22:19:31 +0100
commit1945192cb9a6184fb805d514ce4ca1bc8999b587 (patch)
treefecbaf2f67a187989992cf5673b93854f19c1e45 /gdbsupport/ChangeLog
parent69896a2cd12e7819a81823430b3ece5a7c9a6973 (diff)
downloadbinutils-1945192cb9a6184fb805d514ce4ca1bc8999b587.zip
binutils-1945192cb9a6184fb805d514ce4ca1bc8999b587.tar.gz
binutils-1945192cb9a6184fb805d514ce4ca1bc8999b587.tar.bz2
Rewrite valid-expr.h's internals in terms of the detection idiom (C++17/N4502)
An earlier attempt at doing this had failed (wouldn't work in GCCs around 4.8, IIRC), but now that I try again, it works. I suspect that my previous attempt did not use the pre C++14-safe void_t (in traits.h). I want to switch to this model because: - It's the standard detection idiom that folks will learn starting with C++17. - In the enum_flags unit tests, I have a static_assert that triggers a warning (resulting in build error), which GCC does not suppress because the warning is not being triggered in the SFINAE context. Switching to the detection idiom fixes that. Alternatively, switching to the C++03-style expression-validity checking with a varargs overload would allow addressing that, but I think that would be going backwards idiomatically speaking. - While this patch shows a net increase of lines of code, the magic being added to traits.h can be removed in a few years when we start requiring C++17. gdbsupport/ChangeLog: * traits.h (struct nonesuch, struct detector, detected_or) (detected_or_t, is_detected, detected_t, detected_or) (detected_or_t, is_detected_exact, is_detected_convertible): New. * valid-expr.h (CHECK_VALID_EXPR_INT): Use gdb::is_detected_exact.
Diffstat (limited to 'gdbsupport/ChangeLog')
-rw-r--r--gdbsupport/ChangeLog7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog
index 6cda605..4858cc6 100644
--- a/gdbsupport/ChangeLog
+++ b/gdbsupport/ChangeLog
@@ -1,3 +1,10 @@
+2020-09-14 Pedro Alves <pedro@palves.net>
+
+ * traits.h (struct nonesuch, struct detector, detected_or)
+ (detected_or_t, is_detected, detected_t, detected_or)
+ (detected_or_t, is_detected_exact, is_detected_convertible): New.
+ * valid-expr.h (CHECK_VALID_EXPR_INT): Use gdb::is_detected_exact.
+
2020-09-10 Kamil Rytarowski <n54@gmx.com>
* eintr.h: New file.