Re: Variable Length Arrays (VLA) proposal

Jan Kratochvil
2013-08-04T19:33:40Z

On Thu, 04 Jul 2013 14:32:07 +0200, Keven Boell wrote:
> We've created some tests for the VLA features in Fortran and C in
> advance to test our future implementation against it. We used/split
> some of your tests from archer-jankratochvil-vla and added some more
> to cover more VLA use-cases, we want to fix/enable in GDB. Maybe you
> can have a look at them to see if we agree on the feature set in
> general, which will be available to the user afterwards.
>
> You can find them in our github repository (see the last few commits):
> https://github.com/ChristophTWeinmann/GDB/tree/vla-testbase

GIT URL: https://github.com/ChristophTWeinmann/GDB.git

> The tests are covering only Fortran and C at the moment.

Some of the files need CRLF->LF conversion.

> gdb/testsuite/gdb.base/vla-datatypes.exp
> gdb/testsuite/gdb.base/vla-multi.exp
> gdb/testsuite/gdb.base/vla-ptr.exp
> gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
> gdb/testsuite/gdb.fortran/vla-datatypes.exp

type = long [5]
(gdb) FAIL: gdb.base/vla-datatypes.exp: ptype long_vla

Expected "long int [5]", I use gcc-4.8.1-5.fc20.x86_64.
Such minor differences for different compilers are OK and common in GDB
testsuite.

> gdb/testsuite/gdb.fortran/vla-func.exp
> gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
> gdb/testsuite/gdb.fortran/vla-ptype.exp

> gdb/testsuite/gdb.fortran/vla-type.exp

archer-jankratochvil-vla has some FAILs here for more compilated types, that
is a known bug of archer-jankratochvil-vla.

gdb.fortran/vla-value.exp

Why isn't prepare_for_testing used here?

gdb.fortran/vla.f90

Missing copyright header.

I did not check it but I guess these testcases / expect strings work only with
gfortran. If you are interested it would be sure great if they worked also
with iFort.

In general expect strings in testcases "\\$\\d+ = ..." are commonly simplified
to " = ..." (start of expect strings are not anchored by ^ even in gdb_test).
But it is up to the submitter, "\\$\\d+ = ..." is also fine.

In general 'untested' call is not needed after failed prepare_for_testing.
The same applies to failed 'runto MAIN__'.

The testcases are pre-approved for check-in. But you will also need to write
stub (just "*: New files." for everything) ChangeLog entry and post it to
gdb-patches. And if you like to check them in before the real VLA
implementation they would need KFAILs for everything (IMO not worth the work
to check in the testcases before the implementation).

Thanks,
Jan