On Thu, Jan 04, 2007 at 03:21:06PM -0800, Mitchell Blank Jr wrote: > Linus Torvalds wrote: > > Well, that probably would work, but it's also true that returning a 64-bit > > value on a 32-bit platform really _does_ depend on more than the size. > > Yeah, obviously this is restricted to the signed-integer case. My point > was just that you could have the compiler figure out which variant to pick > for loff_t automatically. > > > "let's not play tricks with function types at all". > > I think I agree. The real (but harder) fix for the wasted space issue > would be to get the toolchain to automatically combine functions that > end up compiling into identical assembly.
Can't do. int f(void) { return 0; } int g(void) { return 0; } int is_f(int (*p)(void)) { return p == f; } main() { printf("%d %d\n", is_f(f), is_f(g)); } would better produce 1 0 for anything resembling a sane C compiler. Comparing pointers to functions for equality is a well-defined operation and it's not to be messed with. You _can_ compile g into jump to f, but that's it. And that, AFAICS, is what gcc does. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/