Guy Harris said:
o time_t and clock_t shall be integer or real-floating types. I infer from "size_t shall be an unsigned integer type" that "integer type" means "signed integer type" as opposed to "unsigned integer type";
WRONG. "signed integer type" means signed integer type. "integer type" means integer type, which can be signed, unsigned, or neither. [Read the C Standard if "neither" is unclear.]
if that inference is correct, use of "unsigned long" would violate the SUS.
It's wrong, and there is no such violation.
My question is: am I just using an obsolete version of the timezone source or should I just change the time_t typedef in the OS? If you can, I'd change the time_t typedef in the OS.
Changing an OS-supplied definition is EXTREMELY DUMB. You're risking breaking the OS interfaces. If the tz code needs a signed type, it should invent its own name for it and change all the definitions. If it needs the actual time_t type, then the code should not be making assumptions about signedness or number of bits. -- Clive D.W. Feather | Work: <clive@demon.net> | Tel: +44 20 8495 6138 Internet Expert | Home: <clive@davros.org> | Fax: +44 870 051 9937 Demon Internet | WWW: http://www.davros.org | Mobile: +44 7973 377646 Thus plc | |