X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=m4%2Fpsi_type.m4;h=b635e173c230e422819ca90f42137fac21c72fd4;hp=21484adb60c1622edaf92a32bf0638e16bed2644;hb=e8a409b21cb50f5931ab02ce6ab4f4406be94394;hpb=7e4b0ccdd2123647b6fff8065c0abc61be3fb44d diff --git a/m4/psi_type.m4 b/m4/psi_type.m4 index 21484ad..b635e17 100644 --- a/m4/psi_type.m4 +++ b/m4/psi_type.m4 @@ -23,6 +23,9 @@ psi_type_pair() { struct*) echo "PSI_T_STRUCT, \"$2\"" ;; + union*) + echo "PSI_T_UNION, \"$2\"" + ;; void) echo "PSI_T_VOID, \"void\"" ;; @@ -86,7 +89,7 @@ AC_DEFUN(PSI_OPAQUE_TYPE, [ PSI_CHECK_SIZEOF($1) if PSI_SH_TEST_SIZEOF($1); then psi_type_class= - AC_CACHE_CHECK(type class of $1, AS_TR_SH([psi_cv_type_class_]$1), [ + AC_CACHE_CHECK(kind of $1, AS_TR_SH([psi_cv_type_class_]$1), [ AC_TRY_COMPILE(PSI_INCLUDES, [char test@<:@($1)1@:>@;], [ psi_type_class=scalar ], [ @@ -114,7 +117,7 @@ AC_DEFUN(PSI_OPAQUE_TYPE, [ psi_add_type "{PSI_T_POINTER, \"void\", \"$1\"}" ;; *) - AC_MSG_WARN(could not detect type class of $1) + AC_MSG_WARN(could not detect kind of $1) ;; esac fi @@ -162,6 +165,7 @@ dnl FIXME: There is also psi_type_pair()? AC_DEFUN(PSI_TYPE_PAIR, [m4_case(m4_bregexp([$1], [^\w+], [\&]), [void], [PSI_T_VOID, \"void\"], [struct], [PSI_T_STRUCT, \"m4_bregexp([$1], [^struct \(\w+\)], [\1])\"], + [union], [PSI_T_UNION, \"m4_bregexp([$1], [^union \(\w+\)], [\1])\"], [PSI_T_NAME, \"m4_bregexp([$1], [^\(\w+ \)*\w+], [\&])\"])]) dnl PSI_CHECK_STD_TYPES() @@ -205,25 +209,30 @@ AC_DEFUN(PSI_CHECK_STD_TYPES, [ AC_CHECK_ALIGNOF(long double) PSI_STDTYPE(char, int) + AC_CHECK_ALIGNOF(char) PSI_STDTYPE(signed char, int) PSI_STDTYPE(unsigned char, uint) PSI_STDTYPE(short, int) + AC_CHECK_ALIGNOF(short) PSI_STDTYPE(short int, int) PSI_STDTYPE(signed short, int) PSI_STDTYPE(signed short int, int) PSI_STDTYPE(unsigned short, uint) PSI_STDTYPE(unsigned short int, uint) PSI_STDTYPE(int, int) + AC_CHECK_ALIGNOF(int) PSI_STDTYPE(signed int, int) PSI_STDTYPE(signed, int) PSI_STDTYPE(unsigned int, uint) PSI_STDTYPE(unsigned, uint) PSI_STDTYPE(long, int) + AC_CHECK_ALIGNOF(long) PSI_STDTYPE(long int, int) PSI_STDTYPE(signed long int, int) PSI_STDTYPE(unsigned long, uint) PSI_STDTYPE(unsigned long int, uint) PSI_STDTYPE(long long, int) + AC_CHECK_ALIGNOF(long long) PSI_STDTYPE(signed long long, int) PSI_STDTYPE(signed long long int, int) PSI_STDTYPE(unsigned long long, uint)