tests: address portability issues about strdup

Reported by Dennis Clarke
<https://lists.gnu.org/r/bug-bison/2021-10/msg00005.html>.
In particular
<https://lists.gnu.org/r/bug-bison/2021-10/msg00023.html>.

* doc/bison.texi, examples/c/glr/c++-types.y,
* examples/c/bistromathic/parse.y tests/testsuite.h:
Define _XOPEN_SOURCE to 600, to get a strdup that works on Solaris.

* tests/glr-regression.at: Use strdup freely.
This commit is contained in:
Akim Demaille
2021-10-23 06:01:44 +02:00
parent c9b5b46d74
commit c83425ef4e
5 changed files with 23 additions and 4 deletions

View File

@@ -2644,6 +2644,13 @@ calculator.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
%code top {
/* Portability issues for strdup. */
#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
#endif
}
@end example
@end ignore
@@ -2875,7 +2882,7 @@ found, a pointer to that symbol is returned; otherwise zero is returned.
not make these assumptions. */
#include <assert.h>
#include <stdlib.h> /* malloc, realloc. */
#include <string.h> /* strlen. */
#include <string.h> /* strdup, strlen. */
@end group
@group

View File

@@ -21,6 +21,11 @@
// Emitted on top of the implementation file.
%code top {
/* Portability issues for strdup. */
#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
#endif
#include <ctype.h> // isdigit
#include <locale.h> // LC_ALL
#include <math.h> // cos, sin, etc.

View File

@@ -53,6 +53,10 @@
%code
{
/* Portability issues for strdup. */
#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
#endif
#include <assert.h>
#include <ctype.h>

View File

@@ -295,9 +295,7 @@ FILE *input;
else
{
assert (strlen (buf) < sizeof buf - 1);
char *s = YY_CAST (char *, malloc (strlen (buf) + 1));
strcpy (s, buf);
]AT_VAL[ = s;
]AT_VAL[ = strdup (buf);
return 'V';
}
break;

View File

@@ -10,3 +10,8 @@
# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
# endif
#endif
/* We use strdup, make it available. */
#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
#endif