[gnu.g++.bug] Bug with variable-length arrays in argument list

robert@POLYA.STANFORD.EDU (Robert Kennedy) (08/05/89)

Running version 1.35.1- on a Sun 4/110, SunOS:
Variable length arrays as described on page 46 of the manual are
broken.

----------------- begin c++ program ---------------------
#include <stream.h>

void gripe(int a, char c[a])

{
cout << c[0];
}


main()

{
gripe(2, "T");
}
----------------- begin g++ output ---------------------
winge.cc:3: `a' undeclared, outside of functions
winge.cc:5: parameter `c' has incomplete type
In function void gripe (int, _0):
winge.cc:6: `c' was not declared (first use this function)
winge.cc:6: (Each undeclared identifier is reported only once
winge.cc:6: for each function it appears in.)
In function int main ():
winge.cc:13: parameter type of called function is incomplete
------------------------ end g++ output ---------------------

Note also that the following program should compile and work in the
obvious way (but doesn't -- compiler output excluded for brevity):

#include <stream.h>

void multiwinge(int a, char c[][a])

{
cout << c[1][0];
}

main()

{
multiwinge(2, "Should print u");
}