[tz] suggestions for potential code improvements?

Paul_Koning at dell.com Paul_Koning at dell.com
Fri Jul 24 16:20:46 UTC 2015


> On Jul 24, 2015, at 12:10 PM, Paul Eggert <eggert at cs.ucla.edu> wrote:
> 
> Kees Dekker wrote:
>> Hi Paul,
>> 
>> I tried to compile the code (Visual Studio 2013 as first try, the other platforms will follow later), but I found some (minor) things:
>> 
>> 1. The implementation of difftime() is specified with const arguments, while none of the referred places use these const qualifiers (e.g. private.h:368).
> ...
> 
>> Const mismatches:
>> 3. There are (static) prototype mismatches between strftime.c:99 and the implementation of _fmt (arguments 2 and 4 have additional const in definition)
>> 4.  idem for strftime.c:98 and the implementation of _conv() at line 572 (arguments 1, 2, 3 and 4 have additional const qualifiers)
>> 5.  idem for strftime.c:97 and the implementation of _add() at line 580 (arguments 3 and 6 are different from declaration)
>> I don't really prefer one or other, but usually a compiler may optimize const qualified code somewhat better.
> 
> That shouldn't matter.  If the argument to a function is declared 'const', the 'const' attribute matters only in the body of the function; it is irrelevant to callers.  This has been true ever since C was standardized in C89.  No decent compiler should generate different code because of the extra 'const's here.

If I read Kees’s comments correctly, he's talking about mismatches between declaration and definition.  That’s a different issue; the two should match.  You’re correct that a caller can pass a non-const input into a const argument, that is of course legal, but that doesn’t appear to be what the complaint is about.

	paul


More information about the tz mailing list