+2006-02-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
+ YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
+ __cplusplus && ! defined _STDLIB_H && !
+ ((defined YYMALLOC || defined malloc) && (defined YYFREE ||
+ defined free))]: Include <stdlib.h> rather than rolling our own
+ declarations of malloc and free, to avoid problems with
+ incompatible declarations (using 'throw') C++'s stdlib.h. This
+ should fix Debian bug 340012
+ <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
+ reported by Guillaume Melquiond.
+
2006-02-13 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Clarify symbols versus types in unused-value warnings.
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# ifdef __cplusplus
-extern "C" {
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
-# ifdef __cplusplus
-}
-# endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */