Wed Mar 20 09:37:31 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>

* acspecific.m4 (AC_C_CONST): Add check for gcc 2.7 bug.
	From Paul Eggert and Jim Meyering.
This commit is contained in:
Roland McGrath 1996-03-20 19:18:39 +00:00
parent 50e966964f
commit 6ad32e2339
2 changed files with 68 additions and 2 deletions

View File

@ -1553,7 +1553,40 @@ ccp = (char const *const *) p;
}
>>,
changequote([, ])dnl
ac_cv_c_const=yes, ac_cv_c_const=no)])
ac_cv_c_const=yes, ac_cv_c_const=no)
dnl
dnl If the above compile succeeds, there may still be a problem.
dnl At least one compiler, gcc-2.7.x, generates bad code for the following
dnl program. If not cross-compiling then compile, link, and run the
dnl following program to detect this. Otherwise, resort to using cpp
dnl to check gcc's preprocessor symbols.
dnl
if test $ac_cv_c_const = yes; then
AC_TRY_RUN(dnl
[dnl
/* Thanks to Paul Eggert for this test. */
static void set (p) char *p; {*p = 'x';}
int
main ()
{
int i;
for (i = 0; i < 1; ++i)
{
char x;
set (&x);
if (*(const char *) &x != 'x')
exit (1);
}
exit (0);
}
], , ac_cv_c_const=no,
AC_EGREP_CPP(syntax-error,
[#if __GNUC__ == 2 && __GNUC_MINOR__ == 7
syntax-error
#endif
], ac_cv_c_const=no))
fi
])
if test $ac_cv_c_const = no; then
AC_DEFINE(const, )
fi

View File

@ -1553,7 +1553,40 @@ ccp = (char const *const *) p;
}
>>,
changequote([, ])dnl
ac_cv_c_const=yes, ac_cv_c_const=no)])
ac_cv_c_const=yes, ac_cv_c_const=no)
dnl
dnl If the above compile succeeds, there may still be a problem.
dnl At least one compiler, gcc-2.7.x, generates bad code for the following
dnl program. If not cross-compiling then compile, link, and run the
dnl following program to detect this. Otherwise, resort to using cpp
dnl to check gcc's preprocessor symbols.
dnl
if test $ac_cv_c_const = yes; then
AC_TRY_RUN(dnl
[dnl
/* Thanks to Paul Eggert for this test. */
static void set (p) char *p; {*p = 'x';}
int
main ()
{
int i;
for (i = 0; i < 1; ++i)
{
char x;
set (&x);
if (*(const char *) &x != 'x')
exit (1);
}
exit (0);
}
], , ac_cv_c_const=no,
AC_EGREP_CPP(syntax-error,
[#if __GNUC__ == 2 && __GNUC_MINOR__ == 7
syntax-error
#endif
], ac_cv_c_const=no))
fi
])
if test $ac_cv_c_const = no; then
AC_DEFINE(const, )
fi