lkml.org 
[lkml]   [2002]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Large block device patch, part 1 of 9
Date
On Tuesday 03 September 2002 12:01, Neil Brown wrote:
> On Tuesday August 27, bcrl@redhat.com wrote:
> > On Tue, Aug 27, 2002 at 03:23:04PM +0000, Pavel Machek wrote:
> > > Hi!
> > >
> > > > Then the following works properly without ugly casts or warnings:
> > > >
> > > > __u64 val = 1;
> > > >
> > > > printk("at least "PFU64" of your u64s are belong to us\n", val);
> > >
> > > Casts are ugly but this looks even worse. I'd go for casts.
> >
> > Casts override the few type checking abilities the compiler gives us. At
> > least with the PFU64 style, we'll get warnings when someone changes a variable
> > into a pointer without remembering to update the printk.
> >
>
> You could have the best of both worlds with:
>
> static inline long long llsect(sector_t sector) { return (long long)sector;}
>
> and then
> printk("The sector number is %Lu.", llsect(sect_num));
>
> Effectively, this is a type-safe cast. You still get the warning, but
> it looks more like the C that we are used to.

We've been through this before. Last time, the winning solution was:

printk("at least %lli of your u64s are belong to us\n", (long long) sect_num);

and I expect it will be this time too. It's just a printk! Who cares if it
wastes a few bytes. It's even conceivable that if we use this idiom heavily
enough, some gcc boffin will take the time to optimize away the useless
conversions.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:28    [W:0.141 / U:0.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site