> On Oct 25, 2021, at 5:43 AM, Iain Sandoe <i...@sandoe.co.uk> wrote: > > Did you test objective-c++ on Darwin? > > I see a lot of fails of the form: > Excess errors: > <built-in>: error: initialization of a flexible array member [-Wpedantic]
Looked into this. It’s happening because obj-c++.dg/dg.exp has: set DEFAULT_OBJCXXFLAGS " -ansi -pedantic-errors -Wno-long-long" Specifically, the `-pedantic-errors` argument prohibits initialization of a flexible array member. Notably, this flag does *not* appear in objc/dg.exp. Admittedly I didn’t know that initialization of a FAM was prohibited by the standard. It’s allowed by GCC, though, as documented here: <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html> Is it OK to use a GCC extension this way in the Objective-C frontend? > For a patch that changes code-gen we should have a test that it produces > what’s > expected (in general, a ‘torture' test would be preferrable so that we can be > sure the > output is as expected for different optimisation levels). The output is different only for targets where sizeof (long) != sizeof (void *). Do we have the ability to run “cross” torture tests? Could such a test verify the emitted assembly (like LLVM’s FileCheck tests do)? Or would it need to execute something? Thanks for your help! Matt