On 01/27/2017 02:45 AM, Rainer Orth wrote:
Martin Sebor <mse...@gmail.com> writes:
The improvements to the handling of flexible array members in
C++ in GCC 6 inadvertently removed the pedantic warnings GCC
used to issue for their declarations. The attached patch
restores it.
After this patch, I get
FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime (test for excess erro
rs)
on 32 and 64-bit Solaris, sparc and x86:
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/obj-c++.dg/property/at-property-23.mm:16:17:
error: ISO C++ forbids flexible array member 'c' [-Wpedantic]
I saw this yesterday even on x86_64 but didn't have a chance to look
into what was causing the failure. The commit adjusts the test to
expect the excess error so I'm not sure why it's not being handled...
Ah. I now see where the problem is. I committed r244990 with a fix.
The dg-error directive I added ended split over two lines as I copied
and pasted it between two windows:
/* { dg-error "forbids flexible array member" "flexible array member" {
target \
*-*-* } } */
Because the backslash is in column 79 it looks the same as the backslash
Emacs uses to show lines that are longer than that. So while it worked
fine on the machine where it was tested it and looked fine on the one
I copied it into it got broken in transit. I normally retest changes
just before committing them on the same machine but I don't do a full
bootstrap. I just do stage1-bubble and run a subset of tests. But
Objective C++ doesn't build with stage1-bubble and I don't
know/remember what all I need to build it to run Objective C++ tests.
FWIW, I could avoid this awkward setup if I had just one repo for all
my changes, shared across my various machines. Unfortunately, for it
to really work I would also need to be able to commit using Git rather
than Subversion which doesn't work. At least not according to the
instructions on the Wiki.
Martin