Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #72127

Re: Spurious diagnostic messages

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: Spurious diagnostic messages
Date 2015-10-07 12:35 +0200
Organization A noiseless patient Spider
Message-ID <mv2sef$d3v$1@dont-email.me> (permalink)
References (17 earlier) <mutcah$tpt$1@dont-email.me> <929a5929-0a7e-4c01-9694-b2ee885c921f@googlegroups.com> <muvspj$svk$1@dont-email.me> <f12f739d-5b79-41fc-b37b-96c0c1cd4aac@googlegroups.com> <ln37xnlm7l.fsf@kst-u.example.com>

Show all headers | View raw


On 06/10/15 23:29, Keith Thompson wrote:
> supercat@casperkitty.com writes:
> [...]
> 
>> 7. The expression, x<<y, when y>=INTSIZE, will yield either
>>    x<<(y & INTSIZE) or x<<(y-1)<<1, chosen in unspecified fashion;
>>    right-shifts will behave likewise.
>>
>> 8. Left shifts of negative values will behave as multiplying by a power of
>>    two, with the same overflow semantics described in 6.
>>
>> 9. Right shifts of negative values will be performed using sign extension.
> 
> How difficult is it to avoid shifts whose behavior is not defined by the
> standard?  How useful is it be able to compute, for example, n<<32,
> where n is of type uint32_t?

I have been involved in a discussion in comp.arch.embedded covering this
case.  (It happens to be in C++ rather than C, but the principle is the
same.)  Roughly speaking, an n-bit wide mask is created with a template
(a macro would work too) using something like (1u << n) - 1.  My
solution was n ? ((1u << (n-1)) << 1) - 1 : 0 , because that would also
work with n equal to the width of unsigned int.

But I find it easy to only ever use unsigned types with shifts, then
there is no problem with shifting negative numbers.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Spurious diagnostic messages Tim Rentsch <txr@alumni.caltech.edu> - 2015-09-29 08:55 -0700
  Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-09-29 10:22 -0700
    Re: Spurious diagnostic messages Tim Rentsch <txr@alumni.caltech.edu> - 2015-10-04 23:42 -0700
      Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-05 09:41 -0700
        Re: Spurious diagnostic messages Tim Rentsch <txr@alumni.caltech.edu> - 2015-10-09 13:22 -0700
  Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-09-29 22:28 +0200
    Re: Spurious diagnostic messages Tim Rentsch <txr@alumni.caltech.edu> - 2015-10-05 00:14 -0700
      Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-05 10:30 +0200
        Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-05 10:06 -0700
          Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-06 09:23 +0200
            Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-06 11:18 -0700
              Re: Spurious diagnostic messages Keith Thompson <kst-u@mib.org> - 2015-10-06 14:29 -0700
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-06 15:33 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-07 12:35 +0200
              Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-07 10:57 +0200
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-07 07:09 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-08 09:28 +0200
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-08 01:45 -0700
                Re: Spurious diagnostic messages glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-08 09:42 +0000
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-08 09:42 -0700
                Re: Spurious diagnostic messages Keith Thompson <kst-u@mib.org> - 2015-10-07 09:40 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-08 09:44 +0200
                Re: Spurious diagnostic messages Keith Thompson <kst-u@mib.org> - 2015-10-08 08:25 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-08 20:36 +0200
                Re: Spurious diagnostic messages Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-08 13:28 -0700
                Re: Spurious diagnostic messages Bartc <bc@freeuk.com> - 2015-10-08 22:21 +0100
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-08 14:33 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-09 10:24 +0200
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-09 08:35 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-11 15:18 +0200
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-11 14:53 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-12 09:17 +0200
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-12 00:37 -0700
                Re: Spurious diagnostic messages Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-10 00:31 -0700
                Re: Spurious diagnostic messages Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-10 10:50 +0100
                Re: Spurious diagnostic messages Bartc <bc@freeuk.com> - 2015-10-10 11:01 +0100
                Re: Spurious diagnostic messages Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-10 03:43 -0700
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-10 13:26 -0700
                Re: Spurious diagnostic messages supercat@casperkitty.com - 2015-10-10 13:34 -0700
                Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-11 15:25 +0200
        Re: Spurious diagnostic messages Tim Rentsch <txr@alumni.caltech.edu> - 2015-10-14 07:43 -0700
          Re: Spurious diagnostic messages David Brown <david.brown@hesbynett.no> - 2015-10-14 17:00 +0200

csiph-web