On Fri, May 16, 2003 at 05:33:58PM -0400, Ed L Cashin wrote: > Hi. In get_user_pages there is a C conditional operator with an > omitted second operand: > > > if ( !vma || (pages && vma->vm_flags & VM_IO) || !(flags & vma->vm_flags) ) > return i ? : -EFAULT; > > I was unfamiliar with that syntax, couldn't find it in the C99 > standard, and finally found it in the gcc documentation, which says > that > x ? : y > .. is the same as > x ? x : y > > But it also says the extension is only useful when the first operand > may contain a side effect. In get_user_pages, i is a simple integer, > and so the extension is just a confusing shorthand. Is that right or > is there some better reason than being one character shorter -- like > maybe better asm gets produced when the extension is used? I would bet it's used because it's two characters less to type... and perhaps because anyone who wrote it is used to it and it's more readable for them. ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb@ucw.cz> -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/