This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ping2][PATCH v2][BZ #12515] Improve precision of clock function


On Mon, Jun 10, 2013 at 11:00:16PM -0700, Paul Eggert wrote:
> On 06/10/2013 06:40 PM, Rich Felker wrote:
> > First, to make the code work as-is
> > with the wrapping behavior, the values should just be converted to the
> > appropriate unsigned types so that the wrapping is well-defined, then
> > converted, either via a cast or implicitly, back to the right type.
> 
> That's more work and harder to understand and more
> error-prone than the pragma.  For one thing, there's

I disagree. Having to be aware of an obscure GCC feature, which many
readers would have to look up in the manual to understand, is a lot
less understandable than unsigned arithmetic (which anybody who knows
C should know).

> no simple way to determine the "appropriate
> unsigned type".  And why bother?  The code is designed
> to be compiled by GCC, so the pragma should suffice.

There are only two cases, either it's unsigned long or unsigned long
long. Which to use depends on the size of time_t.

> > This conversion takes place in an implementation-defined way
> 
> Which is another reason to prefer the pragma.

Except that the latter is the same for all implementations.

Rich


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]