[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] /srv/bzr/emacs/trunk r112828: Merge the specpdl and ba
From: |
Eli Zaretskii |
Subject: |
Re: [Emacs-diffs] /srv/bzr/emacs/trunk r112828: Merge the specpdl and backtrace stacks. Make the structure of the |
Date: |
Tue, 18 Jun 2013 22:05:32 +0300 |
> Date: Tue, 18 Jun 2013 11:50:54 -0700
> From: Paul Eggert <address@hidden>
> Cc: address@hidden
>
> > how to explain the
> > fact that revision 112828 produced unresolved externals for such
> > functions that were defined in the same file (eval.c)?
>
> 112828 declared LISP_INLINE functions in eval.c.
> That wasn't right for C99 platforms, because
> in eval.c LISP_INLINE expands to plain 'inline',
> and C99 requires that if any module defines a plain
> inline function FOO (perhaps via a .h file), then
> FOO must be defined as 'extern inline' in exactly one
> other module.
So you are saying that the following is not valid C99, unless another
module defines 'foo' as 'extern inline'?
inline int foo (void) { return 42; }
int bar (void) { return foo (); }
That sounds strangely un-C-ish to me.
Thanks.