Paolo Bonzini <bonzini <at> gnu.org> writes: > > 2008-10-27 Paolo Bonzini <bonzini <at> gnu.org> > > * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW_BODY): Extract > test body here. Move head comment of _AC_CHECK_TYPE_NEW here. > (_AC_CHECK_TYPE_NEW): Define a shell function and call it.
Fix these nits, then apply. > +# _AC_CHECK_TYPE_NEW_BODY > +# ----------------------- > +# Shell function body for _AC_CHECK_TYPE_NEW. This macro implements the > +# former task of AC_CHECK_TYPE, with one big difference though: AC_CHECK_TYPE > +# used to grep in the headers, which, BTW, led to many problems until the > # extended regular expression was correct and did not given false positives. Inherited typo, but while we're touching this comment: s/given/give/ > +m4_define([_AC_CHECK_TYPE_NEW_BODY], > +[ AS_LINENO_PUSH([$[]1]) > + AC_CACHE_CHECK([for $[]2], [$[]3], > + [AS_VAR_SET([$[]3], [no]) > + AC_COMPILE_IFELSE( > + [AC_LANG_PROGRAM([$[]4], > + [if (sizeof ($[]2)) > + return 0;])], > + [AC_COMPILE_IFELSE( > + [AC_LANG_PROGRAM([$[]4], > + [if (sizeof (($[]2))) > + return 0;])], > + [], > + [AS_VAR_SET([$[]3], [yes])])])]) > + AS_LINENO_POP > +])dnl Not for this patch, but food for thought for a subsequent improvement. We are spending quite a few forks building two different test files; it should be possible to build a single test file that does: if (sizeof ($[]2)) return 0; #ifdef AC_SECOND if (sizeof (($[]2))) return 0; #endif then invoke the compiler with -DAC_SECOND added to CFLAGS on the second run, to reduce the overhead inherent in two full-blown AC_COMPILE_IFELSE. I don't think we can skip two separate compile runs, however, as I don't think we'll be lucky enough to accurately parse error messages to the point where we verify that the compiler only complained about the second statement. > +[AS_VAR_PUSHDEF([ac_Type], [ac_cv_type_$1])]dnl > +[ac_func_[]_AC_LANG_ABBREV[]_check_type "$LINENO" "$1" "ac_Type" ]dnl > +["AS_ESCAPE([AC_INCLUDES_DEFAULT([$4], ["])])" Font-lock works better if you use [""] as the pattern to AS_ESCAPE (no change in behavior, but " are now paired). -- Eric Blake
