Messages in this thread | | | Date | Wed, 7 May 2008 06:37:20 -0700 | From | Arjan van de Ven <> | Subject | Re: [patch 2/3] Add a WARN() macro; this is WARN_ON() + printk arguments |
| |
On Wed, 7 May 2008 08:41:31 +0200 "Vegard Nossum" <vegard.nossum@gmail.com> wrote:
> Hi! > > On Wed, May 7, 2008 at 8:21 AM, Arjan van de Ven > <arjan@infradead.org> wrote: > > Subject: Add a WARN() macro; this is WARN_ON() + printk arguments > > From: Arjan van de Ven <arjan@linux.intel.com> > > > > Add a WARN() macro that acts like WARN_ON(), with the added > > feature that it takes a printk like argument that is printed as > > part of the warning message. > > [...] > > > +#ifndef WARN > > +#define WARN(condition, format...) > > ({ \ > > + int __ret_warn_on > > = !!(condition); \ > > + if > > (unlikely(__ret_warn_on)) \ > > + > > __WARN_printf(format); \ > > + > > unlikely(__ret_warn_on); \ > > +}) +#endif > > Is there a good reason why this is not a static inline function?
yes there is, and it's the same one that makes WARN_ON() not an inline function (I tried); it's not possible to find a type for "condition" that works for all callers.
> If WARN() is made a static inline, you can call > __builtin_return_address(0) there and pass it into here instead. This > seems like a kind of low-level internal function anyway, because of > the file/line info.
if I could make it a static inline, I would make it an out of line instead to save space ;)
| |