[0/3] Rewrite enum_flags, add unit tests, fix problems

Message ID 20200821144523.19451-1-pedro@palves.net
Headers show
Series
  • Rewrite enum_flags, add unit tests, fix problems
Related show

Message

Pedro Alves Aug. 21, 2020, 2:45 p.m.
This is an update of a version of this series that I posted back in
2016:

 [PATCH 0/3] enum_flags: Fix problems and add comprehensive unit tests
 https://sourceware.org/legacy-ml/gdb-patches/2016-11/msg00079.html

But I never followed thorough with it, leaving it collecting dust on
my github.  Over the following years, I polished it and tweaked it
further and extended the unit tests, but never managed to re-submit it
all upstream.

Since the subject of enum_flags came up again this week, I thought I'd
try it again.  This is the result.

Pedro Alves (3):
  Rewrite valid-expr.h's internals in terms of the detection idiom
    (C++17/N4502)
  Use type_instance_flags more throughout
  Rewrite enum_flags, add unit tests, fix problems

 gdb/Makefile.in                      |   1 +
 gdb/btrace.c                         |   4 +-
 gdb/compile/compile-c-types.c        |   3 +-
 gdb/compile/compile-cplus-symbols.c  |   4 +-
 gdb/compile/compile-cplus-types.c    |  10 +-
 gdb/dwarf2/read.c                    |   7 +-
 gdb/eval.c                           |   2 +-
 gdb/gdbarch.c                        |   6 +-
 gdb/gdbarch.h                        |  12 +-
 gdb/gdbarch.sh                       |   8 +-
 gdb/gdbtypes.c                       |  58 ++--
 gdb/gdbtypes.h                       |  15 +-
 gdb/go-exp.y                         |   2 +-
 gdb/record-btrace.c                  |  10 +-
 gdb/stabsread.c                      |   2 +-
 gdb/type-stack.c                     |   4 +-
 gdb/unittests/enum-flags-selftests.c | 586 +++++++++++++++++++++++++++++++++++
 gdbsupport/enum-flags.h              | 366 +++++++++++++++++-----
 gdbsupport/traits.h                  |  67 ++++
 gdbsupport/valid-expr.h              |  35 ++-
 20 files changed, 1035 insertions(+), 167 deletions(-)
 create mode 100644 gdb/unittests/enum-flags-selftests.c


base-commit: b70e516e89d95d06252cb04ded3397ec0a0a3212
-- 
2.14.5

Comments

Andrew Burgess Aug. 21, 2020, 3:51 p.m. | #1
* Pedro Alves <pedro@palves.net> [2020-08-21 15:45:20 +0100]:

> This is an update of a version of this series that I posted back in

> 2016:

> 

>  [PATCH 0/3] enum_flags: Fix problems and add comprehensive unit tests

>  https://sourceware.org/legacy-ml/gdb-patches/2016-11/msg00079.html

> 

> But I never followed thorough with it, leaving it collecting dust on

> my github.  Over the following years, I polished it and tweaked it

> further and extended the unit tests, but never managed to re-submit it

> all upstream.

> 

> Since the subject of enum_flags came up again this week, I thought I'd

> try it again.  This is the result.


Thanks for doing this work.

I've only skimmed through, but it looks good.

Thanks,
Andrew


> 

> Pedro Alves (3):

>   Rewrite valid-expr.h's internals in terms of the detection idiom

>     (C++17/N4502)

>   Use type_instance_flags more throughout

>   Rewrite enum_flags, add unit tests, fix problems

> 

>  gdb/Makefile.in                      |   1 +

>  gdb/btrace.c                         |   4 +-

>  gdb/compile/compile-c-types.c        |   3 +-

>  gdb/compile/compile-cplus-symbols.c  |   4 +-

>  gdb/compile/compile-cplus-types.c    |  10 +-

>  gdb/dwarf2/read.c                    |   7 +-

>  gdb/eval.c                           |   2 +-

>  gdb/gdbarch.c                        |   6 +-

>  gdb/gdbarch.h                        |  12 +-

>  gdb/gdbarch.sh                       |   8 +-

>  gdb/gdbtypes.c                       |  58 ++--

>  gdb/gdbtypes.h                       |  15 +-

>  gdb/go-exp.y                         |   2 +-

>  gdb/record-btrace.c                  |  10 +-

>  gdb/stabsread.c                      |   2 +-

>  gdb/type-stack.c                     |   4 +-

>  gdb/unittests/enum-flags-selftests.c | 586 +++++++++++++++++++++++++++++++++++

>  gdbsupport/enum-flags.h              | 366 +++++++++++++++++-----

>  gdbsupport/traits.h                  |  67 ++++

>  gdbsupport/valid-expr.h              |  35 ++-

>  20 files changed, 1035 insertions(+), 167 deletions(-)

>  create mode 100644 gdb/unittests/enum-flags-selftests.c

> 

> 

> base-commit: b70e516e89d95d06252cb04ded3397ec0a0a3212

> -- 

> 2.14.5

>
Tom Tromey Sept. 11, 2020, 8:26 p.m. | #2
>>>>> "Andrew" == Andrew Burgess <andrew.burgess@embecosm.com> writes:


>> Since the subject of enum_flags came up again this week, I thought I'd

>> try it again.  This is the result.


Andrew> Thanks for doing this work.

Andrew> I've only skimmed through, but it looks good.

I read through it and I agree.  Thanks for doing this.

Tom