Messages in this thread | | | Date | Fri, 17 Sep 1999 15:35:37 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | Re: bug in socket.h (and maybe many other kernel headerfiles) |
| |
On Fri, 17 Sep 1999, Sean Hunter wrote:
On Fri, Sep 17, 1999 at 11:48:34AM +0200, Dipl.-Ing. Uwe Koloska wrote: > Hello, > > I am not on this list by post by told so in REPORTING-BUGS. > > By installing kde-1.1.2 with gcc-2.95.1 I noticed a wrong declaration in > /usr/incluce/linux/socket.h:109 > > ANSI C++ forbids implicit conversion from `void *' in return > > The right ANSI way to do it is to return a literal "0". > > By taking a quick glance on the other headerfiles there are many places that > uses NULL without explicit conversion. > > Maybe (adhearing to ANSI???) NULL has to be defined "0" and not (void*) ... >
The kernel code is written in C. C requires that NULL be defined as (void *)0. Returning a NULL as a literal 0 is incorrect in C. There should not be any kernel headers included in an C++ code. Headers that could be included are protected with conditional statements like:
#ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL (void*)0 #endif #endif
This was from <stdio.h>......
If this was flame-bait, forget it.
Cheers, Dick Johnson **** FILE SYSTEM WAS MODIFIED **** Penguin : Linux version 2.3.13 on an i686 machine (400.59 BogoMips). Warning : It's hard to remain at the trailing edge of technology.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |