included more characters into xli tag character set.

improved detection of __float128 support
This commit is contained in:
hyung-hwan 2013-11-14 14:07:16 +00:00
parent ea55e0d7ee
commit 5ba15ae2e4
3 changed files with 59 additions and 3 deletions

34
qse/configure vendored
View File

@ -20080,6 +20080,40 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
if test ${ac_cv_sizeof___float128} -gt 0
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking __float128 with linking" >&5
$as_echo_n "checking __float128 with linking... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main ()
{
__float128 x, y, z;
z = x * y + x;
printf ("%p", (char*)(int)z);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
ac_cv_sizeof___float128=0
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
cat >>confdefs.h <<_ACEOF
#define QSE_SIZEOF_CHAR ${ac_cv_sizeof_char}

View File

@ -442,6 +442,26 @@ then
)
fi
dnl Some compilers doesn't seem to have full support for __float128
dnl even if the type is available.
if test ${ac_cv_sizeof___float128} -gt 0
then
AC_MSG_CHECKING([__float128 with linking])
AC_TRY_LINK(
[#include <stdio.h>],
[
__float128 x, y, z;
z = x * y + x;
printf ("%p", (char*)(int)z);
],
[AC_MSG_RESULT(yes)],
[
AC_MSG_RESULT(no)
ac_cv_sizeof___float128=0
]
)
fi
AC_DEFINE_UNQUOTED(QSE_SIZEOF_CHAR, ${ac_cv_sizeof_char}, [sizeof(char)])
AC_DEFINE_UNQUOTED(QSE_SIZEOF_SHORT, ${ac_cv_sizeof_short}, [sizeof(short)])
AC_DEFINE_UNQUOTED(QSE_SIZEOF_INT, ${ac_cv_sizeof_int}, [sizeof(int)])

View File

@ -462,8 +462,8 @@ retry:
int lead_digit = QSE_ISDIGIT(c);
int all_digits = 1;
/* a normal identifier can be composed of wider varieties of characters
* than a keyword/directive */
/* a normal identifier can be composed of wider varieties of
* characters than a keyword/directive */
while (1)
{
ADD_TOKEN_CHAR (xli, tok, c);
@ -596,7 +596,9 @@ retry:
break;
}
if (!QSE_ISALNUM(c) && c != QSE_T('-') && c != QSE_T('_'))
if (!QSE_ISALNUM(c) && c != QSE_T('-') && c != QSE_T('_') &&
c != QSE_T(':') && c != QSE_T('*') && c != QSE_T('/') &&
c != QSE_T(',') && c != QSE_T('.') && c != QSE_T('|'))
{
qse_char_t cc = (qse_char_t)c;
qse_cstr_t ea;