Summary: ~ unary operator silently different from C
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD

--- Comment #0 from Ellery Newcomer <> 2010-10-29 
12:16:39 PDT ---
~ <type> => <type> for all integer types in D, however
~ <type> => int for small integer types in C.

This is a source of silently different behavior between D and C at least in
unsigned integer types.


// test.d
import std.stdio;
void main(){
  ushort x = 0xffff;
  writefln("%08x", ~x+1u);

// test.c
#include <stdio.h>
void main(void){
  unsigned short x = 0xffff;
  printf("%08x", ~x+1u);

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to