[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Implicition declarations of functions and bugs



On 13-Mar-06, 15:27 (CST), Ben Pfaff <blp@cs.stanford.edu> wrote: 
> Steve Greenland <steveg@moregruel.net> writes:
> > Not if the relevant header hasn't been included. No "#include
> > <string.h>", no compiler messing with "strdup()."
> 
> You are misinformed.  First, note that strdup() is not in the
> standard C library, but it is in the reserved str* name space.

Right. My assumption was that any implementation providing strdup()
would have use the the same namespace behaviour for strdup() as for any
standardized str*() function.

> Declaring strdup() with external linkage *always* yields
> undefined behavior.  Declaring strdup() with internal linkage
> yields undefined behavior if <string.h> is included.

You're correct, I'd forgotten the distinction. Thanks.

Of course, one could argue that any code that expects to redefine strdup
as "int strdup()" is probably in need of help...


Steve

-- 
Steve Greenland
    The irony is that Bill Gates claims to be making a stable operating
    system and Linus Torvalds claims to be trying to take over the
    world.       -- seen on the net



Reply to: