bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bison 1.30h and alloca


From: Akim Demaille
Subject: Bison 1.30h and alloca
Date: 22 Dec 2001 16:27:26 +0100
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Civil Service)

Please, keep this public.

Paul, the bottom line of this bug is alloca.  Something has changed
between now and before, wrt AIX:

  22. calc.at:396: testing Calculator ...
  calc.at:396: bison calc.y -o calc.c 
  calc.at:396: $CC $CFLAGS $CPPFLAGS calc.c -o calc
  stderr:
  ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
  ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
  calc.at:396: exit code was 8, expected 0
  22. calc.at:396: FAILED near `calc.at:396'

According to config.log (included in the testsuire.logs below), alloca
_is_ present and usable, but we are different of what was used in the
test, and... I can see something that might explain the problem: there
are now spaces between `#' and `pragma', I have no idea whether it
matters.  But on this respect, we don't follow autoconf.texi's advice.

Also, autoconf.texi says nothing should be before that #pragma, but it
is _not_ the case, there _is_ something before:

| /* A Bison parser, made from calc.y
|    by GNU bison 1.30i.  */
| 
| #define YYBISON 1  /* Identify Bison output.  */
| 
| # define        CALC_EOF        0
| # define        NUM     257
| # define        NEG     258
| 
| #line 3 "calc.y"
| 
| #include <config.h>
| /* We don't need a perfect malloc for these tests. */
| #undef malloc
| #include <stdio.h>
| 
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <string.h>
| #else
| char *strcat(char *dest, const char *src);
| #endif
| #include <ctype.h>
| 
| 
| static int power (int base, int exponent);
| static void yyerror (const char *s);
| static int yylex (void);
| static int yygetc (void);
| static void yyungetc (int c);
| 
| extern void perror (const char *s);
| #ifndef YYSTYPE
| #define YYSTYPE int
| #endif
| #ifndef YYDEBUG
| # define YYDEBUG 0
| #endif
| 
| #define YYFINAL         25
| #define YYFLAG          -32768
| #define YYNTBASE        15
| 
| /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
| #define YYTRANSLATE(x) ((unsigned)(x) <= 258 ? yytranslate[x] : 18)
| 
| /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
| static const char yytranslate[] =
| {
|        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|       12,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|       13,    14,     8,     7,     2,     6,     2,     9,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     5,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,    11,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
|        2,     2,     2,     2,     2,     2,     1,     4,    10
| };
|
| CUT
|
| #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
| 
| /* The parser invokes alloca or malloc; define the necessary symbols.  */
| 
| # if YYSTACK_USE_ALLOCA
| #  define YYSTACK_ALLOC alloca
| #  define YYSIZE_T YYSTD (size_t)
| # else

So I am just in favor of removing all the hacks to have alloca used on
AIX.  As a matter of fact, I am in favor of removing _all_ the hacks,
but the GNU system specific ones.



Then, another `bug':


49. regression.at:612: testing Invalid CPP guards: input/input...
regression.at:612: bison --defines=input/input.h input/input.y
regression.at:612: $CC -E input/input.h
--- /dev/null   Fri Dec 21 13:51:11 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr      Fri Dec 21 
13:51:42 2001
@@ -0,0 +1 @@
+cc: 1501-218 file input/input.h contains an incorrect file suffix
stdout:
#line 9 "input/input.h"
extern int yylval;
49. regression.at:612: FAILED near `regression.at:612'

Err, I don't understand this one at all, what's wrong with
`input/input.h' ?


50. regression.at:613: testing Invalid CPP guards: 9foo...
regression.at:613: bison --defines=9foo.h 9foo.y
regression.at:613: $CC -E 9foo.h
--- /dev/null   Fri Dec 21 13:51:50 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr      Fri Dec 21 
13:52:18 2001
@@ -0,0 +1 @@
+cc: 1501-218 file 9foo.h contains an incorrect file suffix
stdout:
#line 9 "9foo.h"
extern int yylval;
50. regression.at:613: FAILED near `regression.at:613'

This seems to be quite ridiculous: I can't compile a file which name
starts with a digit???



--- Begin Message --- Subject: Re: bison-1.30 Date: Fri, 21 Dec 2001 14:10:34 +0100
On Wed 31 Oct 2001 14:33, Akim Demaille <address@hidden> wrote:
> >>>>> "H" == H Merijn Brand <H.Merijn> writes:
> 
> H> builds, tests and installs clean on HP-UX 11.00, HP-UX 10.20,
> H> AIX-4.3.3 and AIX-4.2.1 all using native compiler.

Same for 1.30h as far as HP-UX. For AIX see below

> H> Small nit during tests, bison test suite reports:
> 
> H> ## GNU Bison 1.29e test suite. ##

same for 1.30h (reports test suite 1.30g)

> :) :) :)
> 
> Thanks!

AIX-4.2

## --------------------------- ##
## GNU Bison 1.30g test suite. ##
## --------------------------- ##

Output file names.

  1: output.at:38      ok
  2: output.at:40      ok
  3: output.at:42      ok
  4: output.at:44      ok
  5: output.at:46      ok
  6: output.at:48      ok
  7: output.at:52      ok
  8: output.at:54      ok
  9: output.at:58      ok
 10: output.at:60      ok
 11: output.at:64      ok
 12: output.at:69      ok
 13: output.at:72      ok
 14: output.at:76      ok
 15: output.at:80      ok

Grammar Sets (Firsts etc.).

 16: sets.at:26        ok
 17: sets.at:160       ok

Grammar Reduction.

 18: reduce.at:26      ok
 19: reduce.at:70      ok
 20: reduce.at:116     ok
 21: reduce.at:180     ok

Simple Calculator.

 22: calc.at:396       FAILED near `calc.at:396'
 23: calc.at:398       FAILED near `calc.at:398'
 24: calc.at:399       FAILED near `calc.at:399'
 25: calc.at:400       FAILED near `calc.at:400'
 26: calc.at:401       FAILED near `calc.at:401'
 27: calc.at:402       FAILED near `calc.at:402'
 28: calc.at:403       FAILED near `calc.at:403'
 29: calc.at:405       FAILED near `calc.at:405'
 30: calc.at:407       FAILED near `calc.at:407'
 31: calc.at:409       FAILED near `calc.at:409'
 32: calc.at:410       FAILED near `calc.at:410'

Torture Tests.

 33: torture.at:83     FAILED near `torture.at:85'
 34: torture.at:104    ok
Torture Tests.

 33: torture.at:83     FAILED near `torture.at:85'
 34: torture.at:104    ok
 35: torture.at:123    ok

Regression tests.

 36: regression.at:26  ok
 37: regression.at:50  ok
 38: regression.at:155 ok
 39: regression.at:260 ok
 40: regression.at:404 ok
 41: regression.at:424 ok
 42: regression.at:441 ok
 43: regression.at:462 ok
 44: regression.at:485 ok
 45: regression.at:507 ok
 46: regression.at:530 ok
 47: regression.at:550 ok
 48: regression.at:570 ok
 49: regression.at:612 FAILED near `regression.at:612'
 50: regression.at:613 FAILED near `regression.at:613'
## ------------------------------------------------- ##
## ERROR: Suite unsuccessful, 14 of 50 tests failed. ##
## ------------------------------------------------- ##

calc.at:396: bison calc.y -o calc.c
calc.at:396: $CC $CFLAGS $CPPFLAGS calc.c -o calc
stderr:
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
calc.at:396: exit code was 8, expected 0
22. calc.at:396: FAILED near `calc.at:396'

etc.

ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
calc.at:410: exit code was 8, expected 0
32. calc.at:410: FAILED near `calc.at:410'

33. torture.at:83: testing Exploding the Stack Size with Alloca...
torture.at:85: bison input.y -o input.c
torture.at:85: $CC $CFLAGS $CPPFLAGS input.c -o input
stderr:
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
torture.at:85: exit code was 8, expected 0
33. torture.at:83: FAILED near `torture.at:85'

49. regression.at:612: testing Invalid CPP guards: input/input...
regression.at:612: bison --defines=input/input.h input/input.y
regression.at:612: $CC -E input/input.h
--- /dev/null   Fri Dec 21 13:51:11 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr      Fri Dec 21 
13:51:42 2001
@@ -0,0 +1 @@
+cc: 1501-218 file input/input.h contains an incorrect file suffix
stdout:
#line 9 "input/input.h"
extern int yylval;
49. regression.at:612: FAILED near `regression.at:612'

50. regression.at:613: testing Invalid CPP guards: 9foo...
regression.at:613: bison --defines=9foo.h 9foo.y
regression.at:613: $CC -E 9foo.h
--- /dev/null   Fri Dec 21 13:51:50 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr      Fri Dec 21 
13:52:18 2001
@@ -0,0 +1 @@
+cc: 1501-218 file 9foo.h contains an incorrect file suffix
stdout:
#line 9 "9foo.h"
extern int yylval;
50. regression.at:613: FAILED near `regression.at:613'
## ------------------------- ##
## testsuite.log is created. ## (attached)
## ------------------------- ##


AIX 4.3:

## GNU Bison 1.30g test suite. ##
## --------------------------- ##

Output file names.

  1: output.at:38      FAILED near `output.at:38'
  2: output.at:40      FAILED near `output.at:40'
  3: output.at:42      FAILED near `output.at:42'
  4: output.at:44      FAILED near `output.at:44'
  5: output.at:46      ok
  6: output.at:48      FAILED near `output.at:48'
  7: output.at:52      FAILED near `output.at:52'
  8: output.at:54      FAILED near `output.at:54'
  9: output.at:58      ok
 10: output.at:60      FAILED near `output.at:60'
 11: output.at:64      FAILED near `output.at:64'
 12: output.at:69      FAILED near `output.at:69'
 13: output.at:72      FAILED near `output.at:72'
 14: output.at:76      ok
 15: output.at:80      ok

Grammar Sets (Firsts etc.).

 16: sets.at:26        ok
 17: sets.at:160       ok

Grammar Reduction.

 18: reduce.at:26      ok
 19: reduce.at:70      ok
 20: reduce.at:116     ok
 21: reduce.at:180     ok

Simple Calculator.

 22: calc.at:396       FAILED near `calc.at:396'
 23: calc.at:398       FAILED near `calc.at:398'
 24: calc.at:399       FAILED near `calc.at:399'
 25: calc.at:400       FAILED near `calc.at:400'
 26: calc.at:401       FAILED near `calc.at:401'
 27: calc.at:402       FAILED near `calc.at:402'
 28: calc.at:403       FAILED near `calc.at:403'
 29: calc.at:405       FAILED near `calc.at:405'
 30: calc.at:407       FAILED near `calc.at:407'
 31: calc.at:409       FAILED near `calc.at:409'
 32: calc.at:410       FAILED near `calc.at:410'

Torture Tests.

 33: torture.at:83     FAILED near `torture.at:85'
 34: torture.at:104    ok
 35: torture.at:123    ok

Regression tests.

 36: regression.at:26  ok
 37: regression.at:50  ok
 38: regression.at:155 ok
 39: regression.at:260 ok
 40: regression.at:404 ok
 41: regression.at:424 ok
 42: regression.at:441 ok
 43: regression.at:462 ok
 44: regression.at:485 ok
 45: regression.at:507 ok
 46: regression.at:530 ok
 47: regression.at:550 ok
 48: regression.at:570 ok
 49: regression.at:612 ok
 50: regression.at:613 ok
## ------------------------------------------------- ##
## ERROR: Suite unsuccessful, 23 of 50 tests failed. ##
## ------------------------------------------------- ##

-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.7.2 & 630 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
  WinNT 4, Win2K pro & WinCE 2.11.  Smoking perl CORE: address@hidden
http://archives.develooper.com/address@hidden/   address@hidden
send smoke reports to: address@hidden, QA: http://qa.perl.org

Attachment: test-4.2.log.gz
Description: Binary data

Attachment: test-4.3.log.gz
Description: Binary data


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]