* Eric Blake wrote on Fri, Aug 27, 2010 at 03:59:00PM CEST: > On 08/26/2010 11:24 PM, Ralf Wildenhues wrote: > >Is > > m4_pushdef([M]) m4_define([M]) m4_popdef([M]) > > > >documented to work and do the expected (what would that be?) thing? > > Yes - [...]
> (Some other m4 implementations are > documented where m4_define wipes out the entire pushdef stack, > rather than the top-most definition on the stack, and POSIX allows > that alternate semantic, but it would break m4sugar.) Ah, that bit of semantics had evaded me so far. > On > the other hand, AC_COMPILE_IFELSE(AC_LANG_DEFINES_PROVIDED) (note > the missing quoting) expands to: > > m4_define([a],[nowarn])m4_pushdef([a],[warn])a()m4_popdef([a]) > > and still issues a warning, because the AC_LANG_DEFINES_PROVIDED was > expanded too early, and the expansion of a is still tied to the > [warn] from the pushdef. Yup, seeing that in a couple of cases in Libtool, which I'm going to fix next. Thanks, Ralf
