Hi Joseph,

I found some tests that could be improved, so I've worked on that in the
last few days.  I'll post as a reply to this email the bootstrap and
regression testing results.


v17 changes:

-  Rebase (patches 2/4 and 3/4 from v16b have been merged already).
-  Improve and add tests.

Below is the range diff against v16b.


Have a lovely night!
Alex

Alejandro Colomar (2):
  contrib/: Add support for Cc: and Link: tags
  c: Add __countof__ operator

 contrib/gcc-changelog/git_commit.py    |   5 +-
 gcc/c-family/c-common.cc               |  26 +++++
 gcc/c-family/c-common.def              |   3 +
 gcc/c-family/c-common.h                |   2 +
 gcc/c/c-decl.cc                        |  22 +++-
 gcc/c/c-parser.cc                      |  62 +++++++---
 gcc/c/c-tree.h                         |   4 +
 gcc/c/c-typeck.cc                      | 118 ++++++++++++++++++-
 gcc/doc/extend.texi                    |  30 +++++
 gcc/testsuite/gcc.dg/countof-compile.c | 127 +++++++++++++++++++++
 gcc/testsuite/gcc.dg/countof-vla.c     |  46 ++++++++
 gcc/testsuite/gcc.dg/countof.c         | 150 +++++++++++++++++++++++++
 12 files changed, 570 insertions(+), 25 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/countof-compile.c
 create mode 100644 gcc/testsuite/gcc.dg/countof-vla.c
 create mode 100644 gcc/testsuite/gcc.dg/countof.c

Range-diff against v16b:
1:  eac2d18d8a0 = 1:  d847dc4a795 contrib/: Add support for Cc: and Link: tags
2:  7418a11fcd6 < -:  ----------- gcc/: Rename array_type_nelts => 
array_type_nelts_minus_one
3:  0cfae0598b3 < -:  ----------- gcc/: Merge definitions of 
array_type_nelts_top
4:  12a30a2a6fd ! 2:  936f7945fae c: Add __countof__ operator
    @@ gcc/testsuite/gcc.dg/countof-compile.c (new)
     +static int y[__countof__(z)];
     +
     +void
    -+automatic(void)
    ++completed (void)
     +{
    -+  __countof__ (w);
    ++  int i = 42;
    ++  int a[] = {1, 2, i};
    ++
    ++  _Static_assert(__countof__ (w) == 3);
    ++  __countof__ (a);
     +}
     +
     +void
    @@ gcc/testsuite/gcc.dg/countof-compile.c (new)
     +{
     +  __countof__ (x);  /* { dg-error "incomplete" } */
     +
    -+  /* We want to support the following one in the future,
    -+     but for now it should fail.  */
    ++  /* We want to support array parameters in the future,
    ++     which should change this from "invalid" to "incomplete".  */
     +  __countof__ (p);  /* { dg-error "invalid" } */
     +}
     +
    @@ gcc/testsuite/gcc.dg/countof-compile.c (new)
     +  __countof__ (s.fam); /* { dg-error "incomplete" } */
     +}
     +
    ++void
    ++param (int n, int p[n])
    ++{
    ++  /* We want to support array parameters in the future,
    ++     which would make this work.  */
    ++  __countof__ (p);  /* { dg-error "invalid" } */
    ++}
    ++
     +void fix_fix (int i, char (*a)[3][5], int (*x)[__countof__ (*a)]);
     +void fix_var (int i, char (*a)[3][i], int (*x)[__countof__ (*a)]);
     +void fix_uns (int i, char (*a)[3][*], int (*x)[__countof__ (*a)]);

-- 
2.45.2

Attachment: signature.asc
Description: PGP signature

Reply via email to